Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

move status to a separate lexicon

+33 -11
+23
packages/lexicons/src/fm.teal.alpha.actor.currentListen.json
···
··· 1 + { 2 + "lexicon": 1, 3 + "id": "fm.teal.alpha.actor.status", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "This lexicon is in a not officially released state. It is subject to change. | A declaration of the status of the actor. Only one can be shown at a time. If there are multiple, pick the latest record.", 8 + "key": "literal:self", 9 + "record": { 10 + "type": "object", 11 + "required": ["listeningTo"], 12 + "properties": { 13 + "time": { 14 + "type": "string", 15 + "format": "datetime", 16 + "description": "The unix timestamp of when the item was recorded" 17 + }, 18 + "item": { "type": "union", "refs": ["fm.teal.alpha.play#main"] } 19 + } 20 + } 21 + } 22 + } 23 + }
+10 -11
packages/lexicons/src/fm.teal.alpha.play.json
··· 1 { 2 "lexicon": 1, 3 "id": "fm.teal.alpha.play", 4 - "description": "This lexicon is in a not officially released state. It is subject to change. | A declaration of a teal.fm play. Plays are submitted as a result of a user listening to a track. Plays should be submitted when a user has listened to a track for at least 30 seconds, or half of the track's duration up to 4 minutes, whichever is longest.", 5 "defs": { 6 "main": { 7 "type": "record", 8 "key": "tid", 9 "record": { 10 "type": "object", 11 - "required": ["trackName", "artistName", "isTracked"], 12 "properties": { 13 "trackName": { 14 "type": "string", 15 "minLength": 1, 16 "maxLength": 256, 17 "description": "The name of the track" 18 }, 19 - "trackMbid": { 20 "type": "string", 21 22 "description": "The Musicbrainz ID of the track" 23 }, 24 - "recordingMbid": { 25 "type": "string", 26 - 27 "description": "The Musicbrainz recording ID of the track" 28 }, 29 "duration": { ··· 34 "type": "string", 35 "minLength": 1, 36 "maxLength": 256, 37 "description": "The name of the artist" 38 }, 39 - "artistMbids": { 40 "type": "array", 41 "items": { 42 "type": "string" ··· 46 "releaseName": { 47 "type": "string", 48 "maxLength": 256, 49 "description": "The name of the release/album" 50 }, 51 - "releaseMbid": { 52 "type": "string", 53 "description": "The Musicbrainz release ID" 54 }, ··· 67 "submissionClientAgent": { 68 "type": "string", 69 "maxLength": 256, 70 "description": "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b" 71 - }, 72 - "isTracked": { 73 - "type": "boolean", 74 - "description": "Whether or not this play is being tracked. If false, the play will not be shown past the length of the track, or 10 minutes, whichever is shorter. It is expected the App View or the user delete the play after this time." 75 }, 76 "playedTime": { 77 "type": "string",
··· 1 { 2 "lexicon": 1, 3 "id": "fm.teal.alpha.play", 4 + "description": "This lexicon is in a not officially released state. It is subject to change. | A declaration of a teal.fm play. Plays are submitted as a result of a user listening to a track. Plays should be marked as tracked when a user has listened to the entire track if it's under 2 minutes long, or half of the track's duration up to 4 minutes, whichever is longest.", 5 "defs": { 6 "main": { 7 "type": "record", 8 "key": "tid", 9 "record": { 10 "type": "object", 11 + "required": ["trackName", "artistName"], 12 "properties": { 13 "trackName": { 14 "type": "string", 15 "minLength": 1, 16 "maxLength": 256, 17 + "maxGraphemes": 2560, 18 "description": "The name of the track" 19 }, 20 + "trackMbId": { 21 "type": "string", 22 23 "description": "The Musicbrainz ID of the track" 24 }, 25 + "recordingMbId": { 26 "type": "string", 27 "description": "The Musicbrainz recording ID of the track" 28 }, 29 "duration": { ··· 34 "type": "string", 35 "minLength": 1, 36 "maxLength": 256, 37 + "maxGraphemes": 2560, 38 "description": "The name of the artist" 39 }, 40 + "artistMbIds": { 41 "type": "array", 42 "items": { 43 "type": "string" ··· 47 "releaseName": { 48 "type": "string", 49 "maxLength": 256, 50 + "maxGraphemes": 2560, 51 "description": "The name of the release/album" 52 }, 53 + "releaseMbId": { 54 "type": "string", 55 "description": "The Musicbrainz release ID" 56 }, ··· 69 "submissionClientAgent": { 70 "type": "string", 71 "maxLength": 256, 72 + "maxGraphemes": 2560, 73 "description": "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b" 74 }, 75 "playedTime": { 76 "type": "string",