UNPKG

@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
/** * 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', },