@rocksky/cli
Version:
Command-line interface for Rocksky – scrobble tracks, view stats, and manage your listening history
1,869 lines (1,867 loc) • 152 kB
text/typescript
/**
* GENERATED CODE - DO NOT MODIFY
*/
import { LexiconDoc, Lexicons } from '@atproto/lexicon'
export const schemaDict = {
AppRockskyActorDefs: {
lexicon: 1,
id: 'app.rocksky.actor.defs',
defs: {
profileViewDetailed: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the actor.',
},
did: {
type: 'string',
description: 'The DID of the actor.',
},
handle: {
type: 'string',
description: 'The handle of the actor.',
},
displayName: {
type: 'string',
description: 'The display name of the actor.',
},
avatar: {
type: 'string',
description: "The URL of the actor's avatar image.",
format: 'uri',
},
createdAt: {
type: 'string',
description: 'The date and time when the actor was created.',
format: 'datetime',
},
updatedAt: {
type: 'string',
description: 'The date and time when the actor was last updated.',
format: 'datetime',
},
},
},
profileViewBasic: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the actor.',
},
did: {
type: 'string',
description: 'The DID of the actor.',
},
handle: {
type: 'string',
description: 'The handle of the actor.',
},
displayName: {
type: 'string',
description: 'The display name of the actor.',
},
avatar: {
type: 'string',
description: "The URL of the actor's avatar image.",
format: 'uri',
},
createdAt: {
type: 'string',
description: 'The date and time when the actor was created.',
format: 'datetime',
},
updatedAt: {
type: 'string',
description: 'The date and time when the actor was last updated.',
format: 'datetime',
},
},
},
neighbourViewBasic: {
type: 'object',
properties: {
userId: {
type: 'string',
},
did: {
type: 'string',
},
handle: {
type: 'string',
},
displayName: {
type: 'string',
},
avatar: {
type: 'string',
description: "The URL of the actor's avatar image.",
format: 'uri',
},
sharedArtistsCount: {
type: 'integer',
description: 'The number of artists shared with the actor.',
},
similarityScore: {
type: 'integer',
description: 'The similarity score with the actor.',
},
topSharedArtistNames: {
type: 'array',
description: 'The top shared artist names with the actor.',
items: {
type: 'string',
},
},
topSharedArtistsDetails: {
type: 'array',
description: 'The top shared artist details with the actor.',
items: {
type: 'ref',
ref: 'lex:app.rocksky.artist.defs#artistViewBasic',
},
},
},
},
compatibilityViewBasic: {
type: 'object',
properties: {
compatibilityLevel: {
type: 'integer',
},
compatibilityPercentage: {
type: 'integer',
},
sharedArtists: {
type: 'integer',
},
topSharedArtistNames: {
type: 'array',
items: {
type: 'string',
},
},
topSharedDetailedArtists: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.actor.defs#artistViewBasic',
},
},
user1ArtistCount: {
type: 'integer',
},
user2ArtistCount: {
type: 'integer',
},
},
},
artistViewBasic: {
type: 'object',
properties: {
id: {
type: 'string',
},
name: {
type: 'string',
},
picture: {
type: 'string',
format: 'uri',
},
uri: {
type: 'string',
format: 'at-uri',
},
user1Rank: {
type: 'integer',
},
user2Rank: {
type: 'integer',
},
weight: {
type: 'integer',
},
},
},
},
},
AppRockskyActorGetActorAlbums: {
lexicon: 1,
id: 'app.rocksky.actor.getActorAlbums',
defs: {
main: {
type: 'query',
description: 'Get albums for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
startDate: {
type: 'string',
description:
'The start date to filter albums from (ISO 8601 format)',
format: 'datetime',
},
endDate: {
type: 'string',
description: 'The end date to filter albums to (ISO 8601 format)',
format: 'datetime',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
albums: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.album.defs#albumViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetActorArtists: {
lexicon: 1,
id: 'app.rocksky.actor.getActorArtists',
defs: {
main: {
type: 'query',
description: 'Get artists for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
startDate: {
type: 'string',
description:
'The start date to filter albums from (ISO 8601 format)',
format: 'datetime',
},
endDate: {
type: 'string',
description: 'The end date to filter albums to (ISO 8601 format)',
format: 'datetime',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
artists: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.artist.defs#artistViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetActorCompatibility: {
lexicon: 1,
id: 'app.rocksky.actor.getActorCompatibility',
defs: {
main: {
type: 'query',
description: 'Get compatibility for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'DID or handle to get compatibility for',
format: 'at-identifier',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
compatibility: {
type: 'ref',
ref: 'lex:app.rocksky.actor.defs#compatibilityViewBasic',
},
},
},
},
},
},
},
AppRockskyActorGetActorLovedSongs: {
lexicon: 1,
id: 'app.rocksky.actor.getActorLovedSongs',
defs: {
main: {
type: 'query',
description: 'Get loved songs for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
tracks: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.song.defs#songViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetActorNeighbours: {
lexicon: 1,
id: 'app.rocksky.actor.getActorNeighbours',
defs: {
main: {
type: 'query',
description: 'Get neighbours for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
neighbours: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.actor.defs#neighbourViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetActorPlaylists: {
lexicon: 1,
id: 'app.rocksky.actor.getActorPlaylists',
defs: {
main: {
type: 'query',
description: 'Get playlists for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
playlists: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.playlist.defs#playlistViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetActorScrobbles: {
lexicon: 1,
id: 'app.rocksky.actor.getActorScrobbles',
defs: {
main: {
type: 'query',
description: 'Get scrobbles for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
scrobbles: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetActorSongs: {
lexicon: 1,
id: 'app.rocksky.actor.getActorSongs',
defs: {
main: {
type: 'query',
description: 'Get songs for an actor',
parameters: {
type: 'params',
required: ['did'],
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
startDate: {
type: 'string',
description:
'The start date to filter albums from (ISO 8601 format)',
format: 'datetime',
},
endDate: {
type: 'string',
description: 'The end date to filter albums to (ISO 8601 format)',
format: 'datetime',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
songs: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.song.defs#songViewBasic',
},
},
},
},
},
},
},
},
AppRockskyActorGetProfile: {
lexicon: 1,
id: 'app.rocksky.actor.getProfile',
defs: {
main: {
type: 'query',
description: 'Get the profile of an actor',
parameters: {
type: 'params',
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.actor.defs#profileViewDetailed',
},
},
},
},
},
AppBskyActorProfile: {
lexicon: 1,
id: 'app.bsky.actor.profile',
defs: {
main: {
type: 'record',
description: 'A declaration of a Bluesky account profile.',
key: 'literal:self',
record: {
type: 'object',
properties: {
displayName: {
type: 'string',
maxGraphemes: 64,
maxLength: 640,
},
description: {
type: 'string',
description: 'Free-form profile description text.',
maxGraphemes: 256,
maxLength: 2560,
},
avatar: {
type: 'blob',
description:
"Small image to be displayed next to posts from account. AKA, 'profile picture'",
accept: ['image/png', 'image/jpeg'],
maxSize: 1000000,
},
banner: {
type: 'blob',
description:
'Larger horizontal image to display behind profile view.',
accept: ['image/png', 'image/jpeg'],
maxSize: 10000000,
},
labels: {
type: 'union',
description:
'Self-label values, specific to the Bluesky application, on the overall account.',
refs: ['lex:com.atproto.label.defs#selfLabels'],
},
joinedViaStarterPack: {
type: 'ref',
ref: 'lex:com.atproto.repo.strongRef',
},
createdAt: {
type: 'string',
format: 'datetime',
},
},
},
},
},
},
AppRockskyAlbum: {
lexicon: 1,
id: 'app.rocksky.album',
defs: {
main: {
type: 'record',
description: 'A declaration of an album.',
key: 'tid',
record: {
type: 'object',
required: ['title', 'artist', 'createdAt'],
properties: {
title: {
type: 'string',
description: 'The title of the album.',
minLength: 1,
maxLength: 512,
},
artist: {
type: 'string',
description: 'The artist of the album.',
minLength: 1,
maxLength: 256,
},
duration: {
type: 'integer',
description: 'The duration of the album in seconds.',
},
releaseDate: {
type: 'string',
description: 'The release date of the album.',
format: 'datetime',
},
year: {
type: 'integer',
description: 'The year the album was released.',
},
genre: {
type: 'string',
description: 'The genre of the album.',
maxLength: 256,
},
albumArt: {
type: 'blob',
description: 'The album art of the album.',
accept: ['image/png', 'image/jpeg'],
maxSize: 2000000,
},
albumArtUrl: {
type: 'string',
description: 'The URL of the album art of the album.',
format: 'uri',
},
tags: {
type: 'array',
description: 'The tags of the album.',
items: {
type: 'string',
minLength: 1,
maxLength: 256,
},
},
youtubeLink: {
type: 'string',
description: 'The YouTube link of the album.',
format: 'uri',
},
spotifyLink: {
type: 'string',
description: 'The Spotify link of the album.',
format: 'uri',
},
tidalLink: {
type: 'string',
description: 'The tidal link of the album.',
format: 'uri',
},
appleMusicLink: {
type: 'string',
description: 'The Apple Music link of the album.',
format: 'uri',
},
createdAt: {
type: 'string',
description: 'The date and time when the album was created.',
format: 'datetime',
},
},
},
},
},
},
AppRockskyAlbumDefs: {
lexicon: 1,
id: 'app.rocksky.album.defs',
defs: {
albumViewBasic: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the album.',
},
uri: {
type: 'string',
description: 'The URI of the album.',
format: 'at-uri',
},
title: {
type: 'string',
description: 'The title of the album.',
},
artist: {
type: 'string',
description: 'The artist of the album.',
},
artistUri: {
type: 'string',
description: "The URI of the album's artist.",
format: 'at-uri',
},
year: {
type: 'integer',
description: 'The year the album was released.',
},
albumArt: {
type: 'string',
description: 'The URL of the album art image.',
format: 'uri',
},
releaseDate: {
type: 'string',
description: 'The release date of the album.',
},
sha256: {
type: 'string',
description: 'The SHA256 hash of the album.',
},
playCount: {
type: 'integer',
description: 'The number of times the album has been played.',
minimum: 0,
},
uniqueListeners: {
type: 'integer',
description:
'The number of unique listeners who have played the album.',
minimum: 0,
},
},
},
albumViewDetailed: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the album.',
},
uri: {
type: 'string',
description: 'The URI of the album.',
format: 'at-uri',
},
title: {
type: 'string',
description: 'The title of the album.',
},
artist: {
type: 'string',
description: 'The artist of the album.',
},
artistUri: {
type: 'string',
description: "The URI of the album's artist.",
format: 'at-uri',
},
year: {
type: 'integer',
description: 'The year the album was released.',
},
albumArt: {
type: 'string',
description: 'The URL of the album art image.',
format: 'uri',
},
releaseDate: {
type: 'string',
description: 'The release date of the album.',
},
sha256: {
type: 'string',
description: 'The SHA256 hash of the album.',
},
playCount: {
type: 'integer',
description: 'The number of times the album has been played.',
minimum: 0,
},
uniqueListeners: {
type: 'integer',
description:
'The number of unique listeners who have played the album.',
minimum: 0,
},
tracks: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.song.defs.songViewBasic',
},
},
},
},
},
},
AppRockskyAlbumGetAlbum: {
lexicon: 1,
id: 'app.rocksky.album.getAlbum',
defs: {
main: {
type: 'query',
description: 'Get detailed album view',
parameters: {
type: 'params',
required: ['uri'],
properties: {
uri: {
type: 'string',
description: 'The URI of the album to retrieve.',
format: 'at-uri',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.album.defs#albumViewDetailed',
},
},
},
},
},
AppRockskyAlbumGetAlbums: {
lexicon: 1,
id: 'app.rocksky.album.getAlbums',
defs: {
main: {
type: 'query',
description: 'Get albums',
parameters: {
type: 'params',
properties: {
limit: {
type: 'integer',
description: 'The maximum number of albums to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
albums: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.album.defs#albumViewBasic',
},
},
},
},
},
},
},
},
AppRockskyAlbumGetAlbumTracks: {
lexicon: 1,
id: 'app.rocksky.album.getAlbumTracks',
defs: {
main: {
type: 'query',
description: 'Get tracks for an album',
parameters: {
type: 'params',
required: ['uri'],
properties: {
uri: {
type: 'string',
description: 'The URI of the album to retrieve tracks from',
format: 'at-uri',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
tracks: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.song.defs#songViewBasic',
},
},
},
},
},
},
},
},
AppRockskyApikeyCreateApikey: {
lexicon: 1,
id: 'app.rocksky.apikey.createApikey',
defs: {
main: {
type: 'procedure',
description: 'Create a new API key for the authenticated user',
input: {
encoding: 'application/json',
schema: {
type: 'object',
required: ['name'],
properties: {
name: {
type: 'string',
description: 'The name of the API key.',
},
description: {
type: 'string',
description: 'A description for the API key.',
},
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.apikey.defs#apiKey',
},
},
},
},
},
AppRockskyApikeyDefs: {
lexicon: 1,
id: 'app.rocksky.apikey.defs',
defs: {
apiKeyView: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the API key.',
},
name: {
type: 'string',
description: 'The name of the API key.',
},
description: {
type: 'string',
description: 'A description for the API key.',
},
createdAt: {
type: 'string',
description: 'The date and time when the API key was created.',
format: 'datetime',
},
},
},
},
},
AppRockskyApikeysDefs: {
lexicon: 1,
id: 'app.rocksky.apikeys.defs',
defs: {},
},
AppRockskyApikeyGetApikeys: {
lexicon: 1,
id: 'app.rocksky.apikey.getApikeys',
defs: {
main: {
type: 'query',
description: 'Get a list of API keys for the authenticated user',
parameters: {
type: 'params',
properties: {
offset: {
type: 'integer',
description:
'The number of API keys to skip before starting to collect the result set.',
},
limit: {
type: 'integer',
description: 'The number of API keys to return per page.',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
apiKeys: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.apikey.defs#apikeyView',
},
},
},
},
},
},
},
},
AppRockskyApikeyRemoveApikey: {
lexicon: 1,
id: 'app.rocksky.apikey.removeApikey',
defs: {
main: {
type: 'procedure',
description: 'Remove an API key for the authenticated user',
parameters: {
type: 'params',
required: ['id'],
properties: {
id: {
type: 'string',
description: 'The ID of the API key to remove.',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.apikey.defs#apiKey',
},
},
},
},
},
AppRockskyApikeyUpdateApikey: {
lexicon: 1,
id: 'app.rocksky.apikey.updateApikey',
defs: {
main: {
type: 'procedure',
description: 'Update an existing API key for the authenticated user',
input: {
encoding: 'application/json',
schema: {
type: 'object',
required: ['id', 'name'],
properties: {
id: {
type: 'string',
description: 'The ID of the API key to update.',
},
name: {
type: 'string',
description: 'The new name of the API key.',
},
description: {
type: 'string',
description: 'A new description for the API key.',
},
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.apikey.defs#apiKey',
},
},
},
},
},
AppRockskyArtist: {
lexicon: 1,
id: 'app.rocksky.artist',
defs: {
main: {
type: 'record',
description: 'A declaration of an artist.',
key: 'tid',
record: {
type: 'object',
required: ['name', 'createdAt'],
properties: {
name: {
type: 'string',
description: 'The name of the artist.',
minLength: 1,
maxLength: 512,
},
bio: {
type: 'string',
description: 'The biography of the artist.',
maxLength: 1000,
},
picture: {
type: 'blob',
description: 'The picture of the artist.',
accept: ['image/png', 'image/jpeg'],
maxSize: 2000000,
},
pictureUrl: {
type: 'string',
description: 'The URL of the picture of the artist.',
format: 'uri',
},
tags: {
type: 'array',
description: 'The tags of the artist.',
items: {
type: 'string',
minLength: 1,
maxLength: 256,
},
},
born: {
type: 'string',
description: 'The birth date of the artist.',
format: 'datetime',
},
died: {
type: 'string',
description: 'The death date of the artist.',
format: 'datetime',
},
bornIn: {
type: 'string',
description: 'The birth place of the artist.',
maxLength: 256,
},
createdAt: {
type: 'string',
description: 'The date when the artist was created.',
format: 'datetime',
},
},
},
},
},
},
AppRockskyArtistDefs: {
lexicon: 1,
id: 'app.rocksky.artist.defs',
defs: {
artistViewBasic: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the artist.',
},
uri: {
type: 'string',
description: 'The URI of the artist.',
format: 'at-uri',
},
name: {
type: 'string',
description: 'The name of the artist.',
},
picture: {
type: 'string',
description: 'The picture of the artist.',
},
sha256: {
type: 'string',
description: 'The SHA256 hash of the artist.',
},
playCount: {
type: 'integer',
description: 'The number of times the artist has been played.',
minimum: 0,
},
uniqueListeners: {
type: 'integer',
description:
'The number of unique listeners who have played the artist.',
minimum: 0,
},
},
},
artistViewDetailed: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the artist.',
},
uri: {
type: 'string',
description: 'The URI of the artist.',
format: 'at-uri',
},
name: {
type: 'string',
description: 'The name of the artist.',
},
picture: {
type: 'string',
description: 'The picture of the artist.',
},
sha256: {
type: 'string',
description: 'The SHA256 hash of the artist.',
},
playCount: {
type: 'integer',
description: 'The number of times the artist has been played.',
minimum: 0,
},
uniqueListeners: {
type: 'integer',
description:
'The number of unique listeners who have played the artist.',
minimum: 0,
},
},
},
songViewBasic: {
type: 'object',
properties: {
uri: {
type: 'string',
description: 'The URI of the song.',
format: 'at-uri',
},
title: {
type: 'string',
description: 'The title of the song.',
},
playCount: {
type: 'integer',
description: 'The number of times the song has been played.',
minimum: 0,
},
},
},
listenerViewBasic: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the actor.',
},
did: {
type: 'string',
description: 'The DID of the listener.',
},
handle: {
type: 'string',
description: 'The handle of the listener.',
},
displayName: {
type: 'string',
description: 'The display name of the listener.',
},
avatar: {
type: 'string',
description: "The URL of the listener's avatar image.",
format: 'uri',
},
mostListenedSong: {
type: 'ref',
ref: 'lex:app.rocksky.artist.defs#songViewBasic',
},
totalPlays: {
type: 'integer',
description: 'The total number of plays by the listener.',
minimum: 0,
},
rank: {
type: 'integer',
description:
'The rank of the listener among all listeners of the artist.',
minimum: 1,
},
},
},
artistMbid: {
type: 'object',
properties: {
mbid: {
type: 'string',
description: 'The MusicBrainz Identifier (MBID) of the artist.',
},
name: {
type: 'string',
description: 'The name of the artist.',
minLength: 1,
maxLength: 256,
},
},
},
},
},
AppRockskyArtistGetArtist: {
lexicon: 1,
id: 'app.rocksky.artist.getArtist',
defs: {
main: {
type: 'query',
description: 'Get artist details',
parameters: {
type: 'params',
required: ['uri'],
properties: {
uri: {
type: 'string',
description: 'The URI of the artist to retrieve details from',
format: 'at-uri',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.artist.defs#artistViewDetailed',
},
},
},
},
},
AppRockskyArtistGetArtistAlbums: {
lexicon: 1,
id: 'app.rocksky.artist.getArtistAlbums',
defs: {
main: {
type: 'query',
description: "Get artist's albums",
parameters: {
type: 'params',
required: ['uri'],
properties: {
uri: {
type: 'string',
description: 'The URI of the artist to retrieve albums from',
format: 'at-uri',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
albums: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.album.defs#albumViewBasic',
},
},
},
},
},
},
},
},
AppRockskyArtistGetArtistListeners: {
lexicon: 1,
id: 'app.rocksky.artist.getArtistListeners',
defs: {
main: {
type: 'query',
description: 'Get artist listeners',
parameters: {
type: 'params',
required: ['uri'],
properties: {
uri: {
type: 'string',
description: 'The URI of the artist to retrieve listeners from',
format: 'at-uri',
},
offset: {
type: 'integer',
description: 'Number of items to skip before returning results',
},
limit: {
type: 'integer',
description: 'Maximum number of results to return',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
listeners: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.artist.defs#listenerViewBasic',
},
},
},
},
},
},
},
},
AppRockskyArtistGetArtists: {
lexicon: 1,
id: 'app.rocksky.artist.getArtists',
defs: {
main: {
type: 'query',
description: 'Get artists',
parameters: {
type: 'params',
properties: {
limit: {
type: 'integer',
description: 'The maximum number of artists to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
names: {
type: 'string',
description: 'The names of the artists to return',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
artists: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.artist.defs#artistViewBasic',
},
},
},
},
},
},
},
},
AppRockskyArtistGetArtistTracks: {
lexicon: 1,
id: 'app.rocksky.artist.getArtistTracks',
defs: {
main: {
type: 'query',
description: "Get artist's tracks",
parameters: {
type: 'params',
properties: {
uri: {
type: 'string',
description: 'The URI of the artist to retrieve albums from',
format: 'at-uri',
},
limit: {
type: 'integer',
description: 'The maximum number of tracks to return',
minimum: 1,
},
offset: {
type: 'integer',
description: 'The offset for pagination',
minimum: 0,
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
tracks: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.song.defs#songViewBasic',
},
},
},
},
},
},
},
},
AppRockskyChartsDefs: {
lexicon: 1,
id: 'app.rocksky.charts.defs',
defs: {
chartsView: {
type: 'object',
properties: {
scrobbles: {
type: 'array',
items: {
type: 'ref',
ref: 'lex:app.rocksky.charts.defs#scrobbleViewBasic',
},
},
},
},
scrobbleViewBasic: {
type: 'object',
properties: {
date: {
type: 'string',
description: 'The date of the scrobble.',
format: 'datetime',
},
count: {
type: 'integer',
description: 'The number of scrobbles on this date.',
},
},
},
},
},
AppRockskyChartsGetScrobblesChart: {
lexicon: 1,
id: 'app.rocksky.charts.getScrobblesChart',
defs: {
main: {
type: 'query',
description: 'Get the scrobbles chart',
parameters: {
type: 'params',
properties: {
did: {
type: 'string',
description: 'The DID or handle of the actor',
format: 'at-identifier',
},
artisturi: {
type: 'string',
description: 'The URI of the artist to filter by',
format: 'at-uri',
},
albumuri: {
type: 'string',
description: 'The URI of the album to filter by',
format: 'at-uri',
},
songuri: {
type: 'string',
description: 'The URI of the track to filter by',
format: 'at-uri',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.charts.defs#chartsView',
},
},
},
},
},
AppRockskyDropboxDefs: {
lexicon: 1,
id: 'app.rocksky.dropbox.defs',
defs: {
fileView: {
type: 'object',
properties: {
id: {
type: 'string',
description: 'The unique identifier of the file.',
},
name: {
type: 'string',
description: 'The name of the file.',
},
pathLower: {
type: 'string',
description: 'The lowercased path of the file.',
},
pathDisplay: {
type: 'string',
description: 'The display path of the file.',
},
clientModified: {
type: 'string',
description:
'The last modified date and time of the file on the client.',
format: 'datetime',
},
serverModified: {
type: 'string',
description:
'The last modified date and time of the file on the server.',
format: 'datetime',
},
},
},
fileListView: {
type: 'object',
properties: {
files: {
type: 'array',
description: 'A list of files in the Dropbox.',
items: {
type: 'ref',
ref: 'lex:app.rocksky.dropbox.defs#fileView',
},
},
},
},
temporaryLinkView: {
type: 'object',
properties: {
link: {
type: 'string',
description: 'The temporary link to access the file.',
format: 'uri',
},
},
},
},
},
AppRockskyDropboxDownloadFile: {
lexicon: 1,
id: 'app.rocksky.dropbox.downloadFile',
defs: {
main: {
type: 'query',
description: 'Download a file from Dropbox by its unique identifier',
parameters: {
type: 'params',
required: ['fileId'],
properties: {
fileId: {
type: 'string',
description: 'The unique identifier of the file to download',
},
},
},
output: {
encoding: 'application/octet-stream',
},
},
},
},
AppRockskyDropboxGetFiles: {
lexicon: 1,
id: 'app.rocksky.dropbox.getFiles',
defs: {
main: {
type: 'query',
description: 'Retrieve a list of files from Dropbox',
parameters: {
type: 'params',
properties: {
at: {
type: 'string',
description: 'Path to the Dropbox folder or root directory',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.dropbox.defs#fileListView',
},
},
},
},
},
AppRockskyDropboxGetMetadata: {
lexicon: 1,
id: 'app.rocksky.dropbox.getMetadata',
defs: {
main: {
type: 'query',
description: 'Retrieve metadata of a file or folder in Dropbox',
parameters: {
type: 'params',
required: ['path'],
properties: {
path: {
type: 'string',
description: 'Path to the file or folder in Dropbox',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.dropbox.defs#fileView',
},
},
},
},
},
AppRockskyDropboxGetTemporaryLink: {
lexicon: 1,
id: 'app.rocksky.dropbox.getTemporaryLink',
defs: {
main: {
type: 'query',
description: 'Retrieve a temporary link to access a file in Dropbox',
parameters: {
type: 'params',
required: ['path'],
properties: {
path: {
type: 'string',
description: 'Path to the file in Dropbox',
},
},
},
output: {
encoding: 'application/json',
schema: {
type: 'ref',
ref: 'lex:app.rocksky.dropbox.defs#temporaryLinkView',
},
},
},
},
},
AppRockskyFeedDefs: {
lexicon: 1,
id: 'app.rocksky.feed.defs',
defs: {
searchResultsView: {
type: 'object',
properties: {
hits: {
type: 'array',
items: {
type: 'union',
refs: [
'lex:app.rocksky.song.defs#songViewBasic',
'lex:app.rocksky.album.defs#albumViewBasic',
'lex:app.rocksky.artist.defs#artistViewBasic',
'lex:app.rocksky.playlist.defs#playlistViewBasic',
'lex:app.rocksky.actor.defs#profileViewBasic',
],
},
},
processingTimeMs: {
type: 'integer',
},
limit: {
type: 'integer',
},
offset: {
type: 'integer',
},
estimatedTotalHits: {
type: 'integer',
},
},
},
nowPlayingView: {
type: 'object',
properties: {
album: {
type: 'string',
},
albumArt: {
type: 'string',
format: 'uri',
},
albumArtist: {
type: 'string',
},
albumUri: {
type: 'string',
format: 'at-uri',
},
artist: {
type: 'string',
},
artistUri: {
type: 'string',
format: 'at-uri',
},
avatar: {
type: 'string',
format: 'uri',
},
createdAt: {
type: 'string',
},
did: {
type: 'string',
format: 'at-identifier',
},