A decentralized music tracking and discovery platform built on AT Protocol 馃幍
at main 5453 lines 152 kB view raw
1/** 2 * GENERATED CODE - DO NOT MODIFY 3 */ 4import { LexiconDoc, Lexicons } from '@atproto/lexicon' 5 6export const schemaDict = { 7 AppRockskyActorDefs: { 8 lexicon: 1, 9 id: 'app.rocksky.actor.defs', 10 defs: { 11 profileViewDetailed: { 12 type: 'object', 13 properties: { 14 id: { 15 type: 'string', 16 description: 'The unique identifier of the actor.', 17 }, 18 did: { 19 type: 'string', 20 description: 'The DID of the actor.', 21 }, 22 handle: { 23 type: 'string', 24 description: 'The handle of the actor.', 25 }, 26 displayName: { 27 type: 'string', 28 description: 'The display name of the actor.', 29 }, 30 avatar: { 31 type: 'string', 32 description: "The URL of the actor's avatar image.", 33 format: 'uri', 34 }, 35 createdAt: { 36 type: 'string', 37 description: 'The date and time when the actor was created.', 38 format: 'datetime', 39 }, 40 updatedAt: { 41 type: 'string', 42 description: 'The date and time when the actor was last updated.', 43 format: 'datetime', 44 }, 45 }, 46 }, 47 profileViewBasic: { 48 type: 'object', 49 properties: { 50 id: { 51 type: 'string', 52 description: 'The unique identifier of the actor.', 53 }, 54 did: { 55 type: 'string', 56 description: 'The DID of the actor.', 57 }, 58 handle: { 59 type: 'string', 60 description: 'The handle of the actor.', 61 }, 62 displayName: { 63 type: 'string', 64 description: 'The display name of the actor.', 65 }, 66 avatar: { 67 type: 'string', 68 description: "The URL of the actor's avatar image.", 69 format: 'uri', 70 }, 71 createdAt: { 72 type: 'string', 73 description: 'The date and time when the actor was created.', 74 format: 'datetime', 75 }, 76 updatedAt: { 77 type: 'string', 78 description: 'The date and time when the actor was last updated.', 79 format: 'datetime', 80 }, 81 }, 82 }, 83 neighbourViewBasic: { 84 type: 'object', 85 properties: { 86 userId: { 87 type: 'string', 88 }, 89 did: { 90 type: 'string', 91 }, 92 handle: { 93 type: 'string', 94 }, 95 displayName: { 96 type: 'string', 97 }, 98 avatar: { 99 type: 'string', 100 description: "The URL of the actor's avatar image.", 101 format: 'uri', 102 }, 103 sharedArtistsCount: { 104 type: 'integer', 105 description: 'The number of artists shared with the actor.', 106 }, 107 similarityScore: { 108 type: 'integer', 109 description: 'The similarity score with the actor.', 110 }, 111 topSharedArtistNames: { 112 type: 'array', 113 description: 'The top shared artist names with the actor.', 114 items: { 115 type: 'string', 116 }, 117 }, 118 topSharedArtistsDetails: { 119 type: 'array', 120 description: 'The top shared artist details with the actor.', 121 items: { 122 type: 'ref', 123 ref: 'lex:app.rocksky.artist.defs#artistViewBasic', 124 }, 125 }, 126 }, 127 }, 128 compatibilityViewBasic: { 129 type: 'object', 130 properties: { 131 compatibilityLevel: { 132 type: 'integer', 133 }, 134 compatibilityPercentage: { 135 type: 'integer', 136 }, 137 sharedArtists: { 138 type: 'integer', 139 }, 140 topSharedArtistNames: { 141 type: 'array', 142 items: { 143 type: 'string', 144 }, 145 }, 146 topSharedDetailedArtists: { 147 type: 'array', 148 items: { 149 type: 'ref', 150 ref: 'lex:app.rocksky.actor.defs#artistViewBasic', 151 }, 152 }, 153 user1ArtistCount: { 154 type: 'integer', 155 }, 156 user2ArtistCount: { 157 type: 'integer', 158 }, 159 }, 160 }, 161 artistViewBasic: { 162 type: 'object', 163 properties: { 164 id: { 165 type: 'string', 166 }, 167 name: { 168 type: 'string', 169 }, 170 picture: { 171 type: 'string', 172 format: 'uri', 173 }, 174 uri: { 175 type: 'string', 176 format: 'at-uri', 177 }, 178 user1Rank: { 179 type: 'integer', 180 }, 181 user2Rank: { 182 type: 'integer', 183 }, 184 weight: { 185 type: 'integer', 186 }, 187 }, 188 }, 189 }, 190 }, 191 AppRockskyActorGetActorAlbums: { 192 lexicon: 1, 193 id: 'app.rocksky.actor.getActorAlbums', 194 defs: { 195 main: { 196 type: 'query', 197 description: 'Get albums for an actor', 198 parameters: { 199 type: 'params', 200 required: ['did'], 201 properties: { 202 did: { 203 type: 'string', 204 description: 'The DID or handle of the actor', 205 format: 'at-identifier', 206 }, 207 limit: { 208 type: 'integer', 209 description: 'The maximum number of albums to return', 210 minimum: 1, 211 }, 212 offset: { 213 type: 'integer', 214 description: 'The offset for pagination', 215 minimum: 0, 216 }, 217 startDate: { 218 type: 'string', 219 description: 220 'The start date to filter albums from (ISO 8601 format)', 221 format: 'datetime', 222 }, 223 endDate: { 224 type: 'string', 225 description: 'The end date to filter albums to (ISO 8601 format)', 226 format: 'datetime', 227 }, 228 }, 229 }, 230 output: { 231 encoding: 'application/json', 232 schema: { 233 type: 'object', 234 properties: { 235 albums: { 236 type: 'array', 237 items: { 238 type: 'ref', 239 ref: 'lex:app.rocksky.album.defs#albumViewBasic', 240 }, 241 }, 242 }, 243 }, 244 }, 245 }, 246 }, 247 }, 248 AppRockskyActorGetActorArtists: { 249 lexicon: 1, 250 id: 'app.rocksky.actor.getActorArtists', 251 defs: { 252 main: { 253 type: 'query', 254 description: 'Get artists for an actor', 255 parameters: { 256 type: 'params', 257 required: ['did'], 258 properties: { 259 did: { 260 type: 'string', 261 description: 'The DID or handle of the actor', 262 format: 'at-identifier', 263 }, 264 limit: { 265 type: 'integer', 266 description: 'The maximum number of albums to return', 267 minimum: 1, 268 }, 269 offset: { 270 type: 'integer', 271 description: 'The offset for pagination', 272 minimum: 0, 273 }, 274 startDate: { 275 type: 'string', 276 description: 277 'The start date to filter albums from (ISO 8601 format)', 278 format: 'datetime', 279 }, 280 endDate: { 281 type: 'string', 282 description: 'The end date to filter albums to (ISO 8601 format)', 283 format: 'datetime', 284 }, 285 }, 286 }, 287 output: { 288 encoding: 'application/json', 289 schema: { 290 type: 'object', 291 properties: { 292 artists: { 293 type: 'array', 294 items: { 295 type: 'ref', 296 ref: 'lex:app.rocksky.artist.defs#artistViewBasic', 297 }, 298 }, 299 }, 300 }, 301 }, 302 }, 303 }, 304 }, 305 AppRockskyActorGetActorCompatibility: { 306 lexicon: 1, 307 id: 'app.rocksky.actor.getActorCompatibility', 308 defs: { 309 main: { 310 type: 'query', 311 description: 'Get compatibility for an actor', 312 parameters: { 313 type: 'params', 314 required: ['did'], 315 properties: { 316 did: { 317 type: 'string', 318 description: 'DID or handle to get compatibility for', 319 format: 'at-identifier', 320 }, 321 }, 322 }, 323 output: { 324 encoding: 'application/json', 325 schema: { 326 type: 'object', 327 properties: { 328 compatibility: { 329 type: 'ref', 330 ref: 'lex:app.rocksky.actor.defs#compatibilityViewBasic', 331 }, 332 }, 333 }, 334 }, 335 }, 336 }, 337 }, 338 AppRockskyActorGetActorLovedSongs: { 339 lexicon: 1, 340 id: 'app.rocksky.actor.getActorLovedSongs', 341 defs: { 342 main: { 343 type: 'query', 344 description: 'Get loved songs for an actor', 345 parameters: { 346 type: 'params', 347 required: ['did'], 348 properties: { 349 did: { 350 type: 'string', 351 description: 'The DID or handle of the actor', 352 format: 'at-identifier', 353 }, 354 limit: { 355 type: 'integer', 356 description: 'The maximum number of albums to return', 357 minimum: 1, 358 }, 359 offset: { 360 type: 'integer', 361 description: 'The offset for pagination', 362 minimum: 0, 363 }, 364 }, 365 }, 366 output: { 367 encoding: 'application/json', 368 schema: { 369 type: 'object', 370 properties: { 371 tracks: { 372 type: 'array', 373 items: { 374 type: 'ref', 375 ref: 'lex:app.rocksky.song.defs#songViewBasic', 376 }, 377 }, 378 }, 379 }, 380 }, 381 }, 382 }, 383 }, 384 AppRockskyActorGetActorNeighbours: { 385 lexicon: 1, 386 id: 'app.rocksky.actor.getActorNeighbours', 387 defs: { 388 main: { 389 type: 'query', 390 description: 'Get neighbours for an actor', 391 parameters: { 392 type: 'params', 393 required: ['did'], 394 properties: { 395 did: { 396 type: 'string', 397 description: 'The DID or handle of the actor', 398 format: 'at-identifier', 399 }, 400 }, 401 }, 402 output: { 403 encoding: 'application/json', 404 schema: { 405 type: 'object', 406 properties: { 407 neighbours: { 408 type: 'array', 409 items: { 410 type: 'ref', 411 ref: 'lex:app.rocksky.actor.defs#neighbourViewBasic', 412 }, 413 }, 414 }, 415 }, 416 }, 417 }, 418 }, 419 }, 420 AppRockskyActorGetActorPlaylists: { 421 lexicon: 1, 422 id: 'app.rocksky.actor.getActorPlaylists', 423 defs: { 424 main: { 425 type: 'query', 426 description: 'Get playlists for an actor', 427 parameters: { 428 type: 'params', 429 required: ['did'], 430 properties: { 431 did: { 432 type: 'string', 433 description: 'The DID or handle of the actor', 434 format: 'at-identifier', 435 }, 436 limit: { 437 type: 'integer', 438 description: 'The maximum number of albums to return', 439 minimum: 1, 440 }, 441 offset: { 442 type: 'integer', 443 description: 'The offset for pagination', 444 minimum: 0, 445 }, 446 }, 447 }, 448 output: { 449 encoding: 'application/json', 450 schema: { 451 type: 'object', 452 properties: { 453 playlists: { 454 type: 'array', 455 items: { 456 type: 'ref', 457 ref: 'lex:app.rocksky.playlist.defs#playlistViewBasic', 458 }, 459 }, 460 }, 461 }, 462 }, 463 }, 464 }, 465 }, 466 AppRockskyActorGetActorScrobbles: { 467 lexicon: 1, 468 id: 'app.rocksky.actor.getActorScrobbles', 469 defs: { 470 main: { 471 type: 'query', 472 description: 'Get scrobbles for an actor', 473 parameters: { 474 type: 'params', 475 required: ['did'], 476 properties: { 477 did: { 478 type: 'string', 479 description: 'The DID or handle of the actor', 480 format: 'at-identifier', 481 }, 482 limit: { 483 type: 'integer', 484 description: 'The maximum number of albums to return', 485 minimum: 1, 486 }, 487 offset: { 488 type: 'integer', 489 description: 'The offset for pagination', 490 minimum: 0, 491 }, 492 }, 493 }, 494 output: { 495 encoding: 'application/json', 496 schema: { 497 type: 'object', 498 properties: { 499 scrobbles: { 500 type: 'array', 501 items: { 502 type: 'ref', 503 ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 504 }, 505 }, 506 }, 507 }, 508 }, 509 }, 510 }, 511 }, 512 AppRockskyActorGetActorSongs: { 513 lexicon: 1, 514 id: 'app.rocksky.actor.getActorSongs', 515 defs: { 516 main: { 517 type: 'query', 518 description: 'Get songs for an actor', 519 parameters: { 520 type: 'params', 521 required: ['did'], 522 properties: { 523 did: { 524 type: 'string', 525 description: 'The DID or handle of the actor', 526 format: 'at-identifier', 527 }, 528 limit: { 529 type: 'integer', 530 description: 'The maximum number of albums to return', 531 minimum: 1, 532 }, 533 offset: { 534 type: 'integer', 535 description: 'The offset for pagination', 536 minimum: 0, 537 }, 538 startDate: { 539 type: 'string', 540 description: 541 'The start date to filter albums from (ISO 8601 format)', 542 format: 'datetime', 543 }, 544 endDate: { 545 type: 'string', 546 description: 'The end date to filter albums to (ISO 8601 format)', 547 format: 'datetime', 548 }, 549 }, 550 }, 551 output: { 552 encoding: 'application/json', 553 schema: { 554 type: 'object', 555 properties: { 556 songs: { 557 type: 'array', 558 items: { 559 type: 'ref', 560 ref: 'lex:app.rocksky.song.defs#songViewBasic', 561 }, 562 }, 563 }, 564 }, 565 }, 566 }, 567 }, 568 }, 569 AppRockskyActorGetProfile: { 570 lexicon: 1, 571 id: 'app.rocksky.actor.getProfile', 572 defs: { 573 main: { 574 type: 'query', 575 description: 'Get the profile of an actor', 576 parameters: { 577 type: 'params', 578 properties: { 579 did: { 580 type: 'string', 581 description: 'The DID or handle of the actor', 582 format: 'at-identifier', 583 }, 584 }, 585 }, 586 output: { 587 encoding: 'application/json', 588 schema: { 589 type: 'ref', 590 ref: 'lex:app.rocksky.actor.defs#profileViewDetailed', 591 }, 592 }, 593 }, 594 }, 595 }, 596 AppBskyActorProfile: { 597 lexicon: 1, 598 id: 'app.bsky.actor.profile', 599 defs: { 600 main: { 601 type: 'record', 602 description: 'A declaration of a Bluesky account profile.', 603 key: 'literal:self', 604 record: { 605 type: 'object', 606 properties: { 607 displayName: { 608 type: 'string', 609 maxGraphemes: 64, 610 maxLength: 640, 611 }, 612 description: { 613 type: 'string', 614 description: 'Free-form profile description text.', 615 maxGraphemes: 256, 616 maxLength: 2560, 617 }, 618 avatar: { 619 type: 'blob', 620 description: 621 "Small image to be displayed next to posts from account. AKA, 'profile picture'", 622 accept: ['image/png', 'image/jpeg'], 623 maxSize: 1000000, 624 }, 625 banner: { 626 type: 'blob', 627 description: 628 'Larger horizontal image to display behind profile view.', 629 accept: ['image/png', 'image/jpeg'], 630 maxSize: 10000000, 631 }, 632 labels: { 633 type: 'union', 634 description: 635 'Self-label values, specific to the Bluesky application, on the overall account.', 636 refs: ['lex:com.atproto.label.defs#selfLabels'], 637 }, 638 joinedViaStarterPack: { 639 type: 'ref', 640 ref: 'lex:com.atproto.repo.strongRef', 641 }, 642 createdAt: { 643 type: 'string', 644 format: 'datetime', 645 }, 646 }, 647 }, 648 }, 649 }, 650 }, 651 AppRockskyAlbum: { 652 lexicon: 1, 653 id: 'app.rocksky.album', 654 defs: { 655 main: { 656 type: 'record', 657 description: 'A declaration of an album.', 658 key: 'tid', 659 record: { 660 type: 'object', 661 required: ['title', 'artist', 'createdAt'], 662 properties: { 663 title: { 664 type: 'string', 665 description: 'The title of the album.', 666 minLength: 1, 667 maxLength: 512, 668 }, 669 artist: { 670 type: 'string', 671 description: 'The artist of the album.', 672 minLength: 1, 673 maxLength: 256, 674 }, 675 duration: { 676 type: 'integer', 677 description: 'The duration of the album in seconds.', 678 }, 679 releaseDate: { 680 type: 'string', 681 description: 'The release date of the album.', 682 format: 'datetime', 683 }, 684 year: { 685 type: 'integer', 686 description: 'The year the album was released.', 687 }, 688 genre: { 689 type: 'string', 690 description: 'The genre of the album.', 691 maxLength: 256, 692 }, 693 albumArt: { 694 type: 'blob', 695 description: 'The album art of the album.', 696 accept: ['image/png', 'image/jpeg'], 697 maxSize: 2000000, 698 }, 699 albumArtUrl: { 700 type: 'string', 701 description: 'The URL of the album art of the album.', 702 format: 'uri', 703 }, 704 tags: { 705 type: 'array', 706 description: 'The tags of the album.', 707 items: { 708 type: 'string', 709 minLength: 1, 710 maxLength: 256, 711 }, 712 }, 713 youtubeLink: { 714 type: 'string', 715 description: 'The YouTube link of the album.', 716 format: 'uri', 717 }, 718 spotifyLink: { 719 type: 'string', 720 description: 'The Spotify link of the album.', 721 format: 'uri', 722 }, 723 tidalLink: { 724 type: 'string', 725 description: 'The tidal link of the album.', 726 format: 'uri', 727 }, 728 appleMusicLink: { 729 type: 'string', 730 description: 'The Apple Music link of the album.', 731 format: 'uri', 732 }, 733 createdAt: { 734 type: 'string', 735 description: 'The date and time when the album was created.', 736 format: 'datetime', 737 }, 738 }, 739 }, 740 }, 741 }, 742 }, 743 AppRockskyAlbumDefs: { 744 lexicon: 1, 745 id: 'app.rocksky.album.defs', 746 defs: { 747 albumViewBasic: { 748 type: 'object', 749 properties: { 750 id: { 751 type: 'string', 752 description: 'The unique identifier of the album.', 753 }, 754 uri: { 755 type: 'string', 756 description: 'The URI of the album.', 757 format: 'at-uri', 758 }, 759 title: { 760 type: 'string', 761 description: 'The title of the album.', 762 }, 763 artist: { 764 type: 'string', 765 description: 'The artist of the album.', 766 }, 767 artistUri: { 768 type: 'string', 769 description: "The URI of the album's artist.", 770 format: 'at-uri', 771 }, 772 year: { 773 type: 'integer', 774 description: 'The year the album was released.', 775 }, 776 albumArt: { 777 type: 'string', 778 description: 'The URL of the album art image.', 779 format: 'uri', 780 }, 781 releaseDate: { 782 type: 'string', 783 description: 'The release date of the album.', 784 }, 785 sha256: { 786 type: 'string', 787 description: 'The SHA256 hash of the album.', 788 }, 789 playCount: { 790 type: 'integer', 791 description: 'The number of times the album has been played.', 792 minimum: 0, 793 }, 794 uniqueListeners: { 795 type: 'integer', 796 description: 797 'The number of unique listeners who have played the album.', 798 minimum: 0, 799 }, 800 }, 801 }, 802 albumViewDetailed: { 803 type: 'object', 804 properties: { 805 id: { 806 type: 'string', 807 description: 'The unique identifier of the album.', 808 }, 809 uri: { 810 type: 'string', 811 description: 'The URI of the album.', 812 format: 'at-uri', 813 }, 814 title: { 815 type: 'string', 816 description: 'The title of the album.', 817 }, 818 artist: { 819 type: 'string', 820 description: 'The artist of the album.', 821 }, 822 artistUri: { 823 type: 'string', 824 description: "The URI of the album's artist.", 825 format: 'at-uri', 826 }, 827 year: { 828 type: 'integer', 829 description: 'The year the album was released.', 830 }, 831 albumArt: { 832 type: 'string', 833 description: 'The URL of the album art image.', 834 format: 'uri', 835 }, 836 releaseDate: { 837 type: 'string', 838 description: 'The release date of the album.', 839 }, 840 sha256: { 841 type: 'string', 842 description: 'The SHA256 hash of the album.', 843 }, 844 playCount: { 845 type: 'integer', 846 description: 'The number of times the album has been played.', 847 minimum: 0, 848 }, 849 uniqueListeners: { 850 type: 'integer', 851 description: 852 'The number of unique listeners who have played the album.', 853 minimum: 0, 854 }, 855 tracks: { 856 type: 'array', 857 items: { 858 type: 'ref', 859 ref: 'lex:app.rocksky.song.defs.songViewBasic', 860 }, 861 }, 862 }, 863 }, 864 }, 865 }, 866 AppRockskyAlbumGetAlbum: { 867 lexicon: 1, 868 id: 'app.rocksky.album.getAlbum', 869 defs: { 870 main: { 871 type: 'query', 872 description: 'Get detailed album view', 873 parameters: { 874 type: 'params', 875 required: ['uri'], 876 properties: { 877 uri: { 878 type: 'string', 879 description: 'The URI of the album to retrieve.', 880 format: 'at-uri', 881 }, 882 }, 883 }, 884 output: { 885 encoding: 'application/json', 886 schema: { 887 type: 'ref', 888 ref: 'lex:app.rocksky.album.defs#albumViewDetailed', 889 }, 890 }, 891 }, 892 }, 893 }, 894 AppRockskyAlbumGetAlbums: { 895 lexicon: 1, 896 id: 'app.rocksky.album.getAlbums', 897 defs: { 898 main: { 899 type: 'query', 900 description: 'Get albums', 901 parameters: { 902 type: 'params', 903 properties: { 904 limit: { 905 type: 'integer', 906 description: 'The maximum number of albums to return', 907 minimum: 1, 908 }, 909 offset: { 910 type: 'integer', 911 description: 'The offset for pagination', 912 minimum: 0, 913 }, 914 }, 915 }, 916 output: { 917 encoding: 'application/json', 918 schema: { 919 type: 'object', 920 properties: { 921 albums: { 922 type: 'array', 923 items: { 924 type: 'ref', 925 ref: 'lex:app.rocksky.album.defs#albumViewBasic', 926 }, 927 }, 928 }, 929 }, 930 }, 931 }, 932 }, 933 }, 934 AppRockskyAlbumGetAlbumTracks: { 935 lexicon: 1, 936 id: 'app.rocksky.album.getAlbumTracks', 937 defs: { 938 main: { 939 type: 'query', 940 description: 'Get tracks for an album', 941 parameters: { 942 type: 'params', 943 required: ['uri'], 944 properties: { 945 uri: { 946 type: 'string', 947 description: 'The URI of the album to retrieve tracks from', 948 format: 'at-uri', 949 }, 950 }, 951 }, 952 output: { 953 encoding: 'application/json', 954 schema: { 955 type: 'object', 956 properties: { 957 tracks: { 958 type: 'array', 959 items: { 960 type: 'ref', 961 ref: 'lex:app.rocksky.song.defs#songViewBasic', 962 }, 963 }, 964 }, 965 }, 966 }, 967 }, 968 }, 969 }, 970 AppRockskyApikeyCreateApikey: { 971 lexicon: 1, 972 id: 'app.rocksky.apikey.createApikey', 973 defs: { 974 main: { 975 type: 'procedure', 976 description: 'Create a new API key for the authenticated user', 977 input: { 978 encoding: 'application/json', 979 schema: { 980 type: 'object', 981 required: ['name'], 982 properties: { 983 name: { 984 type: 'string', 985 description: 'The name of the API key.', 986 }, 987 description: { 988 type: 'string', 989 description: 'A description for the API key.', 990 }, 991 }, 992 }, 993 }, 994 output: { 995 encoding: 'application/json', 996 schema: { 997 type: 'ref', 998 ref: 'lex:app.rocksky.apikey.defs#apiKey', 999 }, 1000 }, 1001 }, 1002 }, 1003 }, 1004 AppRockskyApikeyDefs: { 1005 lexicon: 1, 1006 id: 'app.rocksky.apikey.defs', 1007 defs: { 1008 apiKeyView: { 1009 type: 'object', 1010 properties: { 1011 id: { 1012 type: 'string', 1013 description: 'The unique identifier of the API key.', 1014 }, 1015 name: { 1016 type: 'string', 1017 description: 'The name of the API key.', 1018 }, 1019 description: { 1020 type: 'string', 1021 description: 'A description for the API key.', 1022 }, 1023 createdAt: { 1024 type: 'string', 1025 description: 'The date and time when the API key was created.', 1026 format: 'datetime', 1027 }, 1028 }, 1029 }, 1030 }, 1031 }, 1032 AppRockskyApikeysDefs: { 1033 lexicon: 1, 1034 id: 'app.rocksky.apikeys.defs', 1035 defs: {}, 1036 }, 1037 AppRockskyApikeyGetApikeys: { 1038 lexicon: 1, 1039 id: 'app.rocksky.apikey.getApikeys', 1040 defs: { 1041 main: { 1042 type: 'query', 1043 description: 'Get a list of API keys for the authenticated user', 1044 parameters: { 1045 type: 'params', 1046 properties: { 1047 offset: { 1048 type: 'integer', 1049 description: 1050 'The number of API keys to skip before starting to collect the result set.', 1051 }, 1052 limit: { 1053 type: 'integer', 1054 description: 'The number of API keys to return per page.', 1055 }, 1056 }, 1057 }, 1058 output: { 1059 encoding: 'application/json', 1060 schema: { 1061 type: 'object', 1062 properties: { 1063 apiKeys: { 1064 type: 'array', 1065 items: { 1066 type: 'ref', 1067 ref: 'lex:app.rocksky.apikey.defs#apikeyView', 1068 }, 1069 }, 1070 }, 1071 }, 1072 }, 1073 }, 1074 }, 1075 }, 1076 AppRockskyApikeyRemoveApikey: { 1077 lexicon: 1, 1078 id: 'app.rocksky.apikey.removeApikey', 1079 defs: { 1080 main: { 1081 type: 'procedure', 1082 description: 'Remove an API key for the authenticated user', 1083 parameters: { 1084 type: 'params', 1085 required: ['id'], 1086 properties: { 1087 id: { 1088 type: 'string', 1089 description: 'The ID of the API key to remove.', 1090 }, 1091 }, 1092 }, 1093 output: { 1094 encoding: 'application/json', 1095 schema: { 1096 type: 'ref', 1097 ref: 'lex:app.rocksky.apikey.defs#apiKey', 1098 }, 1099 }, 1100 }, 1101 }, 1102 }, 1103 AppRockskyApikeyUpdateApikey: { 1104 lexicon: 1, 1105 id: 'app.rocksky.apikey.updateApikey', 1106 defs: { 1107 main: { 1108 type: 'procedure', 1109 description: 'Update an existing API key for the authenticated user', 1110 input: { 1111 encoding: 'application/json', 1112 schema: { 1113 type: 'object', 1114 required: ['id', 'name'], 1115 properties: { 1116 id: { 1117 type: 'string', 1118 description: 'The ID of the API key to update.', 1119 }, 1120 name: { 1121 type: 'string', 1122 description: 'The new name of the API key.', 1123 }, 1124 description: { 1125 type: 'string', 1126 description: 'A new description for the API key.', 1127 }, 1128 }, 1129 }, 1130 }, 1131 output: { 1132 encoding: 'application/json', 1133 schema: { 1134 type: 'ref', 1135 ref: 'lex:app.rocksky.apikey.defs#apiKey', 1136 }, 1137 }, 1138 }, 1139 }, 1140 }, 1141 AppRockskyArtist: { 1142 lexicon: 1, 1143 id: 'app.rocksky.artist', 1144 defs: { 1145 main: { 1146 type: 'record', 1147 description: 'A declaration of an artist.', 1148 key: 'tid', 1149 record: { 1150 type: 'object', 1151 required: ['name', 'createdAt'], 1152 properties: { 1153 name: { 1154 type: 'string', 1155 description: 'The name of the artist.', 1156 minLength: 1, 1157 maxLength: 512, 1158 }, 1159 bio: { 1160 type: 'string', 1161 description: 'The biography of the artist.', 1162 maxLength: 1000, 1163 }, 1164 picture: { 1165 type: 'blob', 1166 description: 'The picture of the artist.', 1167 accept: ['image/png', 'image/jpeg'], 1168 maxSize: 2000000, 1169 }, 1170 pictureUrl: { 1171 type: 'string', 1172 description: 'The URL of the picture of the artist.', 1173 format: 'uri', 1174 }, 1175 tags: { 1176 type: 'array', 1177 description: 'The tags of the artist.', 1178 items: { 1179 type: 'string', 1180 minLength: 1, 1181 maxLength: 256, 1182 }, 1183 }, 1184 born: { 1185 type: 'string', 1186 description: 'The birth date of the artist.', 1187 format: 'datetime', 1188 }, 1189 died: { 1190 type: 'string', 1191 description: 'The death date of the artist.', 1192 format: 'datetime', 1193 }, 1194 bornIn: { 1195 type: 'string', 1196 description: 'The birth place of the artist.', 1197 maxLength: 256, 1198 }, 1199 createdAt: { 1200 type: 'string', 1201 description: 'The date when the artist was created.', 1202 format: 'datetime', 1203 }, 1204 }, 1205 }, 1206 }, 1207 }, 1208 }, 1209 AppRockskyArtistDefs: { 1210 lexicon: 1, 1211 id: 'app.rocksky.artist.defs', 1212 defs: { 1213 artistViewBasic: { 1214 type: 'object', 1215 properties: { 1216 id: { 1217 type: 'string', 1218 description: 'The unique identifier of the artist.', 1219 }, 1220 uri: { 1221 type: 'string', 1222 description: 'The URI of the artist.', 1223 format: 'at-uri', 1224 }, 1225 name: { 1226 type: 'string', 1227 description: 'The name of the artist.', 1228 }, 1229 picture: { 1230 type: 'string', 1231 description: 'The picture of the artist.', 1232 }, 1233 sha256: { 1234 type: 'string', 1235 description: 'The SHA256 hash of the artist.', 1236 }, 1237 playCount: { 1238 type: 'integer', 1239 description: 'The number of times the artist has been played.', 1240 minimum: 0, 1241 }, 1242 uniqueListeners: { 1243 type: 'integer', 1244 description: 1245 'The number of unique listeners who have played the artist.', 1246 minimum: 0, 1247 }, 1248 }, 1249 }, 1250 artistViewDetailed: { 1251 type: 'object', 1252 properties: { 1253 id: { 1254 type: 'string', 1255 description: 'The unique identifier of the artist.', 1256 }, 1257 uri: { 1258 type: 'string', 1259 description: 'The URI of the artist.', 1260 format: 'at-uri', 1261 }, 1262 name: { 1263 type: 'string', 1264 description: 'The name of the artist.', 1265 }, 1266 picture: { 1267 type: 'string', 1268 description: 'The picture of the artist.', 1269 }, 1270 sha256: { 1271 type: 'string', 1272 description: 'The SHA256 hash of the artist.', 1273 }, 1274 playCount: { 1275 type: 'integer', 1276 description: 'The number of times the artist has been played.', 1277 minimum: 0, 1278 }, 1279 uniqueListeners: { 1280 type: 'integer', 1281 description: 1282 'The number of unique listeners who have played the artist.', 1283 minimum: 0, 1284 }, 1285 }, 1286 }, 1287 songViewBasic: { 1288 type: 'object', 1289 properties: { 1290 uri: { 1291 type: 'string', 1292 description: 'The URI of the song.', 1293 format: 'at-uri', 1294 }, 1295 title: { 1296 type: 'string', 1297 description: 'The title of the song.', 1298 }, 1299 playCount: { 1300 type: 'integer', 1301 description: 'The number of times the song has been played.', 1302 minimum: 0, 1303 }, 1304 }, 1305 }, 1306 listenerViewBasic: { 1307 type: 'object', 1308 properties: { 1309 id: { 1310 type: 'string', 1311 description: 'The unique identifier of the actor.', 1312 }, 1313 did: { 1314 type: 'string', 1315 description: 'The DID of the listener.', 1316 }, 1317 handle: { 1318 type: 'string', 1319 description: 'The handle of the listener.', 1320 }, 1321 displayName: { 1322 type: 'string', 1323 description: 'The display name of the listener.', 1324 }, 1325 avatar: { 1326 type: 'string', 1327 description: "The URL of the listener's avatar image.", 1328 format: 'uri', 1329 }, 1330 mostListenedSong: { 1331 type: 'ref', 1332 ref: 'lex:app.rocksky.artist.defs#songViewBasic', 1333 }, 1334 totalPlays: { 1335 type: 'integer', 1336 description: 'The total number of plays by the listener.', 1337 minimum: 0, 1338 }, 1339 rank: { 1340 type: 'integer', 1341 description: 1342 'The rank of the listener among all listeners of the artist.', 1343 minimum: 1, 1344 }, 1345 }, 1346 }, 1347 artistMbid: { 1348 type: 'object', 1349 properties: { 1350 mbid: { 1351 type: 'string', 1352 description: 'The MusicBrainz Identifier (MBID) of the artist.', 1353 }, 1354 name: { 1355 type: 'string', 1356 description: 'The name of the artist.', 1357 minLength: 1, 1358 maxLength: 256, 1359 }, 1360 }, 1361 }, 1362 }, 1363 }, 1364 AppRockskyArtistGetArtist: { 1365 lexicon: 1, 1366 id: 'app.rocksky.artist.getArtist', 1367 defs: { 1368 main: { 1369 type: 'query', 1370 description: 'Get artist details', 1371 parameters: { 1372 type: 'params', 1373 required: ['uri'], 1374 properties: { 1375 uri: { 1376 type: 'string', 1377 description: 'The URI of the artist to retrieve details from', 1378 format: 'at-uri', 1379 }, 1380 }, 1381 }, 1382 output: { 1383 encoding: 'application/json', 1384 schema: { 1385 type: 'ref', 1386 ref: 'lex:app.rocksky.artist.defs#artistViewDetailed', 1387 }, 1388 }, 1389 }, 1390 }, 1391 }, 1392 AppRockskyArtistGetArtistAlbums: { 1393 lexicon: 1, 1394 id: 'app.rocksky.artist.getArtistAlbums', 1395 defs: { 1396 main: { 1397 type: 'query', 1398 description: "Get artist's albums", 1399 parameters: { 1400 type: 'params', 1401 required: ['uri'], 1402 properties: { 1403 uri: { 1404 type: 'string', 1405 description: 'The URI of the artist to retrieve albums from', 1406 format: 'at-uri', 1407 }, 1408 }, 1409 }, 1410 output: { 1411 encoding: 'application/json', 1412 schema: { 1413 type: 'object', 1414 properties: { 1415 albums: { 1416 type: 'array', 1417 items: { 1418 type: 'ref', 1419 ref: 'lex:app.rocksky.album.defs#albumViewBasic', 1420 }, 1421 }, 1422 }, 1423 }, 1424 }, 1425 }, 1426 }, 1427 }, 1428 AppRockskyArtistGetArtistListeners: { 1429 lexicon: 1, 1430 id: 'app.rocksky.artist.getArtistListeners', 1431 defs: { 1432 main: { 1433 type: 'query', 1434 description: 'Get artist listeners', 1435 parameters: { 1436 type: 'params', 1437 required: ['uri'], 1438 properties: { 1439 uri: { 1440 type: 'string', 1441 description: 'The URI of the artist to retrieve listeners from', 1442 format: 'at-uri', 1443 }, 1444 offset: { 1445 type: 'integer', 1446 description: 'Number of items to skip before returning results', 1447 }, 1448 limit: { 1449 type: 'integer', 1450 description: 'Maximum number of results to return', 1451 }, 1452 }, 1453 }, 1454 output: { 1455 encoding: 'application/json', 1456 schema: { 1457 type: 'object', 1458 properties: { 1459 listeners: { 1460 type: 'array', 1461 items: { 1462 type: 'ref', 1463 ref: 'lex:app.rocksky.artist.defs#listenerViewBasic', 1464 }, 1465 }, 1466 }, 1467 }, 1468 }, 1469 }, 1470 }, 1471 }, 1472 AppRockskyArtistGetArtists: { 1473 lexicon: 1, 1474 id: 'app.rocksky.artist.getArtists', 1475 defs: { 1476 main: { 1477 type: 'query', 1478 description: 'Get artists', 1479 parameters: { 1480 type: 'params', 1481 properties: { 1482 limit: { 1483 type: 'integer', 1484 description: 'The maximum number of artists to return', 1485 minimum: 1, 1486 }, 1487 offset: { 1488 type: 'integer', 1489 description: 'The offset for pagination', 1490 minimum: 0, 1491 }, 1492 names: { 1493 type: 'string', 1494 description: 'The names of the artists to return', 1495 }, 1496 }, 1497 }, 1498 output: { 1499 encoding: 'application/json', 1500 schema: { 1501 type: 'object', 1502 properties: { 1503 artists: { 1504 type: 'array', 1505 items: { 1506 type: 'ref', 1507 ref: 'lex:app.rocksky.artist.defs#artistViewBasic', 1508 }, 1509 }, 1510 }, 1511 }, 1512 }, 1513 }, 1514 }, 1515 }, 1516 AppRockskyArtistGetArtistTracks: { 1517 lexicon: 1, 1518 id: 'app.rocksky.artist.getArtistTracks', 1519 defs: { 1520 main: { 1521 type: 'query', 1522 description: "Get artist's tracks", 1523 parameters: { 1524 type: 'params', 1525 properties: { 1526 uri: { 1527 type: 'string', 1528 description: 'The URI of the artist to retrieve albums from', 1529 format: 'at-uri', 1530 }, 1531 limit: { 1532 type: 'integer', 1533 description: 'The maximum number of tracks to return', 1534 minimum: 1, 1535 }, 1536 offset: { 1537 type: 'integer', 1538 description: 'The offset for pagination', 1539 minimum: 0, 1540 }, 1541 }, 1542 }, 1543 output: { 1544 encoding: 'application/json', 1545 schema: { 1546 type: 'object', 1547 properties: { 1548 tracks: { 1549 type: 'array', 1550 items: { 1551 type: 'ref', 1552 ref: 'lex:app.rocksky.song.defs#songViewBasic', 1553 }, 1554 }, 1555 }, 1556 }, 1557 }, 1558 }, 1559 }, 1560 }, 1561 AppRockskyChartsDefs: { 1562 lexicon: 1, 1563 id: 'app.rocksky.charts.defs', 1564 defs: { 1565 chartsView: { 1566 type: 'object', 1567 properties: { 1568 scrobbles: { 1569 type: 'array', 1570 items: { 1571 type: 'ref', 1572 ref: 'lex:app.rocksky.charts.defs#scrobbleViewBasic', 1573 }, 1574 }, 1575 }, 1576 }, 1577 scrobbleViewBasic: { 1578 type: 'object', 1579 properties: { 1580 date: { 1581 type: 'string', 1582 description: 'The date of the scrobble.', 1583 format: 'datetime', 1584 }, 1585 count: { 1586 type: 'integer', 1587 description: 'The number of scrobbles on this date.', 1588 }, 1589 }, 1590 }, 1591 }, 1592 }, 1593 AppRockskyChartsGetScrobblesChart: { 1594 lexicon: 1, 1595 id: 'app.rocksky.charts.getScrobblesChart', 1596 defs: { 1597 main: { 1598 type: 'query', 1599 description: 'Get the scrobbles chart', 1600 parameters: { 1601 type: 'params', 1602 properties: { 1603 did: { 1604 type: 'string', 1605 description: 'The DID or handle of the actor', 1606 format: 'at-identifier', 1607 }, 1608 artisturi: { 1609 type: 'string', 1610 description: 'The URI of the artist to filter by', 1611 format: 'at-uri', 1612 }, 1613 albumuri: { 1614 type: 'string', 1615 description: 'The URI of the album to filter by', 1616 format: 'at-uri', 1617 }, 1618 songuri: { 1619 type: 'string', 1620 description: 'The URI of the track to filter by', 1621 format: 'at-uri', 1622 }, 1623 }, 1624 }, 1625 output: { 1626 encoding: 'application/json', 1627 schema: { 1628 type: 'ref', 1629 ref: 'lex:app.rocksky.charts.defs#chartsView', 1630 }, 1631 }, 1632 }, 1633 }, 1634 }, 1635 AppRockskyDropboxDefs: { 1636 lexicon: 1, 1637 id: 'app.rocksky.dropbox.defs', 1638 defs: { 1639 fileView: { 1640 type: 'object', 1641 properties: { 1642 id: { 1643 type: 'string', 1644 description: 'The unique identifier of the file.', 1645 }, 1646 name: { 1647 type: 'string', 1648 description: 'The name of the file.', 1649 }, 1650 pathLower: { 1651 type: 'string', 1652 description: 'The lowercased path of the file.', 1653 }, 1654 pathDisplay: { 1655 type: 'string', 1656 description: 'The display path of the file.', 1657 }, 1658 clientModified: { 1659 type: 'string', 1660 description: 1661 'The last modified date and time of the file on the client.', 1662 format: 'datetime', 1663 }, 1664 serverModified: { 1665 type: 'string', 1666 description: 1667 'The last modified date and time of the file on the server.', 1668 format: 'datetime', 1669 }, 1670 }, 1671 }, 1672 fileListView: { 1673 type: 'object', 1674 properties: { 1675 files: { 1676 type: 'array', 1677 description: 'A list of files in the Dropbox.', 1678 items: { 1679 type: 'ref', 1680 ref: 'lex:app.rocksky.dropbox.defs#fileView', 1681 }, 1682 }, 1683 }, 1684 }, 1685 temporaryLinkView: { 1686 type: 'object', 1687 properties: { 1688 link: { 1689 type: 'string', 1690 description: 'The temporary link to access the file.', 1691 format: 'uri', 1692 }, 1693 }, 1694 }, 1695 }, 1696 }, 1697 AppRockskyDropboxDownloadFile: { 1698 lexicon: 1, 1699 id: 'app.rocksky.dropbox.downloadFile', 1700 defs: { 1701 main: { 1702 type: 'query', 1703 description: 'Download a file from Dropbox by its unique identifier', 1704 parameters: { 1705 type: 'params', 1706 required: ['fileId'], 1707 properties: { 1708 fileId: { 1709 type: 'string', 1710 description: 'The unique identifier of the file to download', 1711 }, 1712 }, 1713 }, 1714 output: { 1715 encoding: 'application/octet-stream', 1716 }, 1717 }, 1718 }, 1719 }, 1720 AppRockskyDropboxGetFiles: { 1721 lexicon: 1, 1722 id: 'app.rocksky.dropbox.getFiles', 1723 defs: { 1724 main: { 1725 type: 'query', 1726 description: 'Retrieve a list of files from Dropbox', 1727 parameters: { 1728 type: 'params', 1729 properties: { 1730 at: { 1731 type: 'string', 1732 description: 'Path to the Dropbox folder or root directory', 1733 }, 1734 }, 1735 }, 1736 output: { 1737 encoding: 'application/json', 1738 schema: { 1739 type: 'ref', 1740 ref: 'lex:app.rocksky.dropbox.defs#fileListView', 1741 }, 1742 }, 1743 }, 1744 }, 1745 }, 1746 AppRockskyDropboxGetMetadata: { 1747 lexicon: 1, 1748 id: 'app.rocksky.dropbox.getMetadata', 1749 defs: { 1750 main: { 1751 type: 'query', 1752 description: 'Retrieve metadata of a file or folder in Dropbox', 1753 parameters: { 1754 type: 'params', 1755 required: ['path'], 1756 properties: { 1757 path: { 1758 type: 'string', 1759 description: 'Path to the file or folder in Dropbox', 1760 }, 1761 }, 1762 }, 1763 output: { 1764 encoding: 'application/json', 1765 schema: { 1766 type: 'ref', 1767 ref: 'lex:app.rocksky.dropbox.defs#fileView', 1768 }, 1769 }, 1770 }, 1771 }, 1772 }, 1773 AppRockskyDropboxGetTemporaryLink: { 1774 lexicon: 1, 1775 id: 'app.rocksky.dropbox.getTemporaryLink', 1776 defs: { 1777 main: { 1778 type: 'query', 1779 description: 'Retrieve a temporary link to access a file in Dropbox', 1780 parameters: { 1781 type: 'params', 1782 required: ['path'], 1783 properties: { 1784 path: { 1785 type: 'string', 1786 description: 'Path to the file in Dropbox', 1787 }, 1788 }, 1789 }, 1790 output: { 1791 encoding: 'application/json', 1792 schema: { 1793 type: 'ref', 1794 ref: 'lex:app.rocksky.dropbox.defs#temporaryLinkView', 1795 }, 1796 }, 1797 }, 1798 }, 1799 }, 1800 AppRockskyFeedDefs: { 1801 lexicon: 1, 1802 id: 'app.rocksky.feed.defs', 1803 defs: { 1804 searchResultsView: { 1805 type: 'object', 1806 properties: { 1807 hits: { 1808 type: 'array', 1809 items: { 1810 type: 'union', 1811 refs: [ 1812 'lex:app.rocksky.song.defs#songViewBasic', 1813 'lex:app.rocksky.album.defs#albumViewBasic', 1814 'lex:app.rocksky.artist.defs#artistViewBasic', 1815 'lex:app.rocksky.playlist.defs#playlistViewBasic', 1816 'lex:app.rocksky.actor.defs#profileViewBasic', 1817 ], 1818 }, 1819 }, 1820 processingTimeMs: { 1821 type: 'integer', 1822 }, 1823 limit: { 1824 type: 'integer', 1825 }, 1826 offset: { 1827 type: 'integer', 1828 }, 1829 estimatedTotalHits: { 1830 type: 'integer', 1831 }, 1832 }, 1833 }, 1834 nowPlayingView: { 1835 type: 'object', 1836 properties: { 1837 album: { 1838 type: 'string', 1839 }, 1840 albumArt: { 1841 type: 'string', 1842 format: 'uri', 1843 }, 1844 albumArtist: { 1845 type: 'string', 1846 }, 1847 albumUri: { 1848 type: 'string', 1849 format: 'at-uri', 1850 }, 1851 artist: { 1852 type: 'string', 1853 }, 1854 artistUri: { 1855 type: 'string', 1856 format: 'at-uri', 1857 }, 1858 avatar: { 1859 type: 'string', 1860 format: 'uri', 1861 }, 1862 createdAt: { 1863 type: 'string', 1864 }, 1865 did: { 1866 type: 'string', 1867 format: 'at-identifier', 1868 }, 1869 handle: { 1870 type: 'string', 1871 }, 1872 id: { 1873 type: 'string', 1874 }, 1875 title: { 1876 type: 'string', 1877 }, 1878 trackId: { 1879 type: 'string', 1880 }, 1881 trackUri: { 1882 type: 'string', 1883 format: 'at-uri', 1884 }, 1885 uri: { 1886 type: 'string', 1887 format: 'at-uri', 1888 }, 1889 }, 1890 }, 1891 nowPlayingsView: { 1892 type: 'object', 1893 properties: { 1894 nowPlayings: { 1895 type: 'array', 1896 items: { 1897 type: 'ref', 1898 ref: 'lex:app.rocksky.feed.defs#nowPlayingView', 1899 }, 1900 }, 1901 }, 1902 }, 1903 feedGeneratorsView: { 1904 type: 'object', 1905 properties: { 1906 feeds: { 1907 type: 'array', 1908 items: { 1909 type: 'ref', 1910 ref: 'lex:app.rocksky.feed.defs#feedGeneratorView', 1911 }, 1912 }, 1913 }, 1914 }, 1915 feedGeneratorView: { 1916 type: 'object', 1917 properties: { 1918 id: { 1919 type: 'string', 1920 }, 1921 name: { 1922 type: 'string', 1923 }, 1924 description: { 1925 type: 'string', 1926 }, 1927 uri: { 1928 type: 'string', 1929 format: 'at-uri', 1930 }, 1931 avatar: { 1932 type: 'string', 1933 format: 'uri', 1934 }, 1935 creator: { 1936 type: 'ref', 1937 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 1938 }, 1939 }, 1940 }, 1941 feedUriView: { 1942 type: 'object', 1943 properties: { 1944 uri: { 1945 type: 'string', 1946 description: 'The feed URI.', 1947 format: 'at-uri', 1948 }, 1949 }, 1950 }, 1951 feedItemView: { 1952 type: 'object', 1953 properties: { 1954 scrobble: { 1955 type: 'ref', 1956 ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 1957 }, 1958 }, 1959 }, 1960 feedView: { 1961 type: 'object', 1962 properties: { 1963 feed: { 1964 type: 'array', 1965 items: { 1966 type: 'ref', 1967 ref: 'lex:app.rocksky.feed.defs#feedItemView', 1968 }, 1969 }, 1970 cursor: { 1971 type: 'string', 1972 description: 'The pagination cursor for the next set of results.', 1973 }, 1974 }, 1975 }, 1976 }, 1977 }, 1978 AppRockskyFeedDescribeFeedGenerator: { 1979 lexicon: 1, 1980 id: 'app.rocksky.feed.describeFeedGenerator', 1981 defs: { 1982 main: { 1983 type: 'query', 1984 description: 'Get information about a feed generator', 1985 parameters: { 1986 type: 'params', 1987 properties: {}, 1988 }, 1989 output: { 1990 encoding: 'application/json', 1991 schema: { 1992 type: 'object', 1993 properties: { 1994 did: { 1995 type: 'string', 1996 description: 'The DID of the feed generator.', 1997 format: 'at-identifier', 1998 }, 1999 feeds: { 2000 type: 'array', 2001 description: 2002 'List of feed URIs generated by this feed generator.', 2003 items: { 2004 type: 'ref', 2005 ref: 'lex:app.rocksky.feed.defs#feedUriView', 2006 }, 2007 }, 2008 }, 2009 }, 2010 }, 2011 }, 2012 }, 2013 }, 2014 AppRockskyFeedGenerator: { 2015 lexicon: 1, 2016 id: 'app.rocksky.feed.generator', 2017 defs: { 2018 main: { 2019 type: 'record', 2020 description: 2021 'Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.', 2022 key: 'tid', 2023 record: { 2024 type: 'object', 2025 required: ['did', 'displayName', 'createdAt'], 2026 properties: { 2027 did: { 2028 type: 'string', 2029 format: 'did', 2030 }, 2031 avatar: { 2032 type: 'blob', 2033 accept: ['image/png', 'image/jpeg'], 2034 maxSize: 1000000, 2035 }, 2036 displayName: { 2037 type: 'string', 2038 maxGraphemes: 24, 2039 maxLength: 240, 2040 }, 2041 description: { 2042 type: 'string', 2043 maxGraphemes: 300, 2044 maxLength: 3000, 2045 }, 2046 createdAt: { 2047 type: 'string', 2048 format: 'datetime', 2049 }, 2050 }, 2051 }, 2052 }, 2053 }, 2054 }, 2055 AppRockskyFeedGetFeed: { 2056 lexicon: 1, 2057 id: 'app.rocksky.feed.getFeed', 2058 defs: { 2059 main: { 2060 type: 'query', 2061 description: 'Get the feed by uri', 2062 parameters: { 2063 type: 'params', 2064 required: ['feed'], 2065 properties: { 2066 feed: { 2067 type: 'string', 2068 description: 'The feed URI.', 2069 format: 'at-uri', 2070 }, 2071 limit: { 2072 type: 'integer', 2073 description: 'The maximum number of scrobbles to return', 2074 minimum: 1, 2075 }, 2076 cursor: { 2077 type: 'string', 2078 description: 'The cursor for pagination', 2079 }, 2080 }, 2081 }, 2082 output: { 2083 encoding: 'application/json', 2084 schema: { 2085 type: 'ref', 2086 ref: 'lex:app.rocksky.feed.defs#feedView', 2087 }, 2088 }, 2089 }, 2090 }, 2091 }, 2092 AppRockskyFeedGetFeedGenerator: { 2093 lexicon: 1, 2094 id: 'app.rocksky.feed.getFeedGenerator', 2095 defs: { 2096 main: { 2097 type: 'query', 2098 description: 'Get information about a feed generator', 2099 parameters: { 2100 type: 'params', 2101 required: ['feed'], 2102 properties: { 2103 feed: { 2104 type: 'string', 2105 description: 'AT-URI of the feed generator record.', 2106 format: 'at-uri', 2107 }, 2108 }, 2109 }, 2110 output: { 2111 encoding: 'application/json', 2112 schema: { 2113 type: 'object', 2114 properties: { 2115 view: { 2116 type: 'ref', 2117 ref: 'lex:app.rocksky.feed.defs#feedGeneratorView', 2118 }, 2119 }, 2120 }, 2121 }, 2122 }, 2123 }, 2124 }, 2125 AppRockskyFeedGetFeedGenerators: { 2126 lexicon: 1, 2127 id: 'app.rocksky.feed.getFeedGenerators', 2128 defs: { 2129 main: { 2130 type: 'query', 2131 description: 'Get all feed generators', 2132 parameters: { 2133 type: 'params', 2134 properties: { 2135 size: { 2136 type: 'integer', 2137 description: 'The maximum number of feed generators to return.', 2138 minimum: 1, 2139 }, 2140 }, 2141 }, 2142 output: { 2143 encoding: 'application/json', 2144 schema: { 2145 type: 'ref', 2146 ref: 'lex:app.rocksky.feed.defs#feedGeneratorsView', 2147 }, 2148 }, 2149 }, 2150 }, 2151 }, 2152 AppRockskyFeedGetFeedSkeleton: { 2153 lexicon: 1, 2154 id: 'app.rocksky.feed.getFeedSkeleton', 2155 defs: { 2156 main: { 2157 type: 'query', 2158 description: 'Get the feed by uri', 2159 parameters: { 2160 type: 'params', 2161 required: ['feed'], 2162 properties: { 2163 feed: { 2164 type: 'string', 2165 description: 'The feed URI.', 2166 format: 'at-uri', 2167 }, 2168 limit: { 2169 type: 'integer', 2170 description: 'The maximum number of scrobbles to return', 2171 minimum: 1, 2172 }, 2173 offset: { 2174 type: 'integer', 2175 description: 'The offset for pagination', 2176 minimum: 0, 2177 }, 2178 cursor: { 2179 type: 'string', 2180 description: 'The pagination cursor.', 2181 }, 2182 }, 2183 }, 2184 output: { 2185 encoding: 'application/json', 2186 schema: { 2187 type: 'object', 2188 properties: { 2189 scrobbles: { 2190 type: 'array', 2191 items: { 2192 type: 'ref', 2193 ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 2194 }, 2195 }, 2196 cursor: { 2197 type: 'string', 2198 description: 2199 'The pagination cursor for the next set of results.', 2200 }, 2201 }, 2202 }, 2203 }, 2204 }, 2205 }, 2206 }, 2207 AppRockskyFeedGetNowPlayings: { 2208 lexicon: 1, 2209 id: 'app.rocksky.feed.getNowPlayings', 2210 defs: { 2211 main: { 2212 type: 'query', 2213 description: 'Get all currently playing tracks by users', 2214 parameters: { 2215 type: 'params', 2216 properties: { 2217 size: { 2218 type: 'integer', 2219 description: 2220 'The maximum number of now playing tracks to return.', 2221 minimum: 1, 2222 }, 2223 }, 2224 }, 2225 output: { 2226 encoding: 'application/json', 2227 schema: { 2228 type: 'ref', 2229 ref: 'lex:app.rocksky.feed.defs#nowPlayingsView', 2230 }, 2231 }, 2232 }, 2233 }, 2234 }, 2235 AppRockskyFeedSearch: { 2236 lexicon: 1, 2237 id: 'app.rocksky.feed.search', 2238 defs: { 2239 main: { 2240 type: 'query', 2241 description: 'Search for content in the feed', 2242 parameters: { 2243 type: 'params', 2244 required: ['query'], 2245 properties: { 2246 query: { 2247 type: 'string', 2248 description: 'The search query string', 2249 }, 2250 }, 2251 }, 2252 output: { 2253 encoding: 'application/json', 2254 schema: { 2255 type: 'ref', 2256 ref: 'lex:app.rocksky.feed.defs#searchResultsView', 2257 }, 2258 }, 2259 }, 2260 }, 2261 }, 2262 AppRockskyGoogledriveDefs: { 2263 lexicon: 1, 2264 id: 'app.rocksky.googledrive.defs', 2265 defs: { 2266 fileView: { 2267 type: 'object', 2268 properties: { 2269 id: { 2270 type: 'string', 2271 description: 'The unique identifier of the file.', 2272 }, 2273 }, 2274 }, 2275 fileListView: { 2276 type: 'object', 2277 properties: { 2278 files: { 2279 type: 'array', 2280 items: { 2281 type: 'ref', 2282 ref: 'lex:app.rocksky.googledrive.defs#fileView', 2283 }, 2284 }, 2285 }, 2286 }, 2287 }, 2288 }, 2289 AppRockskyGoogledriveDownloadFile: { 2290 lexicon: 1, 2291 id: 'app.rocksky.googledrive.downloadFile', 2292 defs: { 2293 main: { 2294 type: 'query', 2295 description: 2296 'Download a file from Google Drive by its unique identifier', 2297 parameters: { 2298 type: 'params', 2299 required: ['fileId'], 2300 properties: { 2301 fileId: { 2302 type: 'string', 2303 description: 'The unique identifier of the file to download', 2304 }, 2305 }, 2306 }, 2307 output: { 2308 encoding: 'application/octet-stream', 2309 }, 2310 }, 2311 }, 2312 }, 2313 AppRockskyGoogledriveGetFile: { 2314 lexicon: 1, 2315 id: 'app.rocksky.googledrive.getFile', 2316 defs: { 2317 main: { 2318 type: 'query', 2319 description: 'Get a file from Google Drive by its unique identifier', 2320 parameters: { 2321 type: 'params', 2322 required: ['fileId'], 2323 properties: { 2324 fileId: { 2325 type: 'string', 2326 description: 'The unique identifier of the file to retrieve', 2327 }, 2328 }, 2329 }, 2330 output: { 2331 encoding: 'application/json', 2332 schema: { 2333 type: 'ref', 2334 ref: 'lex:app.rocksky.googledrive.defs#fileView', 2335 }, 2336 }, 2337 }, 2338 }, 2339 }, 2340 AppRockskyGoogledriveGetFiles: { 2341 lexicon: 1, 2342 id: 'app.rocksky.googledrive.getFiles', 2343 defs: { 2344 main: { 2345 type: 'query', 2346 description: 'Get a list of files from Google Drive', 2347 parameters: { 2348 type: 'params', 2349 properties: { 2350 at: { 2351 type: 'string', 2352 description: 'Path to the Google Drive folder or root directory', 2353 }, 2354 }, 2355 }, 2356 output: { 2357 encoding: 'application/json', 2358 schema: { 2359 type: 'ref', 2360 ref: 'lex:app.rocksky.googledrive.defs#fileListView', 2361 }, 2362 }, 2363 }, 2364 }, 2365 }, 2366 AppRockskyGraphDefs: { 2367 lexicon: 1, 2368 id: 'app.rocksky.graph.defs', 2369 defs: { 2370 notFoundActor: { 2371 type: 'object', 2372 description: 'indicates that a handle or DID could not be resolved', 2373 required: ['actor', 'notFound'], 2374 properties: { 2375 actor: { 2376 type: 'string', 2377 format: 'at-identifier', 2378 }, 2379 notFound: { 2380 type: 'boolean', 2381 }, 2382 }, 2383 }, 2384 relationship: { 2385 type: 'object', 2386 required: ['did'], 2387 properties: { 2388 did: { 2389 type: 'string', 2390 format: 'did', 2391 }, 2392 following: { 2393 type: 'string', 2394 description: 2395 'if the actor follows this DID, this is the AT-URI of the follow record', 2396 format: 'at-uri', 2397 }, 2398 followedBy: { 2399 type: 'string', 2400 description: 2401 'if the actor is followed by this DID, contains the AT-URI of the follow record', 2402 format: 'at-uri', 2403 }, 2404 }, 2405 }, 2406 }, 2407 }, 2408 AppRockskyGraphFollow: { 2409 lexicon: 1, 2410 id: 'app.rocksky.graph.follow', 2411 defs: { 2412 main: { 2413 type: 'record', 2414 description: 2415 "Record declaring a social 'follow' relationship of another account.", 2416 key: 'tid', 2417 record: { 2418 type: 'object', 2419 required: ['createdAt', 'subject'], 2420 properties: { 2421 createdAt: { 2422 type: 'string', 2423 format: 'datetime', 2424 }, 2425 subject: { 2426 type: 'string', 2427 format: 'did', 2428 }, 2429 via: { 2430 type: 'ref', 2431 ref: 'lex:com.atproto.repo.strongRef', 2432 }, 2433 }, 2434 }, 2435 }, 2436 }, 2437 }, 2438 AppRockskyGraphFollowAccount: { 2439 lexicon: 1, 2440 id: 'app.rocksky.graph.followAccount', 2441 defs: { 2442 main: { 2443 type: 'procedure', 2444 description: 2445 "Creates a 'follow' relationship from the authenticated account to a specified account.", 2446 parameters: { 2447 type: 'params', 2448 required: ['account'], 2449 properties: { 2450 account: { 2451 type: 'string', 2452 format: 'at-identifier', 2453 }, 2454 }, 2455 }, 2456 output: { 2457 encoding: 'application/json', 2458 schema: { 2459 type: 'object', 2460 required: ['subject', 'followers'], 2461 properties: { 2462 subject: { 2463 type: 'ref', 2464 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2465 }, 2466 followers: { 2467 type: 'array', 2468 items: { 2469 type: 'ref', 2470 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2471 }, 2472 }, 2473 cursor: { 2474 type: 'string', 2475 description: 2476 'A cursor value to pass to subsequent calls to get the next page of results.', 2477 }, 2478 }, 2479 }, 2480 }, 2481 }, 2482 }, 2483 }, 2484 AppRockskyGraphGetFollowers: { 2485 lexicon: 1, 2486 id: 'app.rocksky.graph.getFollowers', 2487 defs: { 2488 main: { 2489 type: 'query', 2490 description: 2491 'Enumerates accounts which follow a specified account (actor).', 2492 parameters: { 2493 type: 'params', 2494 required: ['actor'], 2495 properties: { 2496 actor: { 2497 type: 'string', 2498 format: 'at-identifier', 2499 }, 2500 limit: { 2501 type: 'integer', 2502 maximum: 100, 2503 minimum: 1, 2504 default: 50, 2505 }, 2506 dids: { 2507 type: 'array', 2508 description: 2509 'If provided, filters the followers to only include those with DIDs in this list.', 2510 items: { 2511 type: 'string', 2512 format: 'did', 2513 }, 2514 }, 2515 cursor: { 2516 type: 'string', 2517 }, 2518 }, 2519 }, 2520 output: { 2521 encoding: 'application/json', 2522 schema: { 2523 type: 'object', 2524 required: ['subject', 'followers'], 2525 properties: { 2526 subject: { 2527 type: 'ref', 2528 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2529 }, 2530 followers: { 2531 type: 'array', 2532 items: { 2533 type: 'ref', 2534 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2535 }, 2536 }, 2537 cursor: { 2538 type: 'string', 2539 description: 2540 'A cursor value to pass to subsequent calls to get the next page of results.', 2541 }, 2542 count: { 2543 type: 'integer', 2544 description: 'The total number of followers.', 2545 }, 2546 }, 2547 }, 2548 }, 2549 }, 2550 }, 2551 }, 2552 AppRockskyGraphGetFollows: { 2553 lexicon: 1, 2554 id: 'app.rocksky.graph.getFollows', 2555 defs: { 2556 main: { 2557 type: 'query', 2558 description: 2559 'Enumerates accounts which a specified account (actor) follows.', 2560 parameters: { 2561 type: 'params', 2562 required: ['actor'], 2563 properties: { 2564 actor: { 2565 type: 'string', 2566 format: 'at-identifier', 2567 }, 2568 limit: { 2569 type: 'integer', 2570 maximum: 100, 2571 minimum: 1, 2572 default: 50, 2573 }, 2574 dids: { 2575 type: 'array', 2576 description: 2577 'If provided, filters the follows to only include those with DIDs in this list.', 2578 items: { 2579 type: 'string', 2580 format: 'did', 2581 }, 2582 }, 2583 cursor: { 2584 type: 'string', 2585 }, 2586 }, 2587 }, 2588 output: { 2589 encoding: 'application/json', 2590 schema: { 2591 type: 'object', 2592 required: ['subject', 'follows'], 2593 properties: { 2594 subject: { 2595 type: 'ref', 2596 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2597 }, 2598 follows: { 2599 type: 'array', 2600 items: { 2601 type: 'ref', 2602 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2603 }, 2604 }, 2605 cursor: { 2606 type: 'string', 2607 description: 2608 'A cursor value to pass to subsequent calls to get the next page of results.', 2609 }, 2610 count: { 2611 type: 'integer', 2612 description: 'The total number of follows.', 2613 }, 2614 }, 2615 }, 2616 }, 2617 }, 2618 }, 2619 }, 2620 AppRockskyGraphGetKnownFollowers: { 2621 lexicon: 1, 2622 id: 'app.rocksky.graph.getKnownFollowers', 2623 defs: { 2624 main: { 2625 type: 'query', 2626 description: 2627 'Enumerates accounts which follow a specified account (actor) and are followed by the viewer.', 2628 parameters: { 2629 type: 'params', 2630 required: ['actor'], 2631 properties: { 2632 actor: { 2633 type: 'string', 2634 format: 'at-identifier', 2635 }, 2636 limit: { 2637 type: 'integer', 2638 maximum: 100, 2639 minimum: 1, 2640 default: 50, 2641 }, 2642 cursor: { 2643 type: 'string', 2644 }, 2645 }, 2646 }, 2647 output: { 2648 encoding: 'application/json', 2649 schema: { 2650 type: 'object', 2651 required: ['subject', 'followers'], 2652 properties: { 2653 subject: { 2654 type: 'ref', 2655 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2656 }, 2657 followers: { 2658 type: 'array', 2659 items: { 2660 type: 'ref', 2661 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2662 }, 2663 }, 2664 cursor: { 2665 type: 'string', 2666 description: 2667 'A cursor value to pass to subsequent calls to get the next page of results.', 2668 }, 2669 }, 2670 }, 2671 }, 2672 }, 2673 }, 2674 }, 2675 AppRockskyGraphUnfollowAccount: { 2676 lexicon: 1, 2677 id: 'app.rocksky.graph.unfollowAccount', 2678 defs: { 2679 main: { 2680 type: 'procedure', 2681 description: 2682 "Removes a 'follow' relationship from the authenticated account to a specified account.", 2683 parameters: { 2684 type: 'params', 2685 required: ['account'], 2686 properties: { 2687 account: { 2688 type: 'string', 2689 format: 'at-identifier', 2690 }, 2691 }, 2692 }, 2693 output: { 2694 encoding: 'application/json', 2695 schema: { 2696 type: 'object', 2697 required: ['subject', 'followers'], 2698 properties: { 2699 subject: { 2700 type: 'ref', 2701 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2702 }, 2703 followers: { 2704 type: 'array', 2705 items: { 2706 type: 'ref', 2707 ref: 'lex:app.rocksky.actor.defs#profileViewBasic', 2708 }, 2709 }, 2710 cursor: { 2711 type: 'string', 2712 description: 2713 'A cursor value to pass to subsequent calls to get the next page of results.', 2714 }, 2715 }, 2716 }, 2717 }, 2718 }, 2719 }, 2720 }, 2721 AppRockskyLikeDislikeShout: { 2722 lexicon: 1, 2723 id: 'app.rocksky.like.dislikeShout', 2724 defs: { 2725 main: { 2726 type: 'procedure', 2727 description: 'Dislike a shout', 2728 input: { 2729 encoding: 'application/json', 2730 schema: { 2731 type: 'object', 2732 properties: { 2733 uri: { 2734 type: 'string', 2735 description: 'The unique identifier of the shout to dislike', 2736 format: 'at-uri', 2737 }, 2738 }, 2739 }, 2740 }, 2741 output: { 2742 encoding: 'application/json', 2743 schema: { 2744 type: 'ref', 2745 ref: 'lex:app.rocksky.shout.defs#shoutView', 2746 }, 2747 }, 2748 }, 2749 }, 2750 }, 2751 AppRockskyLikeDislikeSong: { 2752 lexicon: 1, 2753 id: 'app.rocksky.like.dislikeSong', 2754 defs: { 2755 main: { 2756 type: 'procedure', 2757 description: 'Dislike a song', 2758 input: { 2759 encoding: 'application/json', 2760 schema: { 2761 type: 'object', 2762 properties: { 2763 uri: { 2764 type: 'string', 2765 description: 'The unique identifier of the song to dislike', 2766 format: 'at-uri', 2767 }, 2768 }, 2769 }, 2770 }, 2771 output: { 2772 encoding: 'application/json', 2773 schema: { 2774 type: 'ref', 2775 ref: 'lex:app.rocksky.song.defs#songViewDetailed', 2776 }, 2777 }, 2778 }, 2779 }, 2780 }, 2781 AppRockskyLike: { 2782 lexicon: 1, 2783 id: 'app.rocksky.like', 2784 defs: { 2785 main: { 2786 type: 'record', 2787 description: 'A declaration of a like.', 2788 key: 'tid', 2789 record: { 2790 type: 'object', 2791 required: ['createdAt', 'subject'], 2792 properties: { 2793 createdAt: { 2794 type: 'string', 2795 description: 'The date when the like was created.', 2796 format: 'datetime', 2797 }, 2798 subject: { 2799 type: 'ref', 2800 ref: 'lex:com.atproto.repo.strongRef', 2801 }, 2802 }, 2803 }, 2804 }, 2805 }, 2806 }, 2807 AppRockskyLikeLikeShout: { 2808 lexicon: 1, 2809 id: 'app.rocksky.like.likeShout', 2810 defs: { 2811 main: { 2812 type: 'procedure', 2813 description: 'Like a shout', 2814 input: { 2815 encoding: 'application/json', 2816 schema: { 2817 type: 'object', 2818 properties: { 2819 uri: { 2820 type: 'string', 2821 description: 'The unique identifier of the shout to like', 2822 format: 'at-uri', 2823 }, 2824 }, 2825 }, 2826 }, 2827 output: { 2828 encoding: 'application/json', 2829 schema: { 2830 type: 'ref', 2831 ref: 'lex:app.rocksky.shout.defs#shoutView', 2832 }, 2833 }, 2834 }, 2835 }, 2836 }, 2837 AppRockskyLikeLikeSong: { 2838 lexicon: 1, 2839 id: 'app.rocksky.like.likeSong', 2840 defs: { 2841 main: { 2842 type: 'procedure', 2843 description: 'Like a song', 2844 input: { 2845 encoding: 'application/json', 2846 schema: { 2847 type: 'object', 2848 properties: { 2849 uri: { 2850 type: 'string', 2851 description: 'The unique identifier of the song to like', 2852 format: 'at-uri', 2853 }, 2854 }, 2855 }, 2856 }, 2857 output: { 2858 encoding: 'application/json', 2859 schema: { 2860 type: 'ref', 2861 ref: 'lex:app.rocksky.song.defs#songViewDetailed', 2862 }, 2863 }, 2864 }, 2865 }, 2866 }, 2867 AppRockskyPlayerAddDirectoryToQueue: { 2868 lexicon: 1, 2869 id: 'app.rocksky.player.addDirectoryToQueue', 2870 defs: { 2871 main: { 2872 type: 'procedure', 2873 description: "Add directory to the player's queue", 2874 parameters: { 2875 type: 'params', 2876 required: ['directory'], 2877 properties: { 2878 playerId: { 2879 type: 'string', 2880 }, 2881 directory: { 2882 type: 'string', 2883 description: 'The directory to add to the queue', 2884 }, 2885 position: { 2886 type: 'integer', 2887 description: 2888 'Position in the queue to insert the directory at, defaults to the end if not specified', 2889 }, 2890 shuffle: { 2891 type: 'boolean', 2892 description: 2893 'Whether to shuffle the added directory in the queue', 2894 }, 2895 }, 2896 }, 2897 }, 2898 }, 2899 }, 2900 AppRockskyPlayerAddItemsToQueue: { 2901 lexicon: 1, 2902 id: 'app.rocksky.player.addItemsToQueue', 2903 defs: { 2904 main: { 2905 type: 'procedure', 2906 description: "Add items to the player's queue", 2907 parameters: { 2908 type: 'params', 2909 required: ['items'], 2910 properties: { 2911 playerId: { 2912 type: 'string', 2913 }, 2914 items: { 2915 type: 'array', 2916 items: { 2917 type: 'string', 2918 description: 'List of file identifiers to add to the queue', 2919 }, 2920 }, 2921 position: { 2922 type: 'integer', 2923 description: 2924 'Position in the queue to insert the items at, defaults to the end if not specified', 2925 }, 2926 shuffle: { 2927 type: 'boolean', 2928 description: 'Whether to shuffle the added items in the queue', 2929 }, 2930 }, 2931 }, 2932 }, 2933 }, 2934 }, 2935 AppRockskyPlayerDefs: { 2936 lexicon: 1, 2937 id: 'app.rocksky.player.defs', 2938 defs: { 2939 currentlyPlayingViewDetailed: { 2940 type: 'object', 2941 properties: { 2942 title: { 2943 type: 'string', 2944 description: 'The title of the currently playing track', 2945 }, 2946 }, 2947 }, 2948 playbackQueueViewDetailed: { 2949 type: 'object', 2950 properties: { 2951 tracks: { 2952 type: 'array', 2953 items: { 2954 type: 'ref', 2955 ref: 'lex:app.rocksky.song.defs.songViewBasic', 2956 }, 2957 }, 2958 }, 2959 }, 2960 }, 2961 }, 2962 AppRockskyPlayerGetCurrentlyPlaying: { 2963 lexicon: 1, 2964 id: 'app.rocksky.player.getCurrentlyPlaying', 2965 defs: { 2966 main: { 2967 type: 'query', 2968 description: 'Get the currently playing track', 2969 parameters: { 2970 type: 'params', 2971 properties: { 2972 playerId: { 2973 type: 'string', 2974 }, 2975 actor: { 2976 type: 'string', 2977 description: 2978 'Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user.', 2979 format: 'at-identifier', 2980 }, 2981 }, 2982 }, 2983 output: { 2984 encoding: 'application/json', 2985 schema: { 2986 type: 'ref', 2987 ref: 'lex:app.rocksky.player.defs#currentlyPlayingViewDetailed', 2988 }, 2989 }, 2990 }, 2991 }, 2992 }, 2993 AppRockskyPlayerGetPlaybackQueue: { 2994 lexicon: 1, 2995 id: 'app.rocksky.player.getPlaybackQueue', 2996 defs: { 2997 main: { 2998 type: 'query', 2999 description: 'Retrieve the current playback queue', 3000 parameters: { 3001 type: 'params', 3002 properties: { 3003 playerId: { 3004 type: 'string', 3005 }, 3006 }, 3007 }, 3008 output: { 3009 encoding: 'application/json', 3010 schema: { 3011 type: 'ref', 3012 ref: 'lex:app.rocksky.player.defs#playbackQueueViewDetailed', 3013 }, 3014 }, 3015 }, 3016 }, 3017 }, 3018 AppRockskyPlayerNext: { 3019 lexicon: 1, 3020 id: 'app.rocksky.player.next', 3021 defs: { 3022 main: { 3023 type: 'procedure', 3024 description: 'Play the next track in the queue', 3025 parameters: { 3026 type: 'params', 3027 properties: { 3028 playerId: { 3029 type: 'string', 3030 }, 3031 }, 3032 }, 3033 }, 3034 }, 3035 }, 3036 AppRockskyPlayerPause: { 3037 lexicon: 1, 3038 id: 'app.rocksky.player.pause', 3039 defs: { 3040 main: { 3041 type: 'procedure', 3042 description: 'Pause the currently playing track', 3043 parameters: { 3044 type: 'params', 3045 properties: { 3046 playerId: { 3047 type: 'string', 3048 }, 3049 }, 3050 }, 3051 }, 3052 }, 3053 }, 3054 AppRockskyPlayerPlay: { 3055 lexicon: 1, 3056 id: 'app.rocksky.player.play', 3057 defs: { 3058 main: { 3059 type: 'procedure', 3060 description: 'Resume playback of the currently paused track', 3061 parameters: { 3062 type: 'params', 3063 properties: { 3064 playerId: { 3065 type: 'string', 3066 }, 3067 }, 3068 }, 3069 }, 3070 }, 3071 }, 3072 AppRockskyPlayerPlayDirectory: { 3073 lexicon: 1, 3074 id: 'app.rocksky.player.playDirectory', 3075 defs: { 3076 main: { 3077 type: 'procedure', 3078 description: 'Play all tracks in a directory', 3079 parameters: { 3080 type: 'params', 3081 required: ['directoryId'], 3082 properties: { 3083 playerId: { 3084 type: 'string', 3085 }, 3086 directoryId: { 3087 type: 'string', 3088 }, 3089 shuffle: { 3090 type: 'boolean', 3091 }, 3092 recurse: { 3093 type: 'boolean', 3094 }, 3095 position: { 3096 type: 'integer', 3097 }, 3098 }, 3099 }, 3100 }, 3101 }, 3102 }, 3103 AppRockskyPlayerPlayFile: { 3104 lexicon: 1, 3105 id: 'app.rocksky.player.playFile', 3106 defs: { 3107 main: { 3108 type: 'procedure', 3109 description: 'Play a specific audio file', 3110 parameters: { 3111 type: 'params', 3112 required: ['fileId'], 3113 properties: { 3114 playerId: { 3115 type: 'string', 3116 }, 3117 fileId: { 3118 type: 'string', 3119 }, 3120 }, 3121 }, 3122 }, 3123 }, 3124 }, 3125 AppRockskyPlayerPrevious: { 3126 lexicon: 1, 3127 id: 'app.rocksky.player.previous', 3128 defs: { 3129 main: { 3130 type: 'procedure', 3131 description: 'Play the previous track in the queue', 3132 parameters: { 3133 type: 'params', 3134 properties: { 3135 playerId: { 3136 type: 'string', 3137 }, 3138 }, 3139 }, 3140 }, 3141 }, 3142 }, 3143 AppRockskyPlayerSeek: { 3144 lexicon: 1, 3145 id: 'app.rocksky.player.seek', 3146 defs: { 3147 main: { 3148 type: 'procedure', 3149 description: 3150 'Seek to a specific position in the currently playing track', 3151 parameters: { 3152 type: 'params', 3153 required: ['position'], 3154 properties: { 3155 playerId: { 3156 type: 'string', 3157 }, 3158 position: { 3159 type: 'integer', 3160 description: 'The position in seconds to seek to', 3161 }, 3162 }, 3163 }, 3164 }, 3165 }, 3166 }, 3167 AppRockskyPlaylistCreatePlaylist: { 3168 lexicon: 1, 3169 id: 'app.rocksky.playlist.createPlaylist', 3170 defs: { 3171 main: { 3172 type: 'procedure', 3173 description: 'Create a new playlist', 3174 parameters: { 3175 type: 'params', 3176 required: ['name'], 3177 properties: { 3178 name: { 3179 type: 'string', 3180 description: 'The name of the playlist', 3181 }, 3182 description: { 3183 type: 'string', 3184 description: 'A brief description of the playlist', 3185 }, 3186 }, 3187 }, 3188 }, 3189 }, 3190 }, 3191 AppRockskyPlaylistDefs: { 3192 lexicon: 1, 3193 id: 'app.rocksky.playlist.defs', 3194 defs: { 3195 playlistViewDetailed: { 3196 type: 'object', 3197 description: 3198 'Detailed view of a playlist, including its tracks and metadata', 3199 properties: { 3200 id: { 3201 type: 'string', 3202 description: 'The unique identifier of the playlist.', 3203 }, 3204 title: { 3205 type: 'string', 3206 description: 'The title of the playlist.', 3207 }, 3208 uri: { 3209 type: 'string', 3210 description: 'The URI of the playlist.', 3211 format: 'at-uri', 3212 }, 3213 curatorDid: { 3214 type: 'string', 3215 description: 'The DID of the curator of the playlist.', 3216 format: 'at-identifier', 3217 }, 3218 curatorHandle: { 3219 type: 'string', 3220 description: 'The handle of the curator of the playlist.', 3221 format: 'at-identifier', 3222 }, 3223 curatorName: { 3224 type: 'string', 3225 description: 'The name of the curator of the playlist.', 3226 }, 3227 curatorAvatarUrl: { 3228 type: 'string', 3229 description: 'The URL of the avatar image of the curator.', 3230 format: 'uri', 3231 }, 3232 description: { 3233 type: 'string', 3234 description: 'A description of the playlist.', 3235 }, 3236 coverImageUrl: { 3237 type: 'string', 3238 description: 'The URL of the cover image for the playlist.', 3239 format: 'uri', 3240 }, 3241 createdAt: { 3242 type: 'string', 3243 description: 'The date and time when the playlist was created.', 3244 format: 'datetime', 3245 }, 3246 tracks: { 3247 type: 'array', 3248 description: 'A list of tracks in the playlist.', 3249 items: { 3250 type: 'ref', 3251 ref: 'lex:app.rocksky.song.defs#songViewBasic', 3252 }, 3253 }, 3254 }, 3255 }, 3256 playlistViewBasic: { 3257 type: 'object', 3258 description: 'Basic view of a playlist, including its metadata', 3259 properties: { 3260 id: { 3261 type: 'string', 3262 description: 'The unique identifier of the playlist.', 3263 }, 3264 title: { 3265 type: 'string', 3266 description: 'The title of the playlist.', 3267 }, 3268 uri: { 3269 type: 'string', 3270 description: 'The URI of the playlist.', 3271 format: 'at-uri', 3272 }, 3273 curatorDid: { 3274 type: 'string', 3275 description: 'The DID of the curator of the playlist.', 3276 format: 'at-identifier', 3277 }, 3278 curatorHandle: { 3279 type: 'string', 3280 description: 'The handle of the curator of the playlist.', 3281 format: 'at-identifier', 3282 }, 3283 curatorName: { 3284 type: 'string', 3285 description: 'The name of the curator of the playlist.', 3286 }, 3287 curatorAvatarUrl: { 3288 type: 'string', 3289 description: 'The URL of the avatar image of the curator.', 3290 format: 'uri', 3291 }, 3292 description: { 3293 type: 'string', 3294 description: 'A description of the playlist.', 3295 }, 3296 coverImageUrl: { 3297 type: 'string', 3298 description: 'The URL of the cover image for the playlist.', 3299 format: 'uri', 3300 }, 3301 createdAt: { 3302 type: 'string', 3303 description: 'The date and time when the playlist was created.', 3304 format: 'datetime', 3305 }, 3306 trackCount: { 3307 type: 'integer', 3308 description: 'The number of tracks in the playlist.', 3309 minimum: 0, 3310 }, 3311 }, 3312 }, 3313 }, 3314 }, 3315 AppRockskyPlaylistGetPlaylist: { 3316 lexicon: 1, 3317 id: 'app.rocksky.playlist.getPlaylist', 3318 defs: { 3319 main: { 3320 type: 'query', 3321 description: 'Retrieve a playlist by its ID', 3322 parameters: { 3323 type: 'params', 3324 required: ['uri'], 3325 properties: { 3326 uri: { 3327 type: 'string', 3328 description: 'The URI of the playlist to retrieve.', 3329 format: 'at-uri', 3330 }, 3331 }, 3332 }, 3333 output: { 3334 encoding: 'application/json', 3335 schema: { 3336 type: 'ref', 3337 ref: 'lex:app.rocksky.playlist.defs#playlistViewDetailed', 3338 }, 3339 }, 3340 }, 3341 }, 3342 }, 3343 AppRockskyPlaylistGetPlaylists: { 3344 lexicon: 1, 3345 id: 'app.rocksky.playlist.getPlaylists', 3346 defs: { 3347 main: { 3348 type: 'query', 3349 description: 'Retrieve a list of playlists', 3350 parameters: { 3351 type: 'params', 3352 properties: { 3353 limit: { 3354 type: 'integer', 3355 description: 'The maximum number of playlists to return.', 3356 }, 3357 offset: { 3358 type: 'integer', 3359 description: 3360 'The offset for pagination, used to skip a number of playlists.', 3361 }, 3362 }, 3363 }, 3364 output: { 3365 encoding: 'application/json', 3366 schema: { 3367 type: 'object', 3368 properties: { 3369 playlists: { 3370 type: 'array', 3371 items: { 3372 type: 'ref', 3373 ref: 'lex:app.rocksky.playlist.defs#playlistViewBasic', 3374 }, 3375 }, 3376 }, 3377 }, 3378 }, 3379 }, 3380 }, 3381 }, 3382 AppRockskyPlaylistInsertDirectory: { 3383 lexicon: 1, 3384 id: 'app.rocksky.playlist.insertDirectory', 3385 defs: { 3386 main: { 3387 type: 'procedure', 3388 description: 'Insert a directory into a playlist', 3389 parameters: { 3390 type: 'params', 3391 required: ['uri', 'directory'], 3392 properties: { 3393 uri: { 3394 type: 'string', 3395 description: 'The URI of the playlist to start', 3396 format: 'at-uri', 3397 }, 3398 directory: { 3399 type: 'string', 3400 description: 'The directory (id) to insert into the playlist', 3401 }, 3402 position: { 3403 type: 'integer', 3404 description: 3405 'The position in the playlist to insert the directory at, if not specified, the directory will be appended', 3406 }, 3407 }, 3408 }, 3409 }, 3410 }, 3411 }, 3412 AppRockskyPlaylistInsertFiles: { 3413 lexicon: 1, 3414 id: 'app.rocksky.playlist.insertFiles', 3415 defs: { 3416 main: { 3417 type: 'procedure', 3418 description: 'Insert files into a playlist', 3419 parameters: { 3420 type: 'params', 3421 required: ['uri', 'files'], 3422 properties: { 3423 uri: { 3424 type: 'string', 3425 description: 'The URI of the playlist to start', 3426 format: 'at-uri', 3427 }, 3428 files: { 3429 type: 'array', 3430 items: { 3431 type: 'string', 3432 description: 'List of file (id) to insert into the playlist', 3433 }, 3434 }, 3435 position: { 3436 type: 'integer', 3437 description: 3438 'The position in the playlist to insert the files at, if not specified, files will be appended', 3439 }, 3440 }, 3441 }, 3442 }, 3443 }, 3444 }, 3445 AppRockskyPlaylist: { 3446 lexicon: 1, 3447 id: 'app.rocksky.playlist', 3448 defs: { 3449 main: { 3450 type: 'record', 3451 description: 'A declaration of a playlist.', 3452 key: 'tid', 3453 record: { 3454 type: 'object', 3455 required: ['name', 'createdAt'], 3456 properties: { 3457 name: { 3458 type: 'string', 3459 description: 'The name of the playlist.', 3460 minLength: 1, 3461 maxLength: 512, 3462 }, 3463 description: { 3464 type: 'string', 3465 description: 'The playlist description.', 3466 minLength: 1, 3467 maxLength: 256, 3468 }, 3469 picture: { 3470 type: 'blob', 3471 description: 'The picture of the playlist.', 3472 accept: ['image/png', 'image/jpeg'], 3473 maxSize: 2000000, 3474 }, 3475 tracks: { 3476 type: 'array', 3477 description: 'The tracks in the playlist.', 3478 items: { 3479 type: 'ref', 3480 ref: 'lex:app.rocksky.song#record', 3481 }, 3482 }, 3483 createdAt: { 3484 type: 'string', 3485 description: 'The date the playlist was created.', 3486 format: 'datetime', 3487 }, 3488 spotifyLink: { 3489 type: 'string', 3490 description: 'The Spotify link of the playlist.', 3491 }, 3492 tidalLink: { 3493 type: 'string', 3494 description: 'The Tidal link of the playlist.', 3495 }, 3496 youtubeLink: { 3497 type: 'string', 3498 description: 'The YouTube link of the playlist.', 3499 }, 3500 appleMusicLink: { 3501 type: 'string', 3502 description: 'The Apple Music link of the playlist.', 3503 }, 3504 }, 3505 }, 3506 }, 3507 }, 3508 }, 3509 AppRockskyPlaylistRemovePlaylist: { 3510 lexicon: 1, 3511 id: 'app.rocksky.playlist.removePlaylist', 3512 defs: { 3513 main: { 3514 type: 'procedure', 3515 description: 'Remove a playlist', 3516 parameters: { 3517 type: 'params', 3518 required: ['uri'], 3519 properties: { 3520 uri: { 3521 type: 'string', 3522 description: 'The URI of the playlist to remove', 3523 format: 'at-uri', 3524 }, 3525 }, 3526 }, 3527 }, 3528 }, 3529 }, 3530 AppRockskyPlaylistRemoveTrack: { 3531 lexicon: 1, 3532 id: 'app.rocksky.playlist.removeTrack', 3533 defs: { 3534 main: { 3535 type: 'procedure', 3536 description: 'Remove a track from a playlist', 3537 parameters: { 3538 type: 'params', 3539 required: ['uri', 'position'], 3540 properties: { 3541 uri: { 3542 type: 'string', 3543 description: 'The URI of the playlist to remove the track from', 3544 format: 'at-uri', 3545 }, 3546 position: { 3547 type: 'integer', 3548 description: 3549 'The position of the track to remove in the playlist', 3550 }, 3551 }, 3552 }, 3553 }, 3554 }, 3555 }, 3556 AppRockskyPlaylistStartPlaylist: { 3557 lexicon: 1, 3558 id: 'app.rocksky.playlist.startPlaylist', 3559 defs: { 3560 main: { 3561 type: 'procedure', 3562 description: 'Start a playlist', 3563 parameters: { 3564 type: 'params', 3565 required: ['uri'], 3566 properties: { 3567 uri: { 3568 type: 'string', 3569 description: 'The URI of the playlist to start', 3570 format: 'at-uri', 3571 }, 3572 shuffle: { 3573 type: 'boolean', 3574 description: 'Whether to shuffle the playlist when starting it', 3575 }, 3576 position: { 3577 type: 'integer', 3578 description: 3579 'The position in the playlist to start from, if not specified, starts from the beginning', 3580 }, 3581 }, 3582 }, 3583 }, 3584 }, 3585 }, 3586 AppRockskyRadioDefs: { 3587 lexicon: 1, 3588 id: 'app.rocksky.radio.defs', 3589 defs: { 3590 radioViewBasic: { 3591 type: 'object', 3592 properties: { 3593 id: { 3594 type: 'string', 3595 description: 'The unique identifier of the radio.', 3596 }, 3597 name: { 3598 type: 'string', 3599 description: 'The name of the radio.', 3600 }, 3601 description: { 3602 type: 'string', 3603 description: 'A brief description of the radio.', 3604 }, 3605 createdAt: { 3606 type: 'string', 3607 description: 'The date and time when the radio was created.', 3608 format: 'datetime', 3609 }, 3610 }, 3611 }, 3612 radioViewDetailed: { 3613 type: 'object', 3614 properties: { 3615 id: { 3616 type: 'string', 3617 description: 'The unique identifier of the radio.', 3618 }, 3619 name: { 3620 type: 'string', 3621 description: 'The name of the radio.', 3622 }, 3623 description: { 3624 type: 'string', 3625 description: 'A brief description of the radio.', 3626 }, 3627 website: { 3628 type: 'string', 3629 description: 'The website of the radio.', 3630 format: 'uri', 3631 }, 3632 url: { 3633 type: 'string', 3634 description: 'The streaming URL of the radio.', 3635 format: 'uri', 3636 }, 3637 genre: { 3638 type: 'string', 3639 description: 'The genre of the radio.', 3640 }, 3641 logo: { 3642 type: 'string', 3643 description: 'The logo of the radio station.', 3644 }, 3645 createdAt: { 3646 type: 'string', 3647 description: 'The date and time when the radio was created.', 3648 format: 'datetime', 3649 }, 3650 }, 3651 }, 3652 }, 3653 }, 3654 AppRockskyRadio: { 3655 lexicon: 1, 3656 id: 'app.rocksky.radio', 3657 defs: { 3658 main: { 3659 type: 'record', 3660 description: 'A declaration of a radio station.', 3661 key: 'tid', 3662 record: { 3663 type: 'object', 3664 required: ['name', 'url', 'createdAt'], 3665 properties: { 3666 name: { 3667 type: 'string', 3668 description: 'The name of the radio station.', 3669 minLength: 1, 3670 maxLength: 512, 3671 }, 3672 url: { 3673 type: 'string', 3674 description: 'The URL of the radio station.', 3675 format: 'uri', 3676 }, 3677 description: { 3678 type: 'string', 3679 description: 'A description of the radio station.', 3680 minLength: 1, 3681 maxLength: 1000, 3682 }, 3683 genre: { 3684 type: 'string', 3685 description: 'The genre of the radio station.', 3686 minLength: 1, 3687 maxLength: 256, 3688 }, 3689 logo: { 3690 type: 'blob', 3691 description: 'The logo of the radio station.', 3692 accept: ['image/png', 'image/jpeg'], 3693 maxSize: 2000000, 3694 }, 3695 website: { 3696 type: 'string', 3697 description: 'The website of the radio station.', 3698 format: 'uri', 3699 }, 3700 createdAt: { 3701 type: 'string', 3702 description: 'The date when the radio station was created.', 3703 format: 'datetime', 3704 }, 3705 }, 3706 }, 3707 }, 3708 }, 3709 }, 3710 AppRockskyScrobbleCreateScrobble: { 3711 lexicon: 1, 3712 id: 'app.rocksky.scrobble.createScrobble', 3713 defs: { 3714 main: { 3715 type: 'procedure', 3716 description: 'Create a new scrobble', 3717 input: { 3718 encoding: 'application/json', 3719 schema: { 3720 type: 'object', 3721 required: ['title', 'artist'], 3722 properties: { 3723 title: { 3724 type: 'string', 3725 description: 'The title of the track being scrobbled', 3726 }, 3727 artist: { 3728 type: 'string', 3729 description: 'The artist of the track being scrobbled', 3730 }, 3731 album: { 3732 type: 'string', 3733 description: 'The album of the track being scrobbled', 3734 }, 3735 duration: { 3736 type: 'integer', 3737 description: 'The duration of the track in seconds', 3738 }, 3739 mbId: { 3740 type: 'string', 3741 description: 'The MusicBrainz ID of the track, if available', 3742 }, 3743 albumArt: { 3744 type: 'string', 3745 description: 'The URL of the album art for the track', 3746 format: 'uri', 3747 }, 3748 trackNumber: { 3749 type: 'integer', 3750 description: 'The track number of the track in the album', 3751 }, 3752 releaseDate: { 3753 type: 'string', 3754 description: 3755 'The release date of the track, formatted as YYYY-MM-DD', 3756 }, 3757 year: { 3758 type: 'integer', 3759 description: 'The year the track was released', 3760 }, 3761 discNumber: { 3762 type: 'integer', 3763 description: 3764 'The disc number of the track in the album, if applicable', 3765 }, 3766 lyrics: { 3767 type: 'string', 3768 description: 'The lyrics of the track, if available', 3769 }, 3770 composer: { 3771 type: 'string', 3772 description: 'The composer of the track, if available', 3773 }, 3774 copyrightMessage: { 3775 type: 'string', 3776 description: 3777 'The copyright message for the track, if available', 3778 }, 3779 label: { 3780 type: 'string', 3781 description: 'The record label of the track, if available', 3782 }, 3783 artistPicture: { 3784 type: 'string', 3785 description: "The URL of the artist's picture, if available", 3786 format: 'uri', 3787 }, 3788 spotifyLink: { 3789 type: 'string', 3790 description: 'The Spotify link for the track, if available', 3791 format: 'uri', 3792 }, 3793 lastfmLink: { 3794 type: 'string', 3795 description: 'The Last.fm link for the track, if available', 3796 format: 'uri', 3797 }, 3798 tidalLink: { 3799 type: 'string', 3800 description: 'The Tidal link for the track, if available', 3801 format: 'uri', 3802 }, 3803 appleMusicLink: { 3804 type: 'string', 3805 description: 'The Apple Music link for the track, if available', 3806 format: 'uri', 3807 }, 3808 youtubeLink: { 3809 type: 'string', 3810 description: 'The Youtube link for the track, if available', 3811 format: 'uri', 3812 }, 3813 deezerLink: { 3814 type: 'string', 3815 description: 'The Deezer link for the track, if available', 3816 format: 'uri', 3817 }, 3818 timestamp: { 3819 type: 'integer', 3820 description: 3821 'The timestamp of the scrobble in milliseconds since epoch', 3822 }, 3823 }, 3824 }, 3825 }, 3826 output: { 3827 encoding: 'application/json', 3828 schema: { 3829 type: 'ref', 3830 ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 3831 }, 3832 }, 3833 }, 3834 }, 3835 }, 3836 AppRockskyScrobbleDefs: { 3837 lexicon: 1, 3838 id: 'app.rocksky.scrobble.defs', 3839 defs: { 3840 scrobbleViewBasic: { 3841 type: 'object', 3842 properties: { 3843 id: { 3844 type: 'string', 3845 description: 'The unique identifier of the scrobble.', 3846 }, 3847 user: { 3848 type: 'string', 3849 description: 'The handle of the user who created the scrobble.', 3850 }, 3851 userDisplayName: { 3852 type: 'string', 3853 description: 3854 'The display name of the user who created the scrobble.', 3855 }, 3856 userAvatar: { 3857 type: 'string', 3858 description: 'The avatar URL of the user who created the scrobble.', 3859 format: 'uri', 3860 }, 3861 title: { 3862 type: 'string', 3863 description: 'The title of the scrobble.', 3864 }, 3865 artist: { 3866 type: 'string', 3867 description: 'The artist of the song.', 3868 }, 3869 artistUri: { 3870 type: 'string', 3871 description: 'The URI of the artist.', 3872 format: 'at-uri', 3873 }, 3874 album: { 3875 type: 'string', 3876 description: 'The album of the song.', 3877 }, 3878 albumUri: { 3879 type: 'string', 3880 description: 'The URI of the album.', 3881 format: 'at-uri', 3882 }, 3883 cover: { 3884 type: 'string', 3885 description: 'The album art URL of the song.', 3886 format: 'uri', 3887 }, 3888 date: { 3889 type: 'string', 3890 description: 'The timestamp when the scrobble was created.', 3891 format: 'datetime', 3892 }, 3893 uri: { 3894 type: 'string', 3895 description: 'The URI of the scrobble.', 3896 format: 'uri', 3897 }, 3898 sha256: { 3899 type: 'string', 3900 description: 'The SHA256 hash of the scrobble data.', 3901 }, 3902 liked: { 3903 type: 'boolean', 3904 }, 3905 likesCount: { 3906 type: 'integer', 3907 }, 3908 }, 3909 }, 3910 scrobbleViewDetailed: { 3911 type: 'object', 3912 properties: { 3913 id: { 3914 type: 'string', 3915 description: 'The unique identifier of the scrobble.', 3916 }, 3917 user: { 3918 type: 'string', 3919 description: 'The handle of the user who created the scrobble.', 3920 }, 3921 title: { 3922 type: 'string', 3923 description: 'The title of the scrobble.', 3924 }, 3925 artist: { 3926 type: 'string', 3927 description: 'The artist of the song.', 3928 }, 3929 artistUri: { 3930 type: 'string', 3931 description: 'The URI of the artist.', 3932 format: 'at-uri', 3933 }, 3934 album: { 3935 type: 'string', 3936 description: 'The album of the song.', 3937 }, 3938 albumUri: { 3939 type: 'string', 3940 description: 'The URI of the album.', 3941 format: 'at-uri', 3942 }, 3943 cover: { 3944 type: 'string', 3945 description: 'The album art URL of the song.', 3946 format: 'uri', 3947 }, 3948 date: { 3949 type: 'string', 3950 description: 'The timestamp when the scrobble was created.', 3951 format: 'datetime', 3952 }, 3953 uri: { 3954 type: 'string', 3955 description: 'The URI of the scrobble.', 3956 format: 'uri', 3957 }, 3958 sha256: { 3959 type: 'string', 3960 description: 'The SHA256 hash of the scrobble data.', 3961 }, 3962 listeners: { 3963 type: 'integer', 3964 description: 'The number of listeners', 3965 }, 3966 scrobbles: { 3967 type: 'integer', 3968 description: 'The number of scrobbles for this song', 3969 }, 3970 }, 3971 }, 3972 }, 3973 }, 3974 AppRockskyScrobbleGetScrobble: { 3975 lexicon: 1, 3976 id: 'app.rocksky.scrobble.getScrobble', 3977 defs: { 3978 main: { 3979 type: 'query', 3980 description: 'Get a scrobble by its unique identifier', 3981 parameters: { 3982 type: 'params', 3983 required: ['uri'], 3984 properties: { 3985 uri: { 3986 type: 'string', 3987 description: 'The unique identifier of the scrobble', 3988 format: 'at-uri', 3989 }, 3990 }, 3991 }, 3992 output: { 3993 encoding: 'application/json', 3994 schema: { 3995 type: 'ref', 3996 ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewDetailed', 3997 }, 3998 }, 3999 }, 4000 }, 4001 }, 4002 AppRockskyScrobbleGetScrobbles: { 4003 lexicon: 1, 4004 id: 'app.rocksky.scrobble.getScrobbles', 4005 defs: { 4006 main: { 4007 type: 'query', 4008 description: 'Get scrobbles all scrobbles', 4009 parameters: { 4010 type: 'params', 4011 properties: { 4012 did: { 4013 type: 'string', 4014 description: 'The DID or handle of the actor', 4015 format: 'at-identifier', 4016 }, 4017 following: { 4018 type: 'boolean', 4019 description: 4020 'If true, only return scrobbles from actors the viewer is following.', 4021 }, 4022 limit: { 4023 type: 'integer', 4024 description: 'The maximum number of scrobbles to return', 4025 minimum: 1, 4026 }, 4027 offset: { 4028 type: 'integer', 4029 description: 'The offset for pagination', 4030 minimum: 0, 4031 }, 4032 }, 4033 }, 4034 output: { 4035 encoding: 'application/json', 4036 schema: { 4037 type: 'object', 4038 properties: { 4039 scrobbles: { 4040 type: 'array', 4041 items: { 4042 type: 'ref', 4043 ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 4044 }, 4045 }, 4046 }, 4047 }, 4048 }, 4049 }, 4050 }, 4051 }, 4052 AppRockskyScrobble: { 4053 lexicon: 1, 4054 id: 'app.rocksky.scrobble', 4055 defs: { 4056 main: { 4057 type: 'record', 4058 description: 'A declaration of a scrobble.', 4059 key: 'tid', 4060 record: { 4061 type: 'object', 4062 required: [ 4063 'title', 4064 'artist', 4065 'album', 4066 'albumArtist', 4067 'duration', 4068 'createdAt', 4069 ], 4070 properties: { 4071 title: { 4072 type: 'string', 4073 description: 'The title of the song.', 4074 minLength: 1, 4075 maxLength: 512, 4076 }, 4077 artist: { 4078 type: 'string', 4079 description: 'The artist of the song.', 4080 minLength: 1, 4081 maxLength: 256, 4082 }, 4083 artists: { 4084 type: 'array', 4085 description: 'The artists of the song with MusicBrainz IDs.', 4086 items: { 4087 type: 'ref', 4088 ref: 'lex:app.rocksky.artist.defs#artistMbid', 4089 }, 4090 }, 4091 albumArtist: { 4092 type: 'string', 4093 description: 'The album artist of the song.', 4094 minLength: 1, 4095 maxLength: 256, 4096 }, 4097 album: { 4098 type: 'string', 4099 description: 'The album of the song.', 4100 minLength: 1, 4101 maxLength: 256, 4102 }, 4103 duration: { 4104 type: 'integer', 4105 description: 'The duration of the song in seconds.', 4106 minimum: 1, 4107 }, 4108 trackNumber: { 4109 type: 'integer', 4110 description: 'The track number of the song in the album.', 4111 minimum: 1, 4112 }, 4113 discNumber: { 4114 type: 'integer', 4115 description: 'The disc number of the song in the album.', 4116 minimum: 1, 4117 }, 4118 releaseDate: { 4119 type: 'string', 4120 description: 'The release date of the song.', 4121 format: 'datetime', 4122 }, 4123 year: { 4124 type: 'integer', 4125 description: 'The year the song was released.', 4126 }, 4127 genre: { 4128 type: 'string', 4129 description: 'The genre of the song.', 4130 maxLength: 256, 4131 }, 4132 tags: { 4133 type: 'array', 4134 description: 'The tags of the song.', 4135 items: { 4136 type: 'string', 4137 minLength: 1, 4138 maxLength: 256, 4139 }, 4140 }, 4141 composer: { 4142 type: 'string', 4143 description: 'The composer of the song.', 4144 maxLength: 256, 4145 }, 4146 lyrics: { 4147 type: 'string', 4148 description: 'The lyrics of the song.', 4149 maxLength: 10000, 4150 }, 4151 copyrightMessage: { 4152 type: 'string', 4153 description: 'The copyright message of the song.', 4154 maxLength: 256, 4155 }, 4156 wiki: { 4157 type: 'string', 4158 description: 'Informations about the song', 4159 maxLength: 10000, 4160 }, 4161 albumArt: { 4162 type: 'blob', 4163 description: 'The album art of the song.', 4164 accept: ['image/png', 'image/jpeg'], 4165 maxSize: 2000000, 4166 }, 4167 albumArtUrl: { 4168 type: 'string', 4169 description: 'The URL of the album art of the song.', 4170 format: 'uri', 4171 }, 4172 youtubeLink: { 4173 type: 'string', 4174 description: 'The YouTube link of the song.', 4175 format: 'uri', 4176 }, 4177 spotifyLink: { 4178 type: 'string', 4179 description: 'The Spotify link of the song.', 4180 format: 'uri', 4181 }, 4182 tidalLink: { 4183 type: 'string', 4184 description: 'The Tidal link of the song.', 4185 format: 'uri', 4186 }, 4187 appleMusicLink: { 4188 type: 'string', 4189 description: 'The Apple Music link of the song.', 4190 format: 'uri', 4191 }, 4192 createdAt: { 4193 type: 'string', 4194 description: 'The date when the song was created.', 4195 format: 'datetime', 4196 }, 4197 mbid: { 4198 type: 'string', 4199 description: 'The MusicBrainz ID of the song.', 4200 }, 4201 label: { 4202 type: 'string', 4203 description: 'The label of the song.', 4204 maxLength: 256, 4205 }, 4206 }, 4207 }, 4208 }, 4209 }, 4210 }, 4211 AppRockskyShoutCreateShout: { 4212 lexicon: 1, 4213 id: 'app.rocksky.shout.createShout', 4214 defs: { 4215 main: { 4216 type: 'procedure', 4217 description: 'Create a new shout', 4218 input: { 4219 encoding: 'application/json', 4220 schema: { 4221 type: 'object', 4222 properties: { 4223 message: { 4224 type: 'string', 4225 description: 'The content of the shout', 4226 minLength: 1, 4227 }, 4228 }, 4229 }, 4230 }, 4231 output: { 4232 encoding: 'application/json', 4233 schema: { 4234 type: 'ref', 4235 ref: 'lex:app.rocksky.shout.defs#shoutView', 4236 }, 4237 }, 4238 }, 4239 }, 4240 }, 4241 AppRockskyShoutDefs: { 4242 lexicon: 1, 4243 id: 'app.rocksky.shout.defs', 4244 defs: { 4245 author: { 4246 type: 'object', 4247 properties: { 4248 id: { 4249 type: 'string', 4250 description: 'The unique identifier of the author.', 4251 }, 4252 did: { 4253 type: 'string', 4254 description: 'The decentralized identifier (DID) of the author.', 4255 format: 'at-identifier', 4256 }, 4257 handle: { 4258 type: 'string', 4259 description: 'The handle of the author.', 4260 format: 'at-identifier', 4261 }, 4262 displayName: { 4263 type: 'string', 4264 description: 'The display name of the author.', 4265 }, 4266 avatar: { 4267 type: 'string', 4268 description: "The URL of the author's avatar image.", 4269 format: 'uri', 4270 }, 4271 }, 4272 }, 4273 shoutView: { 4274 type: 'object', 4275 properties: { 4276 id: { 4277 type: 'string', 4278 description: 'The unique identifier of the shout.', 4279 }, 4280 message: { 4281 type: 'string', 4282 description: 'The content of the shout.', 4283 }, 4284 parent: { 4285 type: 'string', 4286 description: 4287 'The ID of the parent shout if this is a reply, otherwise null.', 4288 }, 4289 createdAt: { 4290 type: 'string', 4291 description: 'The date and time when the shout was created.', 4292 format: 'datetime', 4293 }, 4294 author: { 4295 type: 'ref', 4296 description: 'The author of the shout.', 4297 ref: 'lex:app.rocksky.shout.defs#author', 4298 }, 4299 }, 4300 }, 4301 }, 4302 }, 4303 AppRockskyShoutGetAlbumShouts: { 4304 lexicon: 1, 4305 id: 'app.rocksky.shout.getAlbumShouts', 4306 defs: { 4307 main: { 4308 type: 'query', 4309 description: 'Get shouts for an album', 4310 parameters: { 4311 type: 'params', 4312 required: ['uri'], 4313 properties: { 4314 uri: { 4315 type: 'string', 4316 description: 4317 'The unique identifier of the album to retrieve shouts for', 4318 format: 'at-uri', 4319 }, 4320 limit: { 4321 type: 'integer', 4322 description: 'The maximum number of shouts to return', 4323 minimum: 1, 4324 }, 4325 offset: { 4326 type: 'integer', 4327 description: 4328 'The number of shouts to skip before starting to collect the result set', 4329 minimum: 0, 4330 }, 4331 }, 4332 }, 4333 output: { 4334 encoding: 'application/json', 4335 schema: { 4336 type: 'object', 4337 properties: { 4338 shouts: { 4339 type: 'array', 4340 items: { 4341 type: 'ref', 4342 ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 4343 }, 4344 }, 4345 }, 4346 }, 4347 }, 4348 }, 4349 }, 4350 }, 4351 AppRockskyShoutGetArtistShouts: { 4352 lexicon: 1, 4353 id: 'app.rocksky.shout.getArtistShouts', 4354 defs: { 4355 main: { 4356 type: 'query', 4357 description: 'Get shouts for an artist', 4358 parameters: { 4359 type: 'params', 4360 required: ['uri'], 4361 properties: { 4362 uri: { 4363 type: 'string', 4364 description: 'The URI of the artist to retrieve shouts for', 4365 format: 'at-uri', 4366 }, 4367 limit: { 4368 type: 'integer', 4369 description: 'The maximum number of shouts to return', 4370 minimum: 1, 4371 }, 4372 offset: { 4373 type: 'integer', 4374 description: 4375 'The number of shouts to skip before starting to collect the result set', 4376 minimum: 0, 4377 }, 4378 }, 4379 }, 4380 output: { 4381 encoding: 'application/json', 4382 schema: { 4383 type: 'object', 4384 properties: { 4385 shouts: { 4386 type: 'array', 4387 items: { 4388 type: 'ref', 4389 ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 4390 }, 4391 }, 4392 }, 4393 }, 4394 }, 4395 }, 4396 }, 4397 }, 4398 AppRockskyShoutGetProfileShouts: { 4399 lexicon: 1, 4400 id: 'app.rocksky.shout.getProfileShouts', 4401 defs: { 4402 main: { 4403 type: 'query', 4404 description: "Get the shouts of an actor's profile", 4405 parameters: { 4406 type: 'params', 4407 required: ['did'], 4408 properties: { 4409 did: { 4410 type: 'string', 4411 description: 'The DID or handle of the actor', 4412 format: 'at-identifier', 4413 }, 4414 offset: { 4415 type: 'integer', 4416 description: 'The offset for pagination', 4417 minimum: 0, 4418 }, 4419 limit: { 4420 type: 'integer', 4421 description: 'The maximum number of shouts to return', 4422 minimum: 1, 4423 }, 4424 }, 4425 }, 4426 output: { 4427 encoding: 'application/json', 4428 schema: { 4429 type: 'object', 4430 properties: { 4431 shouts: { 4432 type: 'array', 4433 items: { 4434 type: 'ref', 4435 ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 4436 }, 4437 }, 4438 }, 4439 }, 4440 }, 4441 }, 4442 }, 4443 }, 4444 AppRockskyShoutGetShoutReplies: { 4445 lexicon: 1, 4446 id: 'app.rocksky.shout.getShoutReplies', 4447 defs: { 4448 main: { 4449 type: 'query', 4450 description: 'Get replies to a shout', 4451 parameters: { 4452 type: 'params', 4453 required: ['uri'], 4454 properties: { 4455 uri: { 4456 type: 'string', 4457 description: 'The URI of the shout to retrieve replies for', 4458 format: 'at-uri', 4459 }, 4460 limit: { 4461 type: 'integer', 4462 description: 'The maximum number of shouts to return', 4463 minimum: 1, 4464 }, 4465 offset: { 4466 type: 'integer', 4467 description: 4468 'The number of shouts to skip before starting to collect the result set', 4469 minimum: 0, 4470 }, 4471 }, 4472 }, 4473 output: { 4474 encoding: 'application/json', 4475 schema: { 4476 type: 'object', 4477 properties: { 4478 shouts: { 4479 type: 'array', 4480 items: { 4481 type: 'ref', 4482 ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 4483 }, 4484 }, 4485 }, 4486 }, 4487 }, 4488 }, 4489 }, 4490 }, 4491 AppRockskyShoutGetTrackShouts: { 4492 lexicon: 1, 4493 id: 'app.rocksky.shout.getTrackShouts', 4494 defs: { 4495 main: { 4496 type: 'query', 4497 description: 'Get all shouts for a specific track', 4498 parameters: { 4499 type: 'params', 4500 required: ['uri'], 4501 properties: { 4502 uri: { 4503 type: 'string', 4504 description: 'The URI of the track to retrieve shouts for', 4505 format: 'at-uri', 4506 }, 4507 }, 4508 }, 4509 output: { 4510 encoding: 'application/json', 4511 schema: { 4512 type: 'object', 4513 properties: { 4514 shouts: { 4515 type: 'array', 4516 items: { 4517 type: 'ref', 4518 ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 4519 }, 4520 }, 4521 }, 4522 }, 4523 }, 4524 }, 4525 }, 4526 }, 4527 AppRockskyShoutRemoveShout: { 4528 lexicon: 1, 4529 id: 'app.rocksky.shout.removeShout', 4530 defs: { 4531 main: { 4532 type: 'procedure', 4533 description: 'Remove a shout by its ID', 4534 parameters: { 4535 type: 'params', 4536 required: ['id'], 4537 properties: { 4538 id: { 4539 type: 'string', 4540 description: 'The ID of the shout to be removed', 4541 }, 4542 }, 4543 }, 4544 output: { 4545 encoding: 'application/json', 4546 schema: { 4547 type: 'ref', 4548 ref: 'lex:app.rocksky.shout.defs#shoutView', 4549 }, 4550 }, 4551 }, 4552 }, 4553 }, 4554 AppRockskyShoutReplyShout: { 4555 lexicon: 1, 4556 id: 'app.rocksky.shout.replyShout', 4557 defs: { 4558 main: { 4559 type: 'procedure', 4560 description: 'Reply to a shout', 4561 input: { 4562 encoding: 'application/json', 4563 schema: { 4564 type: 'object', 4565 required: ['shoutId', 'message'], 4566 properties: { 4567 shoutId: { 4568 type: 'string', 4569 description: 'The unique identifier of the shout to reply to', 4570 }, 4571 message: { 4572 type: 'string', 4573 description: 'The content of the reply', 4574 minLength: 1, 4575 }, 4576 }, 4577 }, 4578 }, 4579 output: { 4580 encoding: 'application/json', 4581 schema: { 4582 type: 'ref', 4583 ref: 'lex:app.rocksky.shout.defs#shoutView', 4584 }, 4585 }, 4586 }, 4587 }, 4588 }, 4589 AppRockskyShoutReportShout: { 4590 lexicon: 1, 4591 id: 'app.rocksky.shout.reportShout', 4592 defs: { 4593 main: { 4594 type: 'procedure', 4595 description: 'Report a shout for moderation', 4596 input: { 4597 encoding: 'application/json', 4598 schema: { 4599 type: 'object', 4600 required: ['shoutId'], 4601 properties: { 4602 shoutId: { 4603 type: 'string', 4604 description: 'The unique identifier of the shout to report', 4605 }, 4606 reason: { 4607 type: 'string', 4608 description: 'The reason for reporting the shout', 4609 minLength: 1, 4610 }, 4611 }, 4612 }, 4613 }, 4614 output: { 4615 encoding: 'application/json', 4616 schema: { 4617 type: 'ref', 4618 ref: 'lex:app.rocksky.shout.defs#shoutView', 4619 }, 4620 }, 4621 }, 4622 }, 4623 }, 4624 AppRockskyShout: { 4625 lexicon: 1, 4626 id: 'app.rocksky.shout', 4627 defs: { 4628 main: { 4629 type: 'record', 4630 description: 'A declaration of a shout.', 4631 key: 'tid', 4632 record: { 4633 type: 'object', 4634 required: ['message', 'createdAt', 'subject'], 4635 properties: { 4636 message: { 4637 type: 'string', 4638 description: 'The message of the shout.', 4639 minLength: 1, 4640 maxLength: 1000, 4641 }, 4642 createdAt: { 4643 type: 'string', 4644 description: 'The date when the shout was created.', 4645 format: 'datetime', 4646 }, 4647 parent: { 4648 type: 'ref', 4649 ref: 'lex:com.atproto.repo.strongRef', 4650 }, 4651 subject: { 4652 type: 'ref', 4653 ref: 'lex:com.atproto.repo.strongRef', 4654 }, 4655 }, 4656 }, 4657 }, 4658 }, 4659 }, 4660 AppRockskySongCreateSong: { 4661 lexicon: 1, 4662 id: 'app.rocksky.song.createSong', 4663 defs: { 4664 main: { 4665 type: 'procedure', 4666 description: 'Create a new song', 4667 input: { 4668 encoding: 'application/json', 4669 schema: { 4670 type: 'object', 4671 required: ['title', 'artist', 'album', 'albumArtist'], 4672 properties: { 4673 title: { 4674 type: 'string', 4675 description: 'The title of the song', 4676 }, 4677 artist: { 4678 type: 'string', 4679 description: 'The artist of the song', 4680 }, 4681 albumArtist: { 4682 type: 'string', 4683 description: 4684 'The album artist of the song, if different from the main artist', 4685 }, 4686 album: { 4687 type: 'string', 4688 description: 'The album of the song, if applicable', 4689 }, 4690 duration: { 4691 type: 'integer', 4692 description: 'The duration of the song in seconds', 4693 }, 4694 mbId: { 4695 type: 'string', 4696 description: 'The MusicBrainz ID of the song, if available', 4697 }, 4698 albumArt: { 4699 type: 'string', 4700 description: 'The URL of the album art for the song', 4701 format: 'uri', 4702 }, 4703 trackNumber: { 4704 type: 'integer', 4705 description: 4706 'The track number of the song in the album, if applicable', 4707 }, 4708 releaseDate: { 4709 type: 'string', 4710 description: 4711 'The release date of the song, formatted as YYYY-MM-DD', 4712 }, 4713 year: { 4714 type: 'integer', 4715 description: 'The year the song was released', 4716 }, 4717 discNumber: { 4718 type: 'integer', 4719 description: 4720 'The disc number of the song in the album, if applicable', 4721 }, 4722 lyrics: { 4723 type: 'string', 4724 description: 'The lyrics of the song, if available', 4725 }, 4726 }, 4727 }, 4728 }, 4729 output: { 4730 encoding: 'application/json', 4731 schema: { 4732 type: 'ref', 4733 ref: 'lex:app.rocksky.song.defs#songViewDetailed', 4734 }, 4735 }, 4736 }, 4737 }, 4738 }, 4739 AppRockskySongDefs: { 4740 lexicon: 1, 4741 id: 'app.rocksky.song.defs', 4742 defs: { 4743 songViewBasic: { 4744 type: 'object', 4745 properties: { 4746 id: { 4747 type: 'string', 4748 description: 'The unique identifier of the song.', 4749 }, 4750 title: { 4751 type: 'string', 4752 description: 'The title of the song.', 4753 }, 4754 artist: { 4755 type: 'string', 4756 description: 'The artist of the song.', 4757 }, 4758 albumArtist: { 4759 type: 'string', 4760 description: 'The artist of the album the song belongs to.', 4761 }, 4762 albumArt: { 4763 type: 'string', 4764 description: 'The URL of the album art image.', 4765 format: 'uri', 4766 }, 4767 uri: { 4768 type: 'string', 4769 description: 'The URI of the song.', 4770 format: 'at-uri', 4771 }, 4772 album: { 4773 type: 'string', 4774 description: 'The album of the song.', 4775 }, 4776 duration: { 4777 type: 'integer', 4778 description: 'The duration of the song in milliseconds.', 4779 }, 4780 trackNumber: { 4781 type: 'integer', 4782 description: 'The track number of the song in the album.', 4783 }, 4784 discNumber: { 4785 type: 'integer', 4786 description: 'The disc number of the song in the album.', 4787 }, 4788 playCount: { 4789 type: 'integer', 4790 description: 'The number of times the song has been played.', 4791 minimum: 0, 4792 }, 4793 uniqueListeners: { 4794 type: 'integer', 4795 description: 4796 'The number of unique listeners who have played the song.', 4797 minimum: 0, 4798 }, 4799 albumUri: { 4800 type: 'string', 4801 description: 'The URI of the album the song belongs to.', 4802 format: 'at-uri', 4803 }, 4804 artistUri: { 4805 type: 'string', 4806 description: 'The URI of the artist of the song.', 4807 format: 'at-uri', 4808 }, 4809 sha256: { 4810 type: 'string', 4811 description: 'The SHA256 hash of the song.', 4812 }, 4813 createdAt: { 4814 type: 'string', 4815 description: 'The timestamp when the song was created.', 4816 format: 'datetime', 4817 }, 4818 }, 4819 }, 4820 songViewDetailed: { 4821 type: 'object', 4822 properties: { 4823 id: { 4824 type: 'string', 4825 description: 'The unique identifier of the song.', 4826 }, 4827 title: { 4828 type: 'string', 4829 description: 'The title of the song.', 4830 }, 4831 artist: { 4832 type: 'string', 4833 description: 'The artist of the song.', 4834 }, 4835 albumArtist: { 4836 type: 'string', 4837 description: 'The artist of the album the song belongs to.', 4838 }, 4839 albumArt: { 4840 type: 'string', 4841 description: 'The URL of the album art image.', 4842 format: 'uri', 4843 }, 4844 uri: { 4845 type: 'string', 4846 description: 'The URI of the song.', 4847 format: 'at-uri', 4848 }, 4849 album: { 4850 type: 'string', 4851 description: 'The album of the song.', 4852 }, 4853 duration: { 4854 type: 'integer', 4855 description: 'The duration of the song in milliseconds.', 4856 }, 4857 trackNumber: { 4858 type: 'integer', 4859 description: 'The track number of the song in the album.', 4860 }, 4861 discNumber: { 4862 type: 'integer', 4863 description: 'The disc number of the song in the album.', 4864 }, 4865 playCount: { 4866 type: 'integer', 4867 description: 'The number of times the song has been played.', 4868 minimum: 0, 4869 }, 4870 uniqueListeners: { 4871 type: 'integer', 4872 description: 4873 'The number of unique listeners who have played the song.', 4874 minimum: 0, 4875 }, 4876 albumUri: { 4877 type: 'string', 4878 description: 'The URI of the album the song belongs to.', 4879 format: 'at-uri', 4880 }, 4881 artistUri: { 4882 type: 'string', 4883 description: 'The URI of the artist of the song.', 4884 format: 'at-uri', 4885 }, 4886 sha256: { 4887 type: 'string', 4888 description: 'The SHA256 hash of the song.', 4889 }, 4890 createdAt: { 4891 type: 'string', 4892 description: 'The timestamp when the song was created.', 4893 format: 'datetime', 4894 }, 4895 }, 4896 }, 4897 }, 4898 }, 4899 AppRockskySongGetSong: { 4900 lexicon: 1, 4901 id: 'app.rocksky.song.getSong', 4902 defs: { 4903 main: { 4904 type: 'query', 4905 description: 'Get a song by its uri', 4906 parameters: { 4907 type: 'params', 4908 required: ['uri'], 4909 properties: { 4910 uri: { 4911 type: 'string', 4912 description: 'The unique identifier of the song to retrieve', 4913 format: 'at-uri', 4914 }, 4915 }, 4916 }, 4917 output: { 4918 encoding: 'application/json', 4919 schema: { 4920 type: 'ref', 4921 ref: 'lex:app.rocksky.song.defs#songViewDetailed', 4922 }, 4923 }, 4924 }, 4925 }, 4926 }, 4927 AppRockskySongGetSongs: { 4928 lexicon: 1, 4929 id: 'app.rocksky.song.getSongs', 4930 defs: { 4931 main: { 4932 type: 'query', 4933 description: 'Get songs', 4934 parameters: { 4935 type: 'params', 4936 properties: { 4937 limit: { 4938 type: 'integer', 4939 description: 'The maximum number of songs to return', 4940 minimum: 1, 4941 }, 4942 offset: { 4943 type: 'integer', 4944 description: 'The offset for pagination', 4945 minimum: 0, 4946 }, 4947 }, 4948 }, 4949 output: { 4950 encoding: 'application/json', 4951 schema: { 4952 type: 'object', 4953 properties: { 4954 songs: { 4955 type: 'array', 4956 items: { 4957 type: 'ref', 4958 ref: 'lex:app.rocksky.song.defs#songViewBasic', 4959 }, 4960 }, 4961 }, 4962 }, 4963 }, 4964 }, 4965 }, 4966 }, 4967 AppRockskySong: { 4968 lexicon: 1, 4969 id: 'app.rocksky.song', 4970 defs: { 4971 main: { 4972 type: 'record', 4973 description: 'A declaration of a song.', 4974 key: 'tid', 4975 record: { 4976 type: 'object', 4977 required: [ 4978 'title', 4979 'artist', 4980 'album', 4981 'albumArtist', 4982 'duration', 4983 'createdAt', 4984 ], 4985 properties: { 4986 title: { 4987 type: 'string', 4988 description: 'The title of the song.', 4989 minLength: 1, 4990 maxLength: 512, 4991 }, 4992 artist: { 4993 type: 'string', 4994 description: 'The artist of the song.', 4995 minLength: 1, 4996 maxLength: 256, 4997 }, 4998 artists: { 4999 type: 'array', 5000 description: 'The artists of the song with MusicBrainz IDs.', 5001 items: { 5002 type: 'ref', 5003 ref: 'lex:app.rocksky.artist.defs#artistMbid', 5004 }, 5005 }, 5006 albumArtist: { 5007 type: 'string', 5008 description: 'The album artist of the song.', 5009 minLength: 1, 5010 maxLength: 256, 5011 }, 5012 album: { 5013 type: 'string', 5014 description: 'The album of the song.', 5015 minLength: 1, 5016 maxLength: 256, 5017 }, 5018 duration: { 5019 type: 'integer', 5020 description: 'The duration of the song in seconds.', 5021 minimum: 1, 5022 }, 5023 trackNumber: { 5024 type: 'integer', 5025 description: 'The track number of the song in the album.', 5026 minimum: 1, 5027 }, 5028 discNumber: { 5029 type: 'integer', 5030 description: 'The disc number of the song in the album.', 5031 minimum: 1, 5032 }, 5033 releaseDate: { 5034 type: 'string', 5035 description: 'The release date of the song.', 5036 format: 'datetime', 5037 }, 5038 year: { 5039 type: 'integer', 5040 description: 'The year the song was released.', 5041 }, 5042 genre: { 5043 type: 'string', 5044 description: 'The genre of the song.', 5045 minLength: 1, 5046 maxLength: 256, 5047 }, 5048 tags: { 5049 type: 'array', 5050 description: 'The tags of the song.', 5051 items: { 5052 type: 'string', 5053 minLength: 1, 5054 maxLength: 256, 5055 }, 5056 }, 5057 composer: { 5058 type: 'string', 5059 description: 'The composer of the song.', 5060 maxLength: 256, 5061 }, 5062 lyrics: { 5063 type: 'string', 5064 description: 'The lyrics of the song.', 5065 maxLength: 10000, 5066 }, 5067 copyrightMessage: { 5068 type: 'string', 5069 description: 'The copyright message of the song.', 5070 maxLength: 256, 5071 }, 5072 wiki: { 5073 type: 'string', 5074 description: 'Informations about the song', 5075 maxLength: 10000, 5076 }, 5077 albumArt: { 5078 type: 'blob', 5079 description: 'The album art of the song.', 5080 accept: ['image/png', 'image/jpeg'], 5081 maxSize: 2000000, 5082 }, 5083 albumArtUrl: { 5084 type: 'string', 5085 description: 'The URL of the album art of the song.', 5086 format: 'uri', 5087 }, 5088 youtubeLink: { 5089 type: 'string', 5090 description: 'The YouTube link of the song.', 5091 format: 'uri', 5092 }, 5093 spotifyLink: { 5094 type: 'string', 5095 description: 'The Spotify link of the song.', 5096 format: 'uri', 5097 }, 5098 tidalLink: { 5099 type: 'string', 5100 description: 'The Tidal link of the song.', 5101 format: 'uri', 5102 }, 5103 appleMusicLink: { 5104 type: 'string', 5105 description: 'The Apple Music link of the song.', 5106 format: 'uri', 5107 }, 5108 createdAt: { 5109 type: 'string', 5110 description: 'The date when the song was created.', 5111 format: 'datetime', 5112 }, 5113 mbid: { 5114 type: 'string', 5115 description: 'The MusicBrainz ID of the song.', 5116 }, 5117 label: { 5118 type: 'string', 5119 description: 'The label of the song.', 5120 maxLength: 256, 5121 }, 5122 }, 5123 }, 5124 }, 5125 }, 5126 }, 5127 AppRockskySpotifyDefs: { 5128 lexicon: 1, 5129 id: 'app.rocksky.spotify.defs', 5130 defs: { 5131 spotifyTrackView: { 5132 type: 'object', 5133 properties: { 5134 id: { 5135 type: 'string', 5136 description: 'The unique identifier of the Spotify track.', 5137 }, 5138 name: { 5139 type: 'string', 5140 description: 'The name of the track.', 5141 }, 5142 artist: { 5143 type: 'string', 5144 description: 'The name of the artist.', 5145 }, 5146 album: { 5147 type: 'string', 5148 description: 'The name of the album.', 5149 }, 5150 duration: { 5151 type: 'integer', 5152 description: 'The duration of the track in milliseconds.', 5153 }, 5154 previewUrl: { 5155 type: 'string', 5156 description: 'A URL to a preview of the track.', 5157 }, 5158 }, 5159 }, 5160 }, 5161 }, 5162 AppRockskySpotifyGetCurrentlyPlaying: { 5163 lexicon: 1, 5164 id: 'app.rocksky.spotify.getCurrentlyPlaying', 5165 defs: { 5166 main: { 5167 type: 'query', 5168 description: 'Get the currently playing track', 5169 parameters: { 5170 type: 'params', 5171 properties: { 5172 actor: { 5173 type: 'string', 5174 description: 5175 'Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user.', 5176 format: 'at-identifier', 5177 }, 5178 }, 5179 }, 5180 output: { 5181 encoding: 'application/json', 5182 schema: { 5183 type: 'ref', 5184 ref: 'lex:app.rocksky.player.defs#currentlyPlayingViewDetailed', 5185 }, 5186 }, 5187 }, 5188 }, 5189 }, 5190 AppRockskySpotifyNext: { 5191 lexicon: 1, 5192 id: 'app.rocksky.spotify.next', 5193 defs: { 5194 main: { 5195 type: 'procedure', 5196 description: 'Play the next track in the queue', 5197 }, 5198 }, 5199 }, 5200 AppRockskySpotifyPause: { 5201 lexicon: 1, 5202 id: 'app.rocksky.spotify.pause', 5203 defs: { 5204 main: { 5205 type: 'procedure', 5206 description: 'Pause the currently playing track', 5207 }, 5208 }, 5209 }, 5210 AppRockskySpotifyPlay: { 5211 lexicon: 1, 5212 id: 'app.rocksky.spotify.play', 5213 defs: { 5214 main: { 5215 type: 'procedure', 5216 description: 'Resume playback of the currently paused track', 5217 }, 5218 }, 5219 }, 5220 AppRockskySpotifyPrevious: { 5221 lexicon: 1, 5222 id: 'app.rocksky.spotify.previous', 5223 defs: { 5224 main: { 5225 type: 'procedure', 5226 description: 'Play the previous track in the queue', 5227 }, 5228 }, 5229 }, 5230 AppRockskySpotifySeek: { 5231 lexicon: 1, 5232 id: 'app.rocksky.spotify.seek', 5233 defs: { 5234 main: { 5235 type: 'procedure', 5236 description: 5237 'Seek to a specific position in the currently playing track', 5238 parameters: { 5239 type: 'params', 5240 required: ['position'], 5241 properties: { 5242 position: { 5243 type: 'integer', 5244 description: 'The position in seconds to seek to', 5245 }, 5246 }, 5247 }, 5248 }, 5249 }, 5250 }, 5251 AppRockskyStatsDefs: { 5252 lexicon: 1, 5253 id: 'app.rocksky.stats.defs', 5254 defs: { 5255 statsView: { 5256 type: 'object', 5257 properties: { 5258 scrobbles: { 5259 type: 'integer', 5260 description: 'The total number of scrobbles.', 5261 }, 5262 artists: { 5263 type: 'integer', 5264 description: 'The total number of unique artists scrobbled.', 5265 }, 5266 lovedTracks: { 5267 type: 'integer', 5268 description: 'The total number of tracks marked as loved.', 5269 }, 5270 albums: { 5271 type: 'integer', 5272 description: 'The total number of unique albums scrobbled.', 5273 }, 5274 tracks: { 5275 type: 'integer', 5276 description: 'The total number of unique tracks scrobbled.', 5277 }, 5278 }, 5279 }, 5280 }, 5281 }, 5282 AppRockskyStatsGetStats: { 5283 lexicon: 1, 5284 id: 'app.rocksky.stats.getStats', 5285 defs: { 5286 main: { 5287 type: 'query', 5288 parameters: { 5289 type: 'params', 5290 required: ['did'], 5291 properties: { 5292 did: { 5293 type: 'string', 5294 description: 'The DID or handle of the user to get stats for.', 5295 format: 'at-identifier', 5296 }, 5297 }, 5298 }, 5299 output: { 5300 encoding: 'application/json', 5301 schema: { 5302 type: 'ref', 5303 ref: 'lex:app.rocksky.stats.defs#statsView', 5304 }, 5305 }, 5306 }, 5307 }, 5308 }, 5309 ComAtprotoRepoStrongRef: { 5310 lexicon: 1, 5311 id: 'com.atproto.repo.strongRef', 5312 description: 'A URI with a content-hash fingerprint.', 5313 defs: { 5314 main: { 5315 type: 'object', 5316 required: ['uri', 'cid'], 5317 properties: { 5318 uri: { 5319 type: 'string', 5320 format: 'at-uri', 5321 }, 5322 cid: { 5323 type: 'string', 5324 format: 'cid', 5325 }, 5326 }, 5327 }, 5328 }, 5329 }, 5330} as const satisfies Record<string, LexiconDoc> 5331 5332export const schemas = Object.values(schemaDict) 5333export const lexicons: Lexicons = new Lexicons(schemas) 5334export const ids = { 5335 AppRockskyActorDefs: 'app.rocksky.actor.defs', 5336 AppRockskyActorGetActorAlbums: 'app.rocksky.actor.getActorAlbums', 5337 AppRockskyActorGetActorArtists: 'app.rocksky.actor.getActorArtists', 5338 AppRockskyActorGetActorCompatibility: 5339 'app.rocksky.actor.getActorCompatibility', 5340 AppRockskyActorGetActorLovedSongs: 'app.rocksky.actor.getActorLovedSongs', 5341 AppRockskyActorGetActorNeighbours: 'app.rocksky.actor.getActorNeighbours', 5342 AppRockskyActorGetActorPlaylists: 'app.rocksky.actor.getActorPlaylists', 5343 AppRockskyActorGetActorScrobbles: 'app.rocksky.actor.getActorScrobbles', 5344 AppRockskyActorGetActorSongs: 'app.rocksky.actor.getActorSongs', 5345 AppRockskyActorGetProfile: 'app.rocksky.actor.getProfile', 5346 AppBskyActorProfile: 'app.bsky.actor.profile', 5347 AppRockskyAlbum: 'app.rocksky.album', 5348 AppRockskyAlbumDefs: 'app.rocksky.album.defs', 5349 AppRockskyAlbumGetAlbum: 'app.rocksky.album.getAlbum', 5350 AppRockskyAlbumGetAlbums: 'app.rocksky.album.getAlbums', 5351 AppRockskyAlbumGetAlbumTracks: 'app.rocksky.album.getAlbumTracks', 5352 AppRockskyApikeyCreateApikey: 'app.rocksky.apikey.createApikey', 5353 AppRockskyApikeyDefs: 'app.rocksky.apikey.defs', 5354 AppRockskyApikeysDefs: 'app.rocksky.apikeys.defs', 5355 AppRockskyApikeyGetApikeys: 'app.rocksky.apikey.getApikeys', 5356 AppRockskyApikeyRemoveApikey: 'app.rocksky.apikey.removeApikey', 5357 AppRockskyApikeyUpdateApikey: 'app.rocksky.apikey.updateApikey', 5358 AppRockskyArtist: 'app.rocksky.artist', 5359 AppRockskyArtistDefs: 'app.rocksky.artist.defs', 5360 AppRockskyArtistGetArtist: 'app.rocksky.artist.getArtist', 5361 AppRockskyArtistGetArtistAlbums: 'app.rocksky.artist.getArtistAlbums', 5362 AppRockskyArtistGetArtistListeners: 'app.rocksky.artist.getArtistListeners', 5363 AppRockskyArtistGetArtists: 'app.rocksky.artist.getArtists', 5364 AppRockskyArtistGetArtistTracks: 'app.rocksky.artist.getArtistTracks', 5365 AppRockskyChartsDefs: 'app.rocksky.charts.defs', 5366 AppRockskyChartsGetScrobblesChart: 'app.rocksky.charts.getScrobblesChart', 5367 AppRockskyDropboxDefs: 'app.rocksky.dropbox.defs', 5368 AppRockskyDropboxDownloadFile: 'app.rocksky.dropbox.downloadFile', 5369 AppRockskyDropboxGetFiles: 'app.rocksky.dropbox.getFiles', 5370 AppRockskyDropboxGetMetadata: 'app.rocksky.dropbox.getMetadata', 5371 AppRockskyDropboxGetTemporaryLink: 'app.rocksky.dropbox.getTemporaryLink', 5372 AppRockskyFeedDefs: 'app.rocksky.feed.defs', 5373 AppRockskyFeedDescribeFeedGenerator: 'app.rocksky.feed.describeFeedGenerator', 5374 AppRockskyFeedGenerator: 'app.rocksky.feed.generator', 5375 AppRockskyFeedGetFeed: 'app.rocksky.feed.getFeed', 5376 AppRockskyFeedGetFeedGenerator: 'app.rocksky.feed.getFeedGenerator', 5377 AppRockskyFeedGetFeedGenerators: 'app.rocksky.feed.getFeedGenerators', 5378 AppRockskyFeedGetFeedSkeleton: 'app.rocksky.feed.getFeedSkeleton', 5379 AppRockskyFeedGetNowPlayings: 'app.rocksky.feed.getNowPlayings', 5380 AppRockskyFeedSearch: 'app.rocksky.feed.search', 5381 AppRockskyGoogledriveDefs: 'app.rocksky.googledrive.defs', 5382 AppRockskyGoogledriveDownloadFile: 'app.rocksky.googledrive.downloadFile', 5383 AppRockskyGoogledriveGetFile: 'app.rocksky.googledrive.getFile', 5384 AppRockskyGoogledriveGetFiles: 'app.rocksky.googledrive.getFiles', 5385 AppRockskyGraphDefs: 'app.rocksky.graph.defs', 5386 AppRockskyGraphFollow: 'app.rocksky.graph.follow', 5387 AppRockskyGraphFollowAccount: 'app.rocksky.graph.followAccount', 5388 AppRockskyGraphGetFollowers: 'app.rocksky.graph.getFollowers', 5389 AppRockskyGraphGetFollows: 'app.rocksky.graph.getFollows', 5390 AppRockskyGraphGetKnownFollowers: 'app.rocksky.graph.getKnownFollowers', 5391 AppRockskyGraphUnfollowAccount: 'app.rocksky.graph.unfollowAccount', 5392 AppRockskyLikeDislikeShout: 'app.rocksky.like.dislikeShout', 5393 AppRockskyLikeDislikeSong: 'app.rocksky.like.dislikeSong', 5394 AppRockskyLike: 'app.rocksky.like', 5395 AppRockskyLikeLikeShout: 'app.rocksky.like.likeShout', 5396 AppRockskyLikeLikeSong: 'app.rocksky.like.likeSong', 5397 AppRockskyPlayerAddDirectoryToQueue: 'app.rocksky.player.addDirectoryToQueue', 5398 AppRockskyPlayerAddItemsToQueue: 'app.rocksky.player.addItemsToQueue', 5399 AppRockskyPlayerDefs: 'app.rocksky.player.defs', 5400 AppRockskyPlayerGetCurrentlyPlaying: 'app.rocksky.player.getCurrentlyPlaying', 5401 AppRockskyPlayerGetPlaybackQueue: 'app.rocksky.player.getPlaybackQueue', 5402 AppRockskyPlayerNext: 'app.rocksky.player.next', 5403 AppRockskyPlayerPause: 'app.rocksky.player.pause', 5404 AppRockskyPlayerPlay: 'app.rocksky.player.play', 5405 AppRockskyPlayerPlayDirectory: 'app.rocksky.player.playDirectory', 5406 AppRockskyPlayerPlayFile: 'app.rocksky.player.playFile', 5407 AppRockskyPlayerPrevious: 'app.rocksky.player.previous', 5408 AppRockskyPlayerSeek: 'app.rocksky.player.seek', 5409 AppRockskyPlaylistCreatePlaylist: 'app.rocksky.playlist.createPlaylist', 5410 AppRockskyPlaylistDefs: 'app.rocksky.playlist.defs', 5411 AppRockskyPlaylistGetPlaylist: 'app.rocksky.playlist.getPlaylist', 5412 AppRockskyPlaylistGetPlaylists: 'app.rocksky.playlist.getPlaylists', 5413 AppRockskyPlaylistInsertDirectory: 'app.rocksky.playlist.insertDirectory', 5414 AppRockskyPlaylistInsertFiles: 'app.rocksky.playlist.insertFiles', 5415 AppRockskyPlaylist: 'app.rocksky.playlist', 5416 AppRockskyPlaylistRemovePlaylist: 'app.rocksky.playlist.removePlaylist', 5417 AppRockskyPlaylistRemoveTrack: 'app.rocksky.playlist.removeTrack', 5418 AppRockskyPlaylistStartPlaylist: 'app.rocksky.playlist.startPlaylist', 5419 AppRockskyRadioDefs: 'app.rocksky.radio.defs', 5420 AppRockskyRadio: 'app.rocksky.radio', 5421 AppRockskyScrobbleCreateScrobble: 'app.rocksky.scrobble.createScrobble', 5422 AppRockskyScrobbleDefs: 'app.rocksky.scrobble.defs', 5423 AppRockskyScrobbleGetScrobble: 'app.rocksky.scrobble.getScrobble', 5424 AppRockskyScrobbleGetScrobbles: 'app.rocksky.scrobble.getScrobbles', 5425 AppRockskyScrobble: 'app.rocksky.scrobble', 5426 AppRockskyShoutCreateShout: 'app.rocksky.shout.createShout', 5427 AppRockskyShoutDefs: 'app.rocksky.shout.defs', 5428 AppRockskyShoutGetAlbumShouts: 'app.rocksky.shout.getAlbumShouts', 5429 AppRockskyShoutGetArtistShouts: 'app.rocksky.shout.getArtistShouts', 5430 AppRockskyShoutGetProfileShouts: 'app.rocksky.shout.getProfileShouts', 5431 AppRockskyShoutGetShoutReplies: 'app.rocksky.shout.getShoutReplies', 5432 AppRockskyShoutGetTrackShouts: 'app.rocksky.shout.getTrackShouts', 5433 AppRockskyShoutRemoveShout: 'app.rocksky.shout.removeShout', 5434 AppRockskyShoutReplyShout: 'app.rocksky.shout.replyShout', 5435 AppRockskyShoutReportShout: 'app.rocksky.shout.reportShout', 5436 AppRockskyShout: 'app.rocksky.shout', 5437 AppRockskySongCreateSong: 'app.rocksky.song.createSong', 5438 AppRockskySongDefs: 'app.rocksky.song.defs', 5439 AppRockskySongGetSong: 'app.rocksky.song.getSong', 5440 AppRockskySongGetSongs: 'app.rocksky.song.getSongs', 5441 AppRockskySong: 'app.rocksky.song', 5442 AppRockskySpotifyDefs: 'app.rocksky.spotify.defs', 5443 AppRockskySpotifyGetCurrentlyPlaying: 5444 'app.rocksky.spotify.getCurrentlyPlaying', 5445 AppRockskySpotifyNext: 'app.rocksky.spotify.next', 5446 AppRockskySpotifyPause: 'app.rocksky.spotify.pause', 5447 AppRockskySpotifyPlay: 'app.rocksky.spotify.play', 5448 AppRockskySpotifyPrevious: 'app.rocksky.spotify.previous', 5449 AppRockskySpotifySeek: 'app.rocksky.spotify.seek', 5450 AppRockskyStatsDefs: 'app.rocksky.stats.defs', 5451 AppRockskyStatsGetStats: 'app.rocksky.stats.getStats', 5452 ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef', 5453}