a3ce23c4cc
* Add hotness as a thread sorting option * Changeset
474 lines
14 KiB
JSON
474 lines
14 KiB
JSON
{
|
|
"lexicon": 1,
|
|
"id": "app.bsky.actor.defs",
|
|
"defs": {
|
|
"profileViewBasic": {
|
|
"type": "object",
|
|
"required": ["did", "handle"],
|
|
"properties": {
|
|
"did": { "type": "string", "format": "did" },
|
|
"handle": { "type": "string", "format": "handle" },
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxGraphemes": 64,
|
|
"maxLength": 640
|
|
},
|
|
"avatar": { "type": "string", "format": "uri" },
|
|
"associated": {
|
|
"type": "ref",
|
|
"ref": "#profileAssociated"
|
|
},
|
|
"viewer": { "type": "ref", "ref": "#viewerState" },
|
|
"labels": {
|
|
"type": "array",
|
|
"items": { "type": "ref", "ref": "com.atproto.label.defs#label" }
|
|
},
|
|
"createdAt": { "type": "string", "format": "datetime" }
|
|
}
|
|
},
|
|
"profileView": {
|
|
"type": "object",
|
|
"required": ["did", "handle"],
|
|
"properties": {
|
|
"did": { "type": "string", "format": "did" },
|
|
"handle": { "type": "string", "format": "handle" },
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxGraphemes": 64,
|
|
"maxLength": 640
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxGraphemes": 256,
|
|
"maxLength": 2560
|
|
},
|
|
"avatar": { "type": "string", "format": "uri" },
|
|
"associated": {
|
|
"type": "ref",
|
|
"ref": "#profileAssociated"
|
|
},
|
|
"indexedAt": { "type": "string", "format": "datetime" },
|
|
"createdAt": { "type": "string", "format": "datetime" },
|
|
"viewer": { "type": "ref", "ref": "#viewerState" },
|
|
"labels": {
|
|
"type": "array",
|
|
"items": { "type": "ref", "ref": "com.atproto.label.defs#label" }
|
|
}
|
|
}
|
|
},
|
|
"profileViewDetailed": {
|
|
"type": "object",
|
|
"required": ["did", "handle"],
|
|
"properties": {
|
|
"did": { "type": "string", "format": "did" },
|
|
"handle": { "type": "string", "format": "handle" },
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxGraphemes": 64,
|
|
"maxLength": 640
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxGraphemes": 256,
|
|
"maxLength": 2560
|
|
},
|
|
"avatar": { "type": "string", "format": "uri" },
|
|
"banner": { "type": "string", "format": "uri" },
|
|
"followersCount": { "type": "integer" },
|
|
"followsCount": { "type": "integer" },
|
|
"postsCount": { "type": "integer" },
|
|
"associated": {
|
|
"type": "ref",
|
|
"ref": "#profileAssociated"
|
|
},
|
|
"joinedViaStarterPack": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.graph.defs#starterPackViewBasic"
|
|
},
|
|
"indexedAt": { "type": "string", "format": "datetime" },
|
|
"createdAt": { "type": "string", "format": "datetime" },
|
|
"viewer": { "type": "ref", "ref": "#viewerState" },
|
|
"labels": {
|
|
"type": "array",
|
|
"items": { "type": "ref", "ref": "com.atproto.label.defs#label" }
|
|
},
|
|
"pinnedPost": {
|
|
"type": "ref",
|
|
"ref": "com.atproto.repo.strongRef"
|
|
}
|
|
}
|
|
},
|
|
"profileAssociated": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lists": { "type": "integer" },
|
|
"feedgens": { "type": "integer" },
|
|
"starterPacks": { "type": "integer" },
|
|
"labeler": { "type": "boolean" },
|
|
"chat": { "type": "ref", "ref": "#profileAssociatedChat" }
|
|
}
|
|
},
|
|
"profileAssociatedChat": {
|
|
"type": "object",
|
|
"required": ["allowIncoming"],
|
|
"properties": {
|
|
"allowIncoming": {
|
|
"type": "string",
|
|
"knownValues": ["all", "none", "following"]
|
|
}
|
|
}
|
|
},
|
|
"viewerState": {
|
|
"type": "object",
|
|
"description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
|
|
"properties": {
|
|
"muted": { "type": "boolean" },
|
|
"mutedByList": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.graph.defs#listViewBasic"
|
|
},
|
|
"blockedBy": { "type": "boolean" },
|
|
"blocking": { "type": "string", "format": "at-uri" },
|
|
"blockingByList": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.graph.defs#listViewBasic"
|
|
},
|
|
"following": { "type": "string", "format": "at-uri" },
|
|
"followedBy": { "type": "string", "format": "at-uri" },
|
|
"knownFollowers": {
|
|
"type": "ref",
|
|
"ref": "#knownFollowers"
|
|
}
|
|
}
|
|
},
|
|
"knownFollowers": {
|
|
"type": "object",
|
|
"description": "The subject's followers whom you also follow",
|
|
"required": ["count", "followers"],
|
|
"properties": {
|
|
"count": { "type": "integer" },
|
|
"followers": {
|
|
"type": "array",
|
|
"minLength": 0,
|
|
"maxLength": 5,
|
|
"items": {
|
|
"type": "ref",
|
|
"ref": "#profileViewBasic"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"preferences": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "union",
|
|
"refs": [
|
|
"#adultContentPref",
|
|
"#contentLabelPref",
|
|
"#savedFeedsPref",
|
|
"#savedFeedsPrefV2",
|
|
"#personalDetailsPref",
|
|
"#feedViewPref",
|
|
"#threadViewPref",
|
|
"#interestsPref",
|
|
"#mutedWordsPref",
|
|
"#hiddenPostsPref",
|
|
"#bskyAppStatePref",
|
|
"#labelersPref"
|
|
]
|
|
}
|
|
},
|
|
"adultContentPref": {
|
|
"type": "object",
|
|
"required": ["enabled"],
|
|
"properties": {
|
|
"enabled": { "type": "boolean", "default": false }
|
|
}
|
|
},
|
|
"contentLabelPref": {
|
|
"type": "object",
|
|
"required": ["label", "visibility"],
|
|
"properties": {
|
|
"labelerDid": {
|
|
"type": "string",
|
|
"description": "Which labeler does this preference apply to? If undefined, applies globally.",
|
|
"format": "did"
|
|
},
|
|
"label": { "type": "string" },
|
|
"visibility": {
|
|
"type": "string",
|
|
"knownValues": ["ignore", "show", "warn", "hide"]
|
|
}
|
|
}
|
|
},
|
|
"savedFeed": {
|
|
"type": "object",
|
|
"required": ["id", "type", "value", "pinned"],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"knownValues": ["feed", "list", "timeline"]
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
},
|
|
"pinned": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"savedFeedsPrefV2": {
|
|
"type": "object",
|
|
"required": ["items"],
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.actor.defs#savedFeed"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"savedFeedsPref": {
|
|
"type": "object",
|
|
"required": ["pinned", "saved"],
|
|
"properties": {
|
|
"pinned": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
"saved": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
"timelineIndex": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"personalDetailsPref": {
|
|
"type": "object",
|
|
"properties": {
|
|
"birthDate": {
|
|
"type": "string",
|
|
"format": "datetime",
|
|
"description": "The birth date of account owner."
|
|
}
|
|
}
|
|
},
|
|
"feedViewPref": {
|
|
"type": "object",
|
|
"required": ["feed"],
|
|
"properties": {
|
|
"feed": {
|
|
"type": "string",
|
|
"description": "The URI of the feed, or an identifier which describes the feed."
|
|
},
|
|
"hideReplies": {
|
|
"type": "boolean",
|
|
"description": "Hide replies in the feed."
|
|
},
|
|
"hideRepliesByUnfollowed": {
|
|
"type": "boolean",
|
|
"description": "Hide replies in the feed if they are not by followed users.",
|
|
"default": true
|
|
},
|
|
"hideRepliesByLikeCount": {
|
|
"type": "integer",
|
|
"description": "Hide replies in the feed if they do not have this number of likes."
|
|
},
|
|
"hideReposts": {
|
|
"type": "boolean",
|
|
"description": "Hide reposts in the feed."
|
|
},
|
|
"hideQuotePosts": {
|
|
"type": "boolean",
|
|
"description": "Hide quote posts in the feed."
|
|
}
|
|
}
|
|
},
|
|
"threadViewPref": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sort": {
|
|
"type": "string",
|
|
"description": "Sorting mode for threads.",
|
|
"knownValues": ["oldest", "newest", "most-likes", "random", "hotness"]
|
|
},
|
|
"prioritizeFollowedUsers": {
|
|
"type": "boolean",
|
|
"description": "Show followed users at the top of all replies."
|
|
}
|
|
}
|
|
},
|
|
"interestsPref": {
|
|
"type": "object",
|
|
"required": ["tags"],
|
|
"properties": {
|
|
"tags": {
|
|
"type": "array",
|
|
"maxLength": 100,
|
|
"items": { "type": "string", "maxLength": 640, "maxGraphemes": 64 },
|
|
"description": "A list of tags which describe the account owner's interests gathered during onboarding."
|
|
}
|
|
}
|
|
},
|
|
"mutedWordTarget": {
|
|
"type": "string",
|
|
"knownValues": ["content", "tag"],
|
|
"maxLength": 640,
|
|
"maxGraphemes": 64
|
|
},
|
|
"mutedWord": {
|
|
"type": "object",
|
|
"description": "A word that the account owner has muted.",
|
|
"required": ["value", "targets"],
|
|
"properties": {
|
|
"id": { "type": "string" },
|
|
"value": {
|
|
"type": "string",
|
|
"description": "The muted word itself.",
|
|
"maxLength": 10000,
|
|
"maxGraphemes": 1000
|
|
},
|
|
"targets": {
|
|
"type": "array",
|
|
"description": "The intended targets of the muted word.",
|
|
"items": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.actor.defs#mutedWordTarget"
|
|
}
|
|
},
|
|
"actorTarget": {
|
|
"type": "string",
|
|
"description": "Groups of users to apply the muted word to. If undefined, applies to all users.",
|
|
"knownValues": ["all", "exclude-following"],
|
|
"default": "all"
|
|
},
|
|
"expiresAt": {
|
|
"type": "string",
|
|
"format": "datetime",
|
|
"description": "The date and time at which the muted word will expire and no longer be applied."
|
|
}
|
|
}
|
|
},
|
|
"mutedWordsPref": {
|
|
"type": "object",
|
|
"required": ["items"],
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.actor.defs#mutedWord"
|
|
},
|
|
"description": "A list of words the account owner has muted."
|
|
}
|
|
}
|
|
},
|
|
"hiddenPostsPref": {
|
|
"type": "object",
|
|
"required": ["items"],
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": { "type": "string", "format": "at-uri" },
|
|
"description": "A list of URIs of posts the account owner has hidden."
|
|
}
|
|
}
|
|
},
|
|
"labelersPref": {
|
|
"type": "object",
|
|
"required": ["labelers"],
|
|
"properties": {
|
|
"labelers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "ref",
|
|
"ref": "#labelerPrefItem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"labelerPrefItem": {
|
|
"type": "object",
|
|
"required": ["did"],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"bskyAppStatePref": {
|
|
"description": "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.",
|
|
"type": "object",
|
|
"properties": {
|
|
"activeProgressGuide": {
|
|
"type": "ref",
|
|
"ref": "#bskyAppProgressGuide"
|
|
},
|
|
"queuedNudges": {
|
|
"description": "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.",
|
|
"type": "array",
|
|
"maxLength": 1000,
|
|
"items": { "type": "string", "maxLength": 100 }
|
|
},
|
|
"nuxs": {
|
|
"description": "Storage for NUXs the user has encountered.",
|
|
"type": "array",
|
|
"maxLength": 100,
|
|
"items": {
|
|
"type": "ref",
|
|
"ref": "app.bsky.actor.defs#nux"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"bskyAppProgressGuide": {
|
|
"description": "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.",
|
|
"type": "object",
|
|
"required": ["guide"],
|
|
"properties": {
|
|
"guide": { "type": "string", "maxLength": 100 }
|
|
}
|
|
},
|
|
"nux": {
|
|
"type": "object",
|
|
"description": "A new user experiences (NUX) storage object",
|
|
"required": ["id", "completed"],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"maxLength": 100
|
|
},
|
|
"completed": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"data": {
|
|
"description": "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.",
|
|
"type": "string",
|
|
"maxLength": 3000,
|
|
"maxGraphemes": 300
|
|
},
|
|
"expiresAt": {
|
|
"type": "string",
|
|
"format": "datetime",
|
|
"description": "The date and time at which the NUX will expire and should be considered completed."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|