Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion lexicons/fm.teal.alpha/feed/play.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
},
"trackMbId": {
"type": "string",

"description": "The Musicbrainz ID of the track"
},
"recordingMbId": {
Expand Down
54 changes: 54 additions & 0 deletions lexicons/fm.teal.alpha/feed/social/defs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.feed.social.defs",
"description": "This lexicon is in a not officially released state. It is subject to change. | Misc. items related to the social feed..",
"defs": {
"trackView": {
"trackName": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"maxGraphemes": 2560,
"description": "The name of the track"
},
"trackMbId": {
"type": "string",
"description": "The Musicbrainz ID of the track"
},
"recordingMbId": {
"type": "string",
"description": "The Musicbrainz recording ID of the track"
},
"artistNames": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"maxGraphemes": 2560
},
"description": "Array of artist names in order of original appearance. Prefer using 'artists'."
},
"artistMbIds": {
"type": "array",
"items": { "type": "string" },
"description": "Array of Musicbrainz artist IDs. Prefer using 'artists'."
},
"artists": {
"type": "array",
"items": { "type": "ref", "ref": "fm.teal.alpha.feed.defs#artist" },
"description": "Array of artists in order of original appearance."
},
"releaseName": {
"type": "string",
"maxLength": 256,
"maxGraphemes": 2560,
"description": "The name of the release/album"
},
"releaseMbId": {
"type": "string",
"description": "The Musicbrainz release ID"
Comment thread
mmattbtw marked this conversation as resolved.
}
}
}
}
24 changes: 24 additions & 0 deletions lexicons/fm.teal.alpha/feed/social/like.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.feed.social.like",
"description": "This lexicon is in a not officially released state. It is subject to change. | The action of 'Liking' a Teal.fm post.",
"defs": {
"main": {
"type": "record",
"description": "Record containing a like for a teal.fm post.",
"key": "tid",
"record": {
"type": "object",
"required": ["subject", "createdAt"],
"properties": {
"subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this post was originally created."
}
}
}
}
}
}
30 changes: 30 additions & 0 deletions lexicons/fm.teal.alpha/feed/social/playlist.json
Comment thread
mmattbtw marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.feed.social.playlist",
"description": "This lexicon is in a not officially released state. It is subject to change. | A teal.fm playlist, representing a list of tracks.",
"defs": {
"main": {
"type": "record",
"description": "Record containing the playlist metadata.",
"key": "tid",
"record": {
"type": "object",
"required": ["name", "createdAt"],
"properties": {
"name": {
"type": "string",
"description": "Display name for the playlist, required.",
"minLength": 1,
"maxLength": 50
},
"description": { "type": "string", "maxLength": 5000 },
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this playlist was originally created."
}
}
}
}
}
}
32 changes: 32 additions & 0 deletions lexicons/fm.teal.alpha/feed/social/playlistItem.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.feed.social.playlistItem",
"description": "This lexicon is in a not officially released state. It is subject to change. | A teal.fm playlist item.",
"defs": {
"main": {
"type": "record",
"description": "Record containing a playlist item for a teal.fm playlist.",
"key": "tid",
"record": {
"type": "object",
"required": ["subject", "createdAt", "trackName"],
Comment thread
mmattbtw marked this conversation as resolved.
"properties": {
"subject": { "type": "record", "ref": "com.atproto.repo.strongRef" },
Comment thread
mmattbtw marked this conversation as resolved.
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this post was originally created."
},
"track": {
"type": "ref",
"ref": "fm.teal.alpha.feed.social.defs#trackView"
},
"order": {
"type": "integer",
"description": "The order of the track in the playlist"
}
}
}
}
}
}
104 changes: 104 additions & 0 deletions lexicons/fm.teal.alpha/feed/social/post.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.feed.social.post",
"description": "This lexicon is in a not officially released state. It is subject to change. | Record containing a teal.fm post. Teal.fm posts include a track that is connected to the post, and could have some text. Replies, by default, have the same track as the parent post.",
"defs": {
"main": {
"type": "record",
"description": "Record containing a teal.fm post.",
"key": "tid",
"record": {
"type": "object",
"required": ["text", "createdAt"],
"properties": {
"text": {
"type": "string",
"maxLength": 3000,
"maxGraphemes": 300,
"description": "The primary post content. May be an empty string, if there are embeds."
},

"trackName": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"maxGraphemes": 2560,
"description": "The name of the track"
},
"trackMbId": {
"type": "string",
"description": "The Musicbrainz ID of the track"
},
"recordingMbId": {
"type": "string",
"description": "The Musicbrainz recording ID of the track"
},
"duration": {
"type": "integer",
"description": "The duration of the track in seconds"
},
"artistNames": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"maxGraphemes": 2560
},
"description": "The names of the artists"
},
"artistMbIds": {
"type": "array",
"items": { "type": "string" },
"description": "The Musicbrainz IDs of the artists"
},
"releaseName": {
"type": "string",
"maxLength": 256,
"maxGraphemes": 2560,
"description": "The name of the release/album"
},
"releaseMbId": {
"type": "string",
"description": "The Musicbrainz ID of the release/album"
},
"isrc": {
"type": "string",
"description": "The ISRC code associated with the recording"
},
"reply": { "type": "ref", "ref": "#replyRef" },
"facets": {
"type": "array",
"description": "Rich text facets, which may include mentions, links, and other features.",
"items": { "type": "ref", "ref": "fm.teal.alpha.richtext.facet" }
},
"langs": {
"type": "array",
"description": "Indicates human language of post primary text content.",
"maxLength": 3,
"items": { "type": "string", "format": "language" }
},
"tags": {
"type": "array",
"description": "Additional hashtags, in addition to any included in post text and facets.",
"maxLength": 8,
"items": { "type": "string", "maxLength": 640, "maxGraphemes": 64 }
},
Comment thread
mmattbtw marked this conversation as resolved.
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this post was originally created."
}
}
}
},
"replyRef": {
"type": "object",
"required": ["root", "parent"],
"properties": {
"root": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
"parent": { "type": "ref", "ref": "com.atproto.repo.strongRef" }
}
}
}
}
24 changes: 24 additions & 0 deletions lexicons/fm.teal.alpha/feed/social/repost.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.feed.social.repost",
"description": "This lexicon is in a not officially released state. It is subject to change. | The action of 'Reposting' a Teal.fm post.",
"defs": {
"main": {
"type": "record",
"description": "Record containing a repost for a teal.fm post.",
"key": "tid",
"record": {
"type": "object",
"required": ["subject", "createdAt"],
"properties": {
"subject": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this post was originally created."
}
}
}
}
}
}
24 changes: 24 additions & 0 deletions lexicons/fm.teal.alpha/richtext/facet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"lexicon": 1,
"id": "fm.teal.alpha.richtext.facet",
"defs": {
"main": {
"type": "object",
"description": "Annotation of a sub-string within rich text.",
"required": ["index", "features"],
"properties": {
"index": { "type": "ref", "ref": "app.bsky.richtext.facet#byteSlice" },
"features": {
"type": "array",
"items": {
"type": "union",
"refs": [
"app.bsky.richtext.facet#mention",
"app.bsky.richtext.facet#link"
]
}
}
}
}
}
}
Loading