dan a3ce23c4cc
Add hotness as a default thread sort option (#3082)
* Add hotness as a thread sorting option

* Changeset
2024-11-22 18:36:55 -08:00

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."
}
}
}
}
}