add lexicon codegen: vendored lexicons, lex cli and generation scripts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,545 @@
|
||||
{
|
||||
"id": "app.bsky.feed.defs",
|
||||
"defs": {
|
||||
"postView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"cid",
|
||||
"author",
|
||||
"record",
|
||||
"indexedAt"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"debug": {
|
||||
"type": "unknown",
|
||||
"description": "Debug information for internal development"
|
||||
},
|
||||
"embed": {
|
||||
"refs": [
|
||||
"app.bsky.embed.images#view",
|
||||
"app.bsky.embed.video#view",
|
||||
"app.bsky.embed.gallery#view",
|
||||
"app.bsky.embed.external#view",
|
||||
"app.bsky.embed.record#view",
|
||||
"app.bsky.embed.recordWithMedia#view"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"author": {
|
||||
"ref": "app.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.label.defs#label",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"record": {
|
||||
"type": "unknown"
|
||||
},
|
||||
"viewer": {
|
||||
"ref": "#viewerState",
|
||||
"type": "ref"
|
||||
},
|
||||
"indexedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"likeCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"quoteCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"replyCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"threadgate": {
|
||||
"ref": "#threadgateView",
|
||||
"type": "ref"
|
||||
},
|
||||
"repostCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"bookmarkCount": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"replyRef": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"root",
|
||||
"parent"
|
||||
],
|
||||
"properties": {
|
||||
"root": {
|
||||
"refs": [
|
||||
"#postView",
|
||||
"#notFoundPost",
|
||||
"#blockedPost"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"parent": {
|
||||
"refs": [
|
||||
"#postView",
|
||||
"#notFoundPost",
|
||||
"#blockedPost"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"grandparentAuthor": {
|
||||
"ref": "app.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref",
|
||||
"description": "When parent is a reply to another post, this is the author of that post."
|
||||
}
|
||||
}
|
||||
},
|
||||
"reasonPin": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
},
|
||||
"blockedPost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"blocked",
|
||||
"author"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"author": {
|
||||
"ref": "#blockedAuthor",
|
||||
"type": "ref"
|
||||
},
|
||||
"blocked": {
|
||||
"type": "boolean",
|
||||
"const": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"interaction": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"item": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"event": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"app.bsky.feed.defs#requestLess",
|
||||
"app.bsky.feed.defs#requestMore",
|
||||
"app.bsky.feed.defs#clickthroughItem",
|
||||
"app.bsky.feed.defs#clickthroughAuthor",
|
||||
"app.bsky.feed.defs#clickthroughReposter",
|
||||
"app.bsky.feed.defs#clickthroughEmbed",
|
||||
"app.bsky.feed.defs#interactionSeen",
|
||||
"app.bsky.feed.defs#interactionLike",
|
||||
"app.bsky.feed.defs#interactionRepost",
|
||||
"app.bsky.feed.defs#interactionReply",
|
||||
"app.bsky.feed.defs#interactionQuote",
|
||||
"app.bsky.feed.defs#interactionShare"
|
||||
]
|
||||
},
|
||||
"reqId": {
|
||||
"type": "string",
|
||||
"maxLength": 100,
|
||||
"description": "Unique identifier per request that may be passed back alongside interactions."
|
||||
},
|
||||
"feedContext": {
|
||||
"type": "string",
|
||||
"maxLength": 2000,
|
||||
"description": "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton."
|
||||
}
|
||||
}
|
||||
},
|
||||
"requestLess": {
|
||||
"type": "token",
|
||||
"description": "Request that less content like the given feed item be shown in the feed"
|
||||
},
|
||||
"requestMore": {
|
||||
"type": "token",
|
||||
"description": "Request that more content like the given feed item be shown in the feed"
|
||||
},
|
||||
"viewerState": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"like": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"pinned": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"repost": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"bookmarked": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"threadMuted": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"replyDisabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"embeddingDisabled": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests."
|
||||
},
|
||||
"feedViewPost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"post"
|
||||
],
|
||||
"properties": {
|
||||
"post": {
|
||||
"ref": "#postView",
|
||||
"type": "ref"
|
||||
},
|
||||
"reply": {
|
||||
"ref": "#replyRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"reqId": {
|
||||
"type": "string",
|
||||
"maxLength": 100,
|
||||
"description": "Unique identifier per request that may be passed back alongside interactions."
|
||||
},
|
||||
"reason": {
|
||||
"refs": [
|
||||
"#reasonRepost",
|
||||
"#reasonPin"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"feedContext": {
|
||||
"type": "string",
|
||||
"maxLength": 2000,
|
||||
"description": "Context provided by feed generator that may be passed back alongside interactions."
|
||||
}
|
||||
}
|
||||
},
|
||||
"notFoundPost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"notFound"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"notFound": {
|
||||
"type": "boolean",
|
||||
"const": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"reasonRepost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"by",
|
||||
"indexedAt"
|
||||
],
|
||||
"properties": {
|
||||
"by": {
|
||||
"ref": "app.bsky.actor.defs#profileViewBasic",
|
||||
"type": "ref"
|
||||
},
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"indexedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blockedAuthor": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"did"
|
||||
],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"viewer": {
|
||||
"ref": "app.bsky.actor.defs#viewerState",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"generatorView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"cid",
|
||||
"did",
|
||||
"creator",
|
||||
"displayName",
|
||||
"indexedAt"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"avatar": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "com.atproto.label.defs#label",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"viewer": {
|
||||
"ref": "#generatorViewerState",
|
||||
"type": "ref"
|
||||
},
|
||||
"creator": {
|
||||
"ref": "app.bsky.actor.defs#profileView",
|
||||
"type": "ref"
|
||||
},
|
||||
"indexedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"likeCount": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"contentMode": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"app.bsky.feed.defs#contentModeUnspecified",
|
||||
"app.bsky.feed.defs#contentModeVideo"
|
||||
]
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 3000,
|
||||
"maxGraphemes": 300
|
||||
},
|
||||
"displayName": {
|
||||
"type": "string"
|
||||
},
|
||||
"descriptionFacets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.richtext.facet",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"acceptsInteractions": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"threadContext": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"rootAuthorLike": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
},
|
||||
"description": "Metadata about this post within the context of the thread it is in."
|
||||
},
|
||||
"threadViewPost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"post"
|
||||
],
|
||||
"properties": {
|
||||
"post": {
|
||||
"ref": "#postView",
|
||||
"type": "ref"
|
||||
},
|
||||
"parent": {
|
||||
"refs": [
|
||||
"#threadViewPost",
|
||||
"#notFoundPost",
|
||||
"#blockedPost"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"replies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"#threadViewPost",
|
||||
"#notFoundPost",
|
||||
"#blockedPost"
|
||||
],
|
||||
"type": "union"
|
||||
}
|
||||
},
|
||||
"threadContext": {
|
||||
"ref": "#threadContext",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"threadgateView": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"lists": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.graph.defs#listViewBasic",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"record": {
|
||||
"type": "unknown"
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactionLike": {
|
||||
"type": "token",
|
||||
"description": "User liked the feed item"
|
||||
},
|
||||
"interactionSeen": {
|
||||
"type": "token",
|
||||
"description": "Feed item was seen by user"
|
||||
},
|
||||
"clickthroughItem": {
|
||||
"type": "token",
|
||||
"description": "User clicked through to the feed item"
|
||||
},
|
||||
"contentModeVideo": {
|
||||
"type": "token",
|
||||
"description": "Declares the feed generator returns posts containing app.bsky.embed.video embeds."
|
||||
},
|
||||
"interactionQuote": {
|
||||
"type": "token",
|
||||
"description": "User quoted the feed item"
|
||||
},
|
||||
"interactionReply": {
|
||||
"type": "token",
|
||||
"description": "User replied to the feed item"
|
||||
},
|
||||
"interactionShare": {
|
||||
"type": "token",
|
||||
"description": "User shared the feed item"
|
||||
},
|
||||
"skeletonFeedPost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"post"
|
||||
],
|
||||
"properties": {
|
||||
"post": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"reason": {
|
||||
"refs": [
|
||||
"#skeletonReasonRepost",
|
||||
"#skeletonReasonPin"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"feedContext": {
|
||||
"type": "string",
|
||||
"maxLength": 2000,
|
||||
"description": "Context that will be passed through to client and may be passed to feed generator back alongside interactions."
|
||||
}
|
||||
}
|
||||
},
|
||||
"clickthroughEmbed": {
|
||||
"type": "token",
|
||||
"description": "User clicked through to the embedded content of the feed item"
|
||||
},
|
||||
"interactionRepost": {
|
||||
"type": "token",
|
||||
"description": "User reposted the feed item"
|
||||
},
|
||||
"skeletonReasonPin": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
},
|
||||
"clickthroughAuthor": {
|
||||
"type": "token",
|
||||
"description": "User clicked through to the author of the feed item"
|
||||
},
|
||||
"clickthroughReposter": {
|
||||
"type": "token",
|
||||
"description": "User clicked through to the reposter of the feed item"
|
||||
},
|
||||
"generatorViewerState": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"like": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skeletonReasonRepost": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"repost"
|
||||
],
|
||||
"properties": {
|
||||
"repost": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
}
|
||||
},
|
||||
"contentModeUnspecified": {
|
||||
"type": "token",
|
||||
"description": "Declares the feed generator returns any types of posts."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"id": "app.bsky.feed.describeFeedGenerator",
|
||||
"defs": {
|
||||
"feed": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
}
|
||||
},
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"did",
|
||||
"feeds"
|
||||
],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"feeds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#feed",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"ref": "#links",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View)."
|
||||
},
|
||||
"links": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"privacyPolicy": {
|
||||
"type": "string"
|
||||
},
|
||||
"termsOfService": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"id": "app.bsky.feed.generator",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "any",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"did",
|
||||
"displayName",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"avatar": {
|
||||
"type": "blob",
|
||||
"accept": [
|
||||
"image/png",
|
||||
"image/jpeg"
|
||||
],
|
||||
"maxSize": 1000000
|
||||
},
|
||||
"labels": {
|
||||
"refs": [
|
||||
"com.atproto.label.defs#selfLabels"
|
||||
],
|
||||
"type": "union",
|
||||
"description": "Self-label values"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"contentMode": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"app.bsky.feed.defs#contentModeUnspecified",
|
||||
"app.bsky.feed.defs#contentModeVideo"
|
||||
]
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"maxLength": 3000,
|
||||
"maxGraphemes": 300
|
||||
},
|
||||
"displayName": {
|
||||
"type": "string",
|
||||
"maxLength": 240,
|
||||
"maxGraphemes": 24
|
||||
},
|
||||
"descriptionFacets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.richtext.facet",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"acceptsInteractions": {
|
||||
"type": "boolean",
|
||||
"description": "Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getActorFeeds",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feeds"
|
||||
],
|
||||
"properties": {
|
||||
"feeds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#generatorView",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"actor"
|
||||
],
|
||||
"properties": {
|
||||
"actor": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a list of feeds (feed generator records) created by the actor (in the actor's repo)."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getActorLikes",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "BlockedActor"
|
||||
},
|
||||
{
|
||||
"name": "BlockedByActor"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#feedViewPost",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"actor"
|
||||
],
|
||||
"properties": {
|
||||
"actor": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a list of posts liked by an actor. Requires auth, actor must be the requesting account."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getAuthorFeed",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "BlockedActor"
|
||||
},
|
||||
{
|
||||
"name": "BlockedByActor"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#feedViewPost",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"actor"
|
||||
],
|
||||
"properties": {
|
||||
"actor": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"filter": {
|
||||
"type": "string",
|
||||
"default": "posts_with_replies",
|
||||
"description": "Combinations of post/repost types to include in response.",
|
||||
"knownValues": [
|
||||
"posts_with_replies",
|
||||
"posts_no_replies",
|
||||
"posts_with_media",
|
||||
"posts_and_author_threads",
|
||||
"posts_with_video"
|
||||
]
|
||||
},
|
||||
"includePins": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getFeed",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "UnknownFeed"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#feedViewPost",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a hydrated feed from an actor's selected feed generator. Implemented by App View."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getFeedGenerator",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"view",
|
||||
"isOnline",
|
||||
"isValid"
|
||||
],
|
||||
"properties": {
|
||||
"view": {
|
||||
"ref": "app.bsky.feed.defs#generatorView",
|
||||
"type": "ref"
|
||||
},
|
||||
"isValid": {
|
||||
"type": "boolean",
|
||||
"description": "Indicates whether the feed generator service is compatible with the record declaration."
|
||||
},
|
||||
"isOnline": {
|
||||
"type": "boolean",
|
||||
"description": "Indicates whether the feed generator service has been online recently, or else seems to be inactive."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "AT-URI of the feed generator record."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get information about a feed generator. Implemented by AppView."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getFeedGenerators",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feeds"
|
||||
],
|
||||
"properties": {
|
||||
"feeds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#generatorView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"feeds"
|
||||
],
|
||||
"properties": {
|
||||
"feeds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get information about a list of feed generators."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getFeedSkeleton",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "UnknownFeed"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#skeletonFeedPost",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"reqId": {
|
||||
"type": "string",
|
||||
"maxLength": 100,
|
||||
"description": "Unique identifier per request that may be passed back alongside interactions."
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference to feed generator record describing the specific feed being requested."
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getLikes",
|
||||
"defs": {
|
||||
"like": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"indexedAt",
|
||||
"createdAt",
|
||||
"actor"
|
||||
],
|
||||
"properties": {
|
||||
"actor": {
|
||||
"ref": "app.bsky.actor.defs#profileView",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"indexedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"likes"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"likes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#like",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"uri"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid",
|
||||
"description": "CID of the subject record (aka, specific version of record), to filter likes."
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "AT-URI of the subject (eg, a post record)."
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get like records which reference a subject (by AT-URI and CID)."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getListFeed",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "UnknownList"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#feedViewPost",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"list"
|
||||
],
|
||||
"properties": {
|
||||
"list": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference (AT-URI) to the list record."
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getPostThread",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "NotFound"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"thread"
|
||||
],
|
||||
"properties": {
|
||||
"thread": {
|
||||
"refs": [
|
||||
"app.bsky.feed.defs#threadViewPost",
|
||||
"app.bsky.feed.defs#notFoundPost",
|
||||
"app.bsky.feed.defs#blockedPost"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"threadgate": {
|
||||
"ref": "app.bsky.feed.defs#threadgateView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"uri"
|
||||
],
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference (AT-URI) to post record."
|
||||
},
|
||||
"depth": {
|
||||
"type": "integer",
|
||||
"default": 6,
|
||||
"maximum": 1000,
|
||||
"minimum": 0,
|
||||
"description": "How many levels of reply depth should be included in response."
|
||||
},
|
||||
"parentHeight": {
|
||||
"type": "integer",
|
||||
"default": 80,
|
||||
"maximum": 1000,
|
||||
"minimum": 0,
|
||||
"description": "How many levels of parent (and grandparent, etc) post to include."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getPosts",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"posts"
|
||||
],
|
||||
"properties": {
|
||||
"posts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#postView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"uris"
|
||||
],
|
||||
"properties": {
|
||||
"uris": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"maxLength": 25,
|
||||
"description": "List of post AT-URIs to return hydrated views for."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getQuotes",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"posts"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"posts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#postView",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"uri"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid",
|
||||
"description": "If supplied, filters to quotes of specific version (by CID) of the post record."
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference (AT-URI) of post record"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a list of quotes for a given post."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getRepostedBy",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"uri",
|
||||
"repostedBy"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid"
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"repostedBy": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.actor.defs#profileView",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"uri"
|
||||
],
|
||||
"properties": {
|
||||
"cid": {
|
||||
"type": "string",
|
||||
"format": "cid",
|
||||
"description": "If supplied, filters to reposts of specific version (by CID) of the post record."
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference (AT-URI) of post record"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a list of reposts for a given post."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getSuggestedFeeds",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feeds"
|
||||
],
|
||||
"properties": {
|
||||
"feeds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#generatorView",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a list of suggested feeds (feed generators) for the requesting account."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"id": "app.bsky.feed.getTimeline",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"feed"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#feedViewPost",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 50,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"algorithm": {
|
||||
"type": "string",
|
||||
"description": "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"id": "app.bsky.feed.like",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "tid",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"subject",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"via": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"subject": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Record declaring a 'like' of a piece of subject content."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"id": "app.bsky.feed.post",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "tid",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"text",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"maxLength": 8,
|
||||
"description": "Additional hashtags, in addition to any included in post text and facets."
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"maxLength": 3000,
|
||||
"description": "The primary post content. May be an empty string, if there are embeds.",
|
||||
"maxGraphemes": 300
|
||||
},
|
||||
"embed": {
|
||||
"refs": [
|
||||
"app.bsky.embed.images",
|
||||
"app.bsky.embed.video",
|
||||
"app.bsky.embed.gallery",
|
||||
"app.bsky.embed.external",
|
||||
"app.bsky.embed.record",
|
||||
"app.bsky.embed.recordWithMedia"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"langs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "language"
|
||||
},
|
||||
"maxLength": 3,
|
||||
"description": "Indicates human language of post primary text content."
|
||||
},
|
||||
"reply": {
|
||||
"ref": "#replyRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"facets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.richtext.facet",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "Annotations of text (mentions, URLs, hashtags, etc)"
|
||||
},
|
||||
"labels": {
|
||||
"refs": [
|
||||
"com.atproto.label.defs#selfLabels"
|
||||
],
|
||||
"type": "union",
|
||||
"description": "Self-label values for this post. Effectively content warnings."
|
||||
},
|
||||
"entities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "#entity",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "DEPRECATED: replaced by app.bsky.richtext.facet."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "Client-declared timestamp when this post was originally created."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Record containing a Bluesky post."
|
||||
},
|
||||
"entity": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"index",
|
||||
"type",
|
||||
"value"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"description": "Expected values are 'mention' and 'link'."
|
||||
},
|
||||
"index": {
|
||||
"ref": "#textSlice",
|
||||
"type": "ref"
|
||||
},
|
||||
"value": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Deprecated: use facets instead."
|
||||
},
|
||||
"replyRef": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"root",
|
||||
"parent"
|
||||
],
|
||||
"properties": {
|
||||
"root": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"parent": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
},
|
||||
"textSlice": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"start",
|
||||
"end"
|
||||
],
|
||||
"properties": {
|
||||
"end": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"start": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"id": "app.bsky.feed.postgate",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "tid",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"post",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"post": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference (AT-URI) to the post record."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"embeddingRules": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"#disableRule"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"maxLength": 5,
|
||||
"description": "List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
|
||||
},
|
||||
"detachedEmbeddingUris": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"maxLength": 50,
|
||||
"description": "List of AT-URIs embedding this post that the author has detached from."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository."
|
||||
},
|
||||
"disableRule": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
"description": "Disables embedding of this post."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"id": "app.bsky.feed.repost",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "tid",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"subject",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"via": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"subject": {
|
||||
"ref": "com.atproto.repo.strongRef",
|
||||
"type": "ref"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Record representing a 'repost' of an existing Bluesky post."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"id": "app.bsky.feed.searchPosts",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "BadQueryString"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"posts"
|
||||
],
|
||||
"properties": {
|
||||
"posts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#postView",
|
||||
"type": "ref"
|
||||
}
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string"
|
||||
},
|
||||
"hitsTotal": {
|
||||
"type": "integer",
|
||||
"description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [
|
||||
"q"
|
||||
],
|
||||
"properties": {
|
||||
"q": {
|
||||
"type": "string",
|
||||
"description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
|
||||
},
|
||||
"tag": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"description": "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching."
|
||||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"description": "Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching."
|
||||
},
|
||||
"lang": {
|
||||
"type": "string",
|
||||
"format": "language",
|
||||
"description": "Filter to posts in the given language. Expected to be based on post language field, though server may override language detection."
|
||||
},
|
||||
"sort": {
|
||||
"type": "string",
|
||||
"default": "latest",
|
||||
"description": "Specifies the ranking order of results.",
|
||||
"knownValues": [
|
||||
"top",
|
||||
"latest"
|
||||
]
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 25,
|
||||
"maximum": 100,
|
||||
"minimum": 1
|
||||
},
|
||||
"since": {
|
||||
"type": "string",
|
||||
"description": "Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
|
||||
},
|
||||
"until": {
|
||||
"type": "string",
|
||||
"description": "Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD)."
|
||||
},
|
||||
"author": {
|
||||
"type": "string",
|
||||
"format": "at-identifier",
|
||||
"description": "Filter to posts by the given account. Handles are resolved to DID before query-time."
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string",
|
||||
"description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
|
||||
},
|
||||
"domain": {
|
||||
"type": "string",
|
||||
"description": "Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization."
|
||||
},
|
||||
"mentions": {
|
||||
"type": "string",
|
||||
"format": "at-identifier",
|
||||
"description": "Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"id": "app.bsky.feed.searchPostsV2",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "query",
|
||||
"errors": [
|
||||
{
|
||||
"name": "BadQueryString"
|
||||
}
|
||||
],
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"posts"
|
||||
],
|
||||
"properties": {
|
||||
"posts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#postView",
|
||||
"type": "ref"
|
||||
},
|
||||
"description": "Hydrated views of matching posts."
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string",
|
||||
"description": "Cursor for the next page of results."
|
||||
},
|
||||
"hitsTotal": {
|
||||
"type": "integer",
|
||||
"description": "Estimated total number of matching hits. May be rounded or truncated."
|
||||
},
|
||||
"detectedQueryLanguages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"ja",
|
||||
"zh",
|
||||
"ko",
|
||||
"th",
|
||||
"ar"
|
||||
]
|
||||
},
|
||||
"description": "Query languages detected for CJK, Thai, or Arabic text. Empty or omitted for other scripts."
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"parameters": {
|
||||
"type": "params",
|
||||
"required": [],
|
||||
"properties": {
|
||||
"sort": {
|
||||
"type": "string",
|
||||
"description": "Ranking order for results. 'recent' sorts by recency; 'top' uses search ranking.",
|
||||
"knownValues": [
|
||||
"recent",
|
||||
"top"
|
||||
]
|
||||
},
|
||||
"urls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"description": "Include posts that link to any of these URLs."
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"default": 25,
|
||||
"maximum": 100,
|
||||
"minimum": 1,
|
||||
"description": "Maximum number of results to return."
|
||||
},
|
||||
"query": {
|
||||
"type": "string",
|
||||
"description": "Search query string. A query or at least one filter is required."
|
||||
},
|
||||
"since": {
|
||||
"type": "string",
|
||||
"description": "Include posts indexed at or after this timestamp. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
|
||||
},
|
||||
"until": {
|
||||
"type": "string",
|
||||
"description": "Include posts indexed before this timestamp. Defaults to the current time. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string",
|
||||
"description": "Optional pagination cursor."
|
||||
},
|
||||
"allTime": {
|
||||
"type": "boolean",
|
||||
"description": "Search the full index instead of the recent-post window."
|
||||
},
|
||||
"authors": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"description": "Include posts by any of these authors. Handles are resolved to DIDs before searching."
|
||||
},
|
||||
"domains": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Include posts that link to any of these domains."
|
||||
},
|
||||
"hasMedia": {
|
||||
"type": "boolean",
|
||||
"description": "Include only posts with media."
|
||||
},
|
||||
"hasVideo": {
|
||||
"type": "boolean",
|
||||
"description": "Include only posts with video."
|
||||
},
|
||||
"hashtags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"description": "Include posts tagged with any of these hashtags. Do not include the hash (#) prefix."
|
||||
},
|
||||
"mentions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"description": "Include posts that mention any of these accounts. Handles are resolved to DIDs before searching."
|
||||
},
|
||||
"following": {
|
||||
"type": "boolean",
|
||||
"description": "Include only posts from accounts followed by the viewer."
|
||||
},
|
||||
"languages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "language"
|
||||
},
|
||||
"description": "Include posts whose language matches any of these language codes."
|
||||
},
|
||||
"excludeUrls": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"description": "Exclude posts that link to any of these URLs."
|
||||
},
|
||||
"repliesOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Include only replies. Mutually exclusive with excludeReplies."
|
||||
},
|
||||
"queryLanguage": {
|
||||
"type": "string",
|
||||
"description": "Language analyzer hint for the query text. If unset, the server auto-detects when possible.",
|
||||
"knownValues": [
|
||||
"ja",
|
||||
"zh",
|
||||
"ko",
|
||||
"th",
|
||||
"ar"
|
||||
]
|
||||
},
|
||||
"threadRootUri": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Include only posts in the thread rooted at this post URI."
|
||||
},
|
||||
"embeddedAtUris": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"description": "Include posts that embed any of these AT URIs."
|
||||
},
|
||||
"excludeAuthors": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"description": "Exclude posts by any of these authors. Handles are resolved to DIDs before searching."
|
||||
},
|
||||
"excludeDomains": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Exclude posts that link to any of these domains."
|
||||
},
|
||||
"excludeReplies": {
|
||||
"type": "boolean",
|
||||
"description": "Exclude replies from results. Mutually exclusive with repliesOnly."
|
||||
},
|
||||
"replyParentUri": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Include only direct replies to this parent post URI."
|
||||
},
|
||||
"excludeHashtags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 640,
|
||||
"maxGraphemes": 64
|
||||
},
|
||||
"description": "Exclude posts tagged with any of these hashtags. Do not include the hash (#) prefix."
|
||||
},
|
||||
"excludeMentions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-identifier"
|
||||
},
|
||||
"description": "Exclude posts that mention any of these accounts. Handles are resolved to DIDs before searching."
|
||||
},
|
||||
"excludeLanguages": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "language"
|
||||
},
|
||||
"description": "Exclude posts whose language matches any of these language codes."
|
||||
},
|
||||
"excludeEmbeddedAtUris": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"description": "Exclude posts that embed any of these AT URIs."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Find posts matching a search query or filters, returning search hits for matching post records."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"id": "app.bsky.feed.sendInteractions",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "procedure",
|
||||
"input": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"interactions"
|
||||
],
|
||||
"properties": {
|
||||
"feed": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"interactions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"ref": "app.bsky.feed.defs#interaction",
|
||||
"type": "ref"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"output": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
},
|
||||
"encoding": "application/json"
|
||||
},
|
||||
"description": "Send information about interactions with feed items back to the feed generator that served them."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"id": "app.bsky.feed.threadgate",
|
||||
"defs": {
|
||||
"main": {
|
||||
"key": "tid",
|
||||
"type": "record",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"post",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"post": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "Reference (AT-URI) to the post record."
|
||||
},
|
||||
"allow": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"refs": [
|
||||
"#mentionRule",
|
||||
"#followerRule",
|
||||
"#followingRule",
|
||||
"#listRule"
|
||||
],
|
||||
"type": "union"
|
||||
},
|
||||
"maxLength": 5,
|
||||
"description": "List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"hiddenReplies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
},
|
||||
"maxLength": 300,
|
||||
"description": "List of hidden reply URIs."
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository."
|
||||
},
|
||||
"listRule": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"list"
|
||||
],
|
||||
"properties": {
|
||||
"list": {
|
||||
"type": "string",
|
||||
"format": "at-uri"
|
||||
}
|
||||
},
|
||||
"description": "Allow replies from actors on a list."
|
||||
},
|
||||
"mentionRule": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
"description": "Allow replies from actors mentioned in your post."
|
||||
},
|
||||
"followerRule": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
"description": "Allow replies from actors who follow you."
|
||||
},
|
||||
"followingRule": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
"description": "Allow replies from actors you follow."
|
||||
}
|
||||
},
|
||||
"$type": "com.atproto.lexicon.schema",
|
||||
"lexicon": 1
|
||||
}
|
||||
Reference in New Issue
Block a user