A decentralized music tracking and discovery platform built on AT Protocol 馃幍 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
0

Configure Feed

Select the types of activity you want to include in your feed.

rocksky / apps / api / lexicons / shout / defs.json
3.9 kB 134 lines
1{ 2 "lexicon": 1, 3 "id": "app.rocksky.shout.defs", 4 "defs": { 5 "author": { 6 "type": "object", 7 "properties": { 8 "id": { 9 "type": "string", 10 "description": "The unique identifier of the author." 11 }, 12 "did": { 13 "type": "string", 14 "description": "The decentralized identifier (DID) of the author.", 15 "format": "at-identifier" 16 }, 17 "handle": { 18 "type": "string", 19 "description": "The handle of the author.", 20 "format": "at-identifier" 21 }, 22 "displayName": { 23 "type": "string", 24 "description": "The display name of the author." 25 }, 26 "avatar": { 27 "type": "string", 28 "description": "The URL of the author's avatar image.", 29 "format": "uri" 30 } 31 } 32 }, 33 "shoutView": { 34 "type": "object", 35 "properties": { 36 "id": { 37 "type": "string", 38 "description": "The unique identifier of the shout." 39 }, 40 "message": { 41 "type": "string", 42 "description": "The content of the shout." 43 }, 44 "parent": { 45 "type": "string", 46 "description": "The ID of the parent shout if this is a reply, otherwise null." 47 }, 48 "createdAt": { 49 "type": "string", 50 "description": "The date and time when the shout was created.", 51 "format": "datetime" 52 }, 53 "author": { 54 "type": "ref", 55 "description": "The author of the shout.", 56 "ref": "app.rocksky.shout.defs#author" 57 }, 58 "gif": { 59 "type": "ref", 60 "description": "An attached GIF, sticker, or clip.", 61 "ref": "app.rocksky.shout.defs#gif" 62 }, 63 "facets": { 64 "type": "array", 65 "description": "Mentions of other actors within the message, anchored to UTF-8 byte ranges.", 66 "items": { 67 "type": "ref", 68 "ref": "app.rocksky.shout.defs#mention" 69 } 70 } 71 } 72 }, 73 "mention": { 74 "type": "object", 75 "description": "A mention of another actor within the shout message, anchored to a UTF-8 byte range in the message.", 76 "required": [ 77 "did", 78 "byteStart", 79 "byteEnd" 80 ], 81 "properties": { 82 "did": { 83 "type": "string", 84 "description": "The DID of the mentioned actor.", 85 "format": "did" 86 }, 87 "byteStart": { 88 "type": "integer", 89 "description": "Inclusive UTF-8 byte offset of the mention start.", 90 "minimum": 0 91 }, 92 "byteEnd": { 93 "type": "integer", 94 "description": "Exclusive UTF-8 byte offset of the mention end.", 95 "minimum": 0 96 } 97 } 98 }, 99 "gif": { 100 "type": "object", 101 "description": "A GIF, sticker, or clip embedded in a shout. `url` may point at an image (GIF/WebP) or a video (MP4); the client decides how to render it from the file extension.", 102 "required": [ 103 "url" 104 ], 105 "properties": { 106 "url": { 107 "type": "string", 108 "description": "Direct URL of the animated GIF/MP4.", 109 "format": "uri" 110 }, 111 "previewUrl": { 112 "type": "string", 113 "description": "Smaller still/preview image URL.", 114 "format": "uri" 115 }, 116 "alt": { 117 "type": "string", 118 "description": "Alternative text describing the media.", 119 "maxLength": 512 120 }, 121 "width": { 122 "type": "integer", 123 "description": "The intrinsic width of the media in pixels.", 124 "minimum": 0 125 }, 126 "height": { 127 "type": "integer", 128 "description": "The intrinsic height of the media in pixels.", 129 "minimum": 0 130 } 131 } 132 } 133 } 134}