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