feat: initial implementation of chat in terminal from stream.place
This commit is contained in:
commit
689304656f
39 files changed
+4243
No files matched your search
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"id": "app.bsky.actor.profile",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "literal:self",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"avatar": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"image/png",
|
||||
"image/jpeg"
|
||||
],
|
||||
"maxSize": 1000000,
|
||||
"description": "Small image to be displayed next to posts from account. AKA, 'profile picture'"
|
||||
},
|
||||
"banner": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"image/png",
|
||||
"image/jpeg"
|
||||
],
|
||||
"maxSize": 1000000,
|
||||
"description": "Larger horizontal image to display behind profile view."
|
||||
},
|
||||
"labels": {
|
||||
"refs": [
|
||||
"com.atproto.label.defs#selfLabels"
|
||||
],
|
||||
"type": "union",
|
||||
"description": "Self-label values, specific to the Bluesky application, on the overall account."
|
||||
},
|
||||
"website": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"pronouns": {
|
||||
"type": "string",
|
||||
"maxLength": 200,
|
||||
"description": "Free-form pronouns text.",
|
||||
"maxGraphemes": 20
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"pinnedPost": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 2560,
|
||||
"description": "Free-form profile description text.",
|
||||
"maxGraphemes": 256
|
||||
},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"joinedViaStarterPack": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "A declaration of a Bluesky account profile."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"id": "app.bsky.richtext.facet",
|
||||
"defs": {
|
||||
"tag": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"tag"
|
||||
],
|
||||
"properties": {
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
}
|
||||
},
|
||||
"description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags')."
|
||||
},
|
||||
"link": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
|
||||
},
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"index",
|
||||
"features"
|
||||
],
|
||||
"properties": {
|
||||
"index": {
|
||||
"ref": "#byteSlice",
|
||||
"type": "ref"
|
||||
},
|
||||
"features": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"#mention",
|
||||
"#link",
|
||||
"#tag"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Annotation of a sub-string within rich text."
|
||||
},
|
||||
"mention": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"did"
|
||||
],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
}
|
||||
},
|
||||
"description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID."
|
||||
},
|
||||
"byteSlice": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"byteStart",
|
||||
"byteEnd"
|
||||
],
|
||||
"properties": {
|
||||
"byteEnd": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"byteStart": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"id": "com.atproto.label.defs",
|
||||
"defs": {
|
||||
"label": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"src",
|
||||
"uri",
|
||||
"val",
|
||||
"cts"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid",
|
||||
"description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
|
||||
},
|
||||
"cts": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "Timestamp when this label was created."
|
||||
},
|
||||
"exp": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "Timestamp at which this label expires (no longer applies)."
|
||||
},
|
||||
"neg": {
|
||||
"type": "boolean",
|
||||
"description": "If true, this is a negation label, overwriting a previous label."
|
||||
},
|
||||
"sig": {
|
||||
"type": "bytes",
|
||||
"description": "Signature of dag-cbor encoded label."
|
||||
},
|
||||
"src": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "DID of the actor who created this label."
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"description": "AT URI of the record, repository (account), or other resource that this label applies to."
|
||||
},
|
||||
"val": {
|
||||
"type": "string",
|
||||
"maxLength": 128,
|
||||
"description": "The short string name of the value or type of this label."
|
||||
},
|
||||
"ver": {
|
||||
"type": "integer",
|
||||
"description": "The AT Protocol version of the label object."
|
||||
}
|
||||
},
|
||||
"description": "Metadata tag on an atproto resource (eg, repo or record)."
|
||||
},
|
||||
"selfLabel": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"val"
|
||||
],
|
||||
"properties": {
|
||||
"val": {
|
||||
"type": "string",
|
||||
"maxLength": 128,
|
||||
"description": "The short string name of the value or type of this label."
|
||||
}
|
||||
},
|
||||
"description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel."
|
||||
},
|
||||
"labelValue": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"!hide",
|
||||
"!warn",
|
||||
"!no-unauthenticated",
|
||||
"porn",
|
||||
"sexual",
|
||||
"nudity",
|
||||
"graphic-media",
|
||||
"bot"
|
||||
]
|
||||
},
|
||||
"selfLabels": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"values"
|
||||
],
|
||||
"properties": {
|
||||
"values": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#selfLabel",
|
||||
"type": "ref"
|
||||
},
|
||||
"maxLength": 10
|
||||
}
|
||||
},
|
||||
"description": "Metadata tags on an atproto record, published by the author within the record."
|
||||
},
|
||||
"labelValueDefinition": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"identifier",
|
||||
"severity",
|
||||
"blurs",
|
||||
"locales"
|
||||
],
|
||||
"properties": {
|
||||
"blurs": {
|
||||
"type": "string",
|
||||
"description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
|
||||
"knownValues": [
|
||||
"content",
|
||||
"media",
|
||||
"none"
|
||||
]
|
||||
},
|
||||
"locales": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#labelValueDefinitionStrings",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"severity": {
|
||||
"type": "string",
|
||||
"description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
|
||||
"knownValues": [
|
||||
"inform",
|
||||
"alert",
|
||||
"none"
|
||||
]
|
||||
},
|
||||
"adultOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Does the user need to have adult content enabled in order to configure this label?"
|
||||
},
|
||||
"identifier": {
|
||||
"type": "string",
|
||||
"maxLength": 100,
|
||||
"description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
|
||||
"maxGraphemes": 100
|
||||
},
|
||||
"defaultSetting": {
|
||||
"type": "string",
|
||||
"default": "warn",
|
||||
"description": "The default setting for this label.",
|
||||
"knownValues": [
|
||||
"ignore",
|
||||
"warn",
|
||||
"hide"
|
||||
]
|
||||
}
|
||||
},
|
||||
"description": "Declares a label value and its expected interpretations and behaviors."
|
||||
},
|
||||
"labelValueDefinitionStrings": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"lang",
|
||||
"name",
|
||||
"description"
|
||||
],
|
||||
"properties": {
|
||||
"lang": {
|
||||
"type": "string",
|
||||
"format": "language",
|
||||
"description": "The code of the language these strings are written in."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"description": "A short human-readable name for the label.",
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 100000,
|
||||
"description": "A longer description of what the label means and why it might be applied.",
|
||||
"maxGraphemes": 10000
|
||||
}
|
||||
},
|
||||
"description": "Strings which describe the label in the UI, localized into a specific language."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"id": "com.atproto.repo.strongRef",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"cid"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1,
|
||||
"description": "A URI with a content-hash fingerprint."
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"lexicon": 1,
|
||||
"id": "place.stream.chat.message",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "record",
|
||||
"description": "Record containing a Streamplace chat message.",
|
||||
"key": "tid",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": ["text", "createdAt", "streamer"],
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string",
|
||||
"maxLength": 3000,
|
||||
"maxGraphemes": 300,
|
||||
"description": "The primary message content. May be an empty string, if there are embeds."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "Client-declared timestamp when this message was originally created."
|
||||
},
|
||||
"facets": {
|
||||
"type": "array",
|
||||
"description": "Annotations of text (mentions, URLs, etc)",
|
||||
"items": {
|
||||
"type": "ref",
|
||||
"ref": "place.stream.richtext.facet"
|
||||
}
|
||||
},
|
||||
"streamer": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "The DID of the streamer whose chat this is."
|
||||
},
|
||||
"reply": {
|
||||
"type": "ref",
|
||||
"ref": "#replyRef"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"replyRef": {
|
||||
"type": "object",
|
||||
"required": ["root", "parent"],
|
||||
"properties": {
|
||||
"root": {
|
||||
"type": "ref",
|
||||
"ref": "com.atproto.repo.strongRef"
|
||||
},
|
||||
"parent": {
|
||||
"type": "ref",
|
||||
"ref": "com.atproto.repo.strongRef"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"lexicon": 1,
|
||||
"id": "place.stream.richtext.facet",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "object",
|
||||
"description": "Annotation of a sub-string within rich text in a livestream chat message.",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user