components: schemas: Avatar: properties: large: type: string medium: example: sai type: string small: type: string required: - small - medium - large title: Avatar type: object BlogEntry: properties: content: type: string createdAt: type: integer icon: type: string id: type: integer noreply: type: integer public: type: boolean related: type: integer replies: type: integer tags: items: type: string type: array title: type: string type: type: integer uid: type: integer updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' views: type: integer required: - id - type - uid - user - title - icon - content - tags - views - replies - createdAt - updatedAt - noreply - related - public title: BlogEntry type: object BlogPhoto: properties: createdAt: type: integer icon: type: string id: type: integer target: type: string vote: type: integer required: - id - target - icon - vote - createdAt title: BlogPhoto type: object Calendar: additionalProperties: items: properties: subject: $ref: '#/components/schemas/SlimSubject' watchers: type: integer required: - subject - watchers type: object type: array type: object CalendarItem: properties: subject: $ref: '#/components/schemas/SlimSubject' watchers: type: integer required: - subject - watchers type: object Character: properties: collectedAt: type: integer collects: type: integer comment: type: integer id: type: integer images: $ref: '#/components/schemas/PersonImages' info: type: string infobox: $ref: '#/components/schemas/Infobox' lock: type: boolean name: type: string nameCN: type: string nsfw: type: boolean redirect: type: integer role: $ref: '#/components/schemas/CharacterType' summary: type: string required: - id - name - nameCN - role - infobox - info - summary - comment - collects - lock - redirect - nsfw title: Character type: object CharacterCast: properties: person: $ref: '#/components/schemas/SlimPerson' relation: $ref: '#/components/schemas/CharacterCastType' summary: type: string required: - person - relation - summary type: object CharacterCastRevisionWikiInfo: items: properties: person: properties: id: type: integer name: type: string nameCN: type: string required: - id - name - nameCN type: object subject: properties: id: type: integer name: type: string nameCN: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - typeID - name - nameCN type: object required: - subject - person type: object type: array CharacterCastType: description: |- Character cast relation type - 0 = CV - 1 = Dub - 2 = Actor - 3 = Chinese dub - 4 = Japanese dub - 5 = English dub - 6 = Korean dub enum: - 0 - 2 - 1 - 3 - 4 - 5 - 6 type: integer x-enum-varnames: - CV - Actor - Dub - ChineseDub - JapaneseDub - EnglishDub - KoreanDub x-ms-enum: modelAsString: false name: CharacterCastType CharacterCreate: additionalProperties: false properties: img: description: base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string infobox: minLength: 1 type: string name: minLength: 1 type: string summary: type: string type: $ref: '#/components/schemas/CharacterType' required: - name - infobox - summary - type type: object CharacterEdit: additionalProperties: false properties: infobox: minLength: 1 type: string name: minLength: 1 type: string summary: type: string required: - name - infobox - summary type: object CharacterRelation: properties: character: $ref: '#/components/schemas/SlimCharacter' comment: type: string ended: type: boolean relation: $ref: '#/components/schemas/PersonRelationType' spoiler: type: boolean required: - character - relation - spoiler - ended - comment type: object CharacterRevisionWikiInfo: properties: extra: properties: img: type: string type: object infobox: type: string name: type: string summary: type: string required: - name - infobox - summary - extra type: object CharacterSearchFilter: properties: nsfw: description: |- 无权限的用户会直接忽略此字段,不会返回 R18 条目。 `null` 或者 `true` 会返回包含 R18 的所有搜索结果。 `false` 只会返回非 R18 条目。 type: boolean type: object CharacterSubject: properties: casts: items: $ref: '#/components/schemas/CharacterCast' type: array subject: $ref: '#/components/schemas/SlimSubject' type: type: integer required: - subject - casts - type type: object CharacterSubjectRelation: properties: subject: $ref: '#/components/schemas/SlimSubject' type: type: integer required: - subject - type type: object CharacterSubjectRevisionWikiInfo: items: properties: order: type: integer subject: properties: id: type: integer name: type: string nameCN: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - typeID - name - nameCN type: object type: type: integer required: - subject - type - order type: object type: array CharacterType: description: |- 角色类型 - 1 = 角色 - 2 = 机体 - 3 = 舰船 - 4 = 组织机构 enum: - 1 - 2 - 3 - 4 type: integer x-enum-varnames: - Crt - Mecha - Vessel - Org x-ms-enum: modelAsString: false name: CharacterType CharacterWikiInfo: properties: id: type: integer infobox: type: string locked: type: boolean name: type: string redirect: type: integer summary: type: string required: - id - name - infobox - summary - locked - redirect type: object CollectSubject: properties: comment: description: 评价 type: string private: description: 仅自己可见 type: boolean progress: description: |- 是否自动完成条目进度,仅在 `type` 为 `看过` 时有效,并且不会产生对应的时间线记录: - 书籍条目会检查总的话数和卷数,并更新收藏进度到最新; - 动画和三次元会标记所有正片章节为已完成,并同时更新收藏进度 type: boolean rate: description: 评分,0 表示删除评分 maximum: 10 minimum: 0 type: integer tags: items: description: 标签, 不能包含空格 type: string type: array type: $ref: '#/components/schemas/CollectionType' type: object CollectionType: description: |- 条目收藏状态 - 1 = 想看 - 2 = 看过 - 3 = 在看 - 4 = 搁置 - 5 = 抛弃 enum: - 1 - 2 - 3 - 4 - 5 type: integer x-enum-varnames: - Wish - Collect - Doing - OnHold - Dropped x-ms-enum: modelAsString: false name: CollectionType Comment: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object CommentBase: properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object CreateContent: properties: content: minLength: 1 type: string required: - content type: object CreateIndex: properties: desc: description: 目录描述 type: string private: description: 仅自己可见 type: boolean title: description: 目录标题 maxLength: 80 minLength: 1 type: string required: - title - desc title: CreateIndex type: object CreateIndexRelated: properties: award: type: string cat: $ref: '#/components/schemas/IndexRelatedCategory' comment: type: string order: type: integer sid: type: integer required: - cat - sid title: CreateIndexRelated type: object CreateReply: properties: content: minLength: 1 type: string replyTo: default: 0 description: 被回复的回复 ID, `0` 代表发送顶层回复 type: integer required: - content type: object CreateReport: properties: comment: description: 举报说明(可选) maxLength: 2000 type: string id: description: 被举报对象的 ID minimum: 1 type: integer type: $ref: '#/components/schemas/ReportType' value: $ref: '#/components/schemas/ReportReason' required: - type - id - value title: CreateReport type: object CreateTopic: properties: content: description: bbcode minLength: 1 type: string title: minLength: 1 type: string required: - title - content type: object Episode: properties: airdate: type: string collection: properties: status: $ref: '#/components/schemas/EpisodeCollectionStatus' updatedAt: type: integer required: - status type: object comment: type: integer desc: type: string disc: type: integer duration: type: string id: type: integer name: type: string nameCN: type: string sort: type: number subject: $ref: '#/components/schemas/SlimSubject' subjectID: type: integer type: $ref: '#/components/schemas/EpisodeType' required: - id - subjectID - sort - type - disc - name - nameCN - duration - airdate - comment - desc title: Episode type: object EpisodeCollectionStatus: description: |- 章节收藏状态 - 0 = 撤消/删除 - 1 = 想看 - 2 = 看过 - 3 = 抛弃 enum: - 0 - 1 - 2 - 3 type: integer x-enum-varnames: - None - Wish - Done - Dropped x-ms-enum: modelAsString: false name: EpisodeCollectionStatus EpisodeType: description: |- 话数类型 - 0 = 本篇 - 1 = 特别篇 - 2 = OP - 3 = ED - 4 = 预告/宣传/广告 - 5 = MAD - 6 = 其他 enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 type: integer x-enum-varnames: - Normal - Special - OP - ED - Pre - MAD - Other x-ms-enum: modelAsString: false name: EpisodeType EpisodeWikiInfo: properties: date: description: YYYY-MM-DD example: '2022-02-02' pattern: ^\d{4}-\d{2}-\d{2}$ type: string disc: type: number duration: example: '24:53' type: string ep: type: number id: type: integer name: type: string nameCN: type: string subjectID: type: integer summary: type: string type: $ref: '#/components/schemas/EpisodeType' required: - id - subjectID - name - nameCN - type - ep - duration - summary type: object EpsisodesEdit: properties: commitMessage: type: string episodes: items: properties: date: description: YYYY-MM-DD example: '2022-02-02' pattern: ^\d{4}-\d{2}-\d{2}$ type: string disc: type: number duration: example: '24:53' type: string ep: type: number id: type: integer name: type: string nameCN: type: string summary: type: string type: $ref: '#/components/schemas/EpisodeType' required: - id type: object type: array expectedRevision: items: properties: date: type: string duration: type: string name: type: string nameCN: type: string summary: type: string type: object type: array required: - commitMessage - episodes type: object EpsisodesNew: properties: episodes: items: properties: date: description: YYYY-MM-DD example: '2022-02-02' pattern: ^\d{4}-\d{2}-\d{2}$ type: string disc: type: number duration: example: '24:53' type: string ep: type: number name: type: string nameCN: type: string summary: type: string type: $ref: '#/components/schemas/EpisodeType' required: - ep type: object type: array required: - episodes type: object ErrorResponse: description: default error response type properties: code: type: string error: type: string message: type: string statusCode: type: integer required: - code - error - message - statusCode type: object FilterMode: description: |- 过滤模式 - all = 全站 - friends = 好友 enum: - all - friends type: string x-enum-varnames: - All - Friends x-ms-enum: modelAsString: true name: FilterMode Friend: properties: createdAt: type: integer description: type: string grade: type: integer user: $ref: '#/components/schemas/SlimUser' required: - user - grade - createdAt - description title: Friend type: object Group: properties: accessible: type: boolean cat: type: integer createdAt: type: integer creator: $ref: '#/components/schemas/SlimUser' creatorID: type: integer description: type: string icon: $ref: '#/components/schemas/Avatar' id: type: integer members: type: integer membership: $ref: '#/components/schemas/GroupMember' name: type: string nsfw: type: boolean posts: type: integer title: type: string topics: type: integer required: - id - cat - name - nsfw - title - icon - creatorID - topics - posts - members - description - accessible - createdAt title: Group type: object GroupFilterMode: description: |- 小组过滤模式 - all = 所有小组 - joined = 我加入的小组 - managed = 我管理的小组 enum: - all - joined - managed type: string x-enum-varnames: - All - Joined - Managed x-ms-enum: modelAsString: true name: GroupFilterMode GroupMember: properties: joinedAt: type: integer role: $ref: '#/components/schemas/GroupMemberRole' uid: type: integer user: $ref: '#/components/schemas/SlimUser' required: - uid - role - joinedAt title: GroupMember type: object GroupMemberRole: description: |- 小组成员角色 - -2 = 访客 - -1 = 游客 - 0 = 小组成员 - 1 = 小组长 - 2 = 小组管理员 - 3 = 禁言成员 enum: - -2 - -1 - 0 - 1 - 2 - 3 type: integer x-enum-varnames: - Visitor - Guest - Member - Creator - Moderator - Blocked x-ms-enum: modelAsString: false name: GroupMemberRole GroupSort: default: created description: |- 小组排序方式 - posts = 帖子数 - topics = 主题数 - members = 成员数 - created = 创建时间 - updated = 最新讨论 enum: - posts - topics - members - created - updated type: string GroupTopic: allOf: - $ref: '#/components/schemas/Topic' - properties: group: $ref: '#/components/schemas/SlimGroup' replies: items: $ref: '#/components/schemas/Reply' type: array required: - group - replies type: object title: GroupTopic GroupTopicFilterMode: description: |- 小组话题过滤模式 - all = 全站 - joined = 已加入 - created = 我创建的 - replied = 我回复的 enum: - all - joined - created - replied type: string x-enum-varnames: - All - Joined - Created - Replied x-ms-enum: modelAsString: true name: GroupTopicFilterMode Index: properties: award: type: integer collectedAt: type: integer collects: type: integer createdAt: type: integer desc: type: string id: type: integer private: type: boolean replies: type: integer stats: $ref: '#/components/schemas/IndexStats' title: type: string total: type: integer type: $ref: '#/components/schemas/IndexType' uid: type: integer updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - uid - type - title - desc - private - total - replies - collects - stats - award - createdAt - updatedAt title: Index type: object IndexRelated: properties: award: type: string blog: $ref: '#/components/schemas/SlimBlogEntry' cat: $ref: '#/components/schemas/IndexRelatedCategory' character: $ref: '#/components/schemas/SlimCharacter' comment: type: string createdAt: type: integer episode: $ref: '#/components/schemas/Episode' groupTopic: $ref: '#/components/schemas/GroupTopic' id: type: integer order: type: integer person: $ref: '#/components/schemas/SlimPerson' rid: type: integer sid: type: integer subject: $ref: '#/components/schemas/SlimSubject' subjectTopic: $ref: '#/components/schemas/SubjectTopic' type: type: integer required: - id - cat - rid - type - sid - order - comment - award - createdAt title: IndexRelated type: object IndexRelatedCategory: description: |- 目录关联类型 - 0 = 条目 - 1 = 角色 - 2 = 人物 - 3 = 章节 - 4 = 日志 - 5 = 小组话题 - 6 = 条目讨论 enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 type: integer x-enum-varnames: - Subject - Character - Person - Episode - Blog - GroupTopic - SubjectTopic x-ms-enum: modelAsString: false name: IndexRelatedCategory IndexStats: properties: blog: type: integer character: type: integer episode: type: integer groupTopic: type: integer person: type: integer subject: properties: anime: type: integer book: type: integer game: type: integer music: type: integer real: type: integer type: object subjectTopic: type: integer required: - subject title: IndexStats type: object IndexType: description: |- 目录类型 - 0 = 用户 - 1 = 公共 - 2 = TBA enum: - 0 - 1 - 2 type: integer x-enum-varnames: - User - Public - Award x-ms-enum: modelAsString: false name: IndexType Infobox: items: properties: key: type: string values: items: properties: k: type: string v: type: string required: - v title: InfoboxValue type: object type: array required: - key - values title: InfoboxItem type: object title: Infobox type: array InfoboxItem: properties: key: type: string values: items: properties: k: type: string v: type: string required: - v title: InfoboxValue type: object type: array required: - key - values title: InfoboxItem type: object InfoboxValue: properties: k: type: string v: type: string required: - v title: InfoboxValue type: object LoginRequestBody: example: email: treeholechan@gmail.com password: lovemeplease turnstileToken: 10000000-aaaa-bbbb-cccc-000000000001 properties: email: minLength: 1 type: string password: minLength: 1 type: string turnstileToken: minLength: 1 type: string required: - email - password - turnstileToken type: object MonoPhoto: properties: comment: type: string createdAt: type: integer creatorID: type: integer id: type: integer images: $ref: '#/components/schemas/MonoPhotoImages' lastPost: type: integer mainID: type: integer spoiler: type: boolean tags: items: type: string type: array target: type: string title: type: string type: type: integer updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - type - mainID - creatorID - target - images - title - comment - tags - spoiler - createdAt - updatedAt - lastPost title: MonoPhoto type: object MonoPhotoImages: properties: common: type: string grid: type: string large: type: string medium: type: string small: type: string required: - large - common - medium - small - grid title: MonoPhotoImages type: object Notice: properties: createdAt: type: integer id: type: integer mainID: description: 对应的 topicID, episodeID, userID ... type: integer relatedID: description: 对应的 postID ... type: integer sender: $ref: '#/components/schemas/SlimUser' title: type: string type: description: 查看 `./lib/notify.ts` _settings type: integer unread: type: boolean required: - id - type - sender - title - mainID - relatedID - createdAt - unread title: Notice type: object Permissions: properties: subjectWikiEdit: type: boolean required: - subjectWikiEdit title: Permissions type: object Person: properties: career: description: 职业 example: producer items: type: string type: array collectedAt: type: integer collects: type: integer comment: type: integer id: type: integer images: $ref: '#/components/schemas/PersonImages' info: type: string infobox: $ref: '#/components/schemas/Infobox' lock: type: boolean name: type: string nameCN: type: string nsfw: type: boolean redirect: type: integer summary: type: string type: $ref: '#/components/schemas/PersonType' required: - id - name - nameCN - type - infobox - info - career - summary - comment - collects - lock - redirect - nsfw title: Person type: object PersonCastRevisionWikiInfo: items: properties: character: properties: id: type: integer name: type: string nameCN: type: string required: - id - name - nameCN type: object subject: properties: id: type: integer name: type: string nameCN: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - typeID - name - nameCN type: object required: - subject - character type: object type: array PersonCharacter: properties: character: $ref: '#/components/schemas/SlimCharacter' relations: items: $ref: '#/components/schemas/CharacterSubjectRelation' type: array required: - character - relations type: object PersonCollect: properties: createdAt: type: integer user: $ref: '#/components/schemas/SlimUser' required: - user - createdAt type: object PersonCreate: additionalProperties: false properties: img: description: base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string infobox: minLength: 1 type: string name: minLength: 1 type: string profession: properties: actor: type: boolean artist: type: boolean illustrator: type: boolean mangaka: type: boolean producer: type: boolean seiyu: type: boolean writer: type: boolean type: object summary: type: string type: $ref: '#/components/schemas/PersonType' required: - name - infobox - summary - type type: object PersonEdit: additionalProperties: false properties: infobox: minLength: 1 type: string name: minLength: 1 type: string profession: properties: actor: type: boolean artist: type: boolean illustrator: type: boolean mangaka: type: boolean producer: type: boolean seiyu: type: boolean writer: type: boolean type: object summary: type: string required: - name - infobox - summary - profession type: object PersonImages: properties: grid: type: string large: type: string medium: type: string small: type: string required: - large - medium - small - grid title: PersonImages type: object PersonRelation: properties: comment: type: string ended: type: boolean person: $ref: '#/components/schemas/SlimPerson' relation: $ref: '#/components/schemas/PersonRelationType' spoiler: type: boolean required: - person - relation - spoiler - ended - comment type: object PersonRelationType: properties: cn: type: string desc: type: string id: type: integer primary: type: boolean skipViceVersa: type: boolean viceVersaTo: type: integer required: - id - cn - desc type: object PersonRevisionWikiInfo: properties: extra: properties: img: type: string type: object infobox: type: string name: type: string profession: properties: actor: type: boolean artist: type: boolean illustrator: type: boolean mangaka: type: boolean producer: type: boolean seiyu: type: boolean writer: type: boolean type: object summary: type: string required: - name - infobox - summary - profession - extra type: object PersonSearchFilter: properties: career: items: description: |- 职业, 可以多次出现。多值之间为 `且` 关系,用 `-` 排除职业。 支持的职业有: - producer: 制作人 - mangaka: 漫画家 - artist: 艺术家 - illustrator: 插画家 - seiyu: 声优 - writer: 编剧 - actor: 演员 example: seiyu type: string type: array type: object PersonSubjectRevisionWikiInfo: items: properties: position: type: integer subject: properties: id: type: integer name: type: string nameCN: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - typeID - name - nameCN type: object required: - subject - position type: object type: array PersonType: description: |- 人物类型 - 1 = 个人 - 2 = 公司 - 3 = 组合 enum: - 1 - 2 - 3 type: integer x-enum-varnames: - Individual - Company - Group x-ms-enum: modelAsString: false name: PersonType PersonWikiInfo: properties: id: type: integer infobox: type: string locked: type: boolean name: type: string profession: properties: actor: type: boolean artist: type: boolean illustrator: type: boolean mangaka: type: boolean producer: type: boolean seiyu: type: boolean writer: type: boolean type: object redirect: type: integer summary: type: string typeID: $ref: '#/components/schemas/PersonType' required: - id - name - typeID - infobox - summary - locked - redirect - profession type: object PersonWork: properties: positions: items: $ref: '#/components/schemas/SubjectStaffPosition' type: array subject: $ref: '#/components/schemas/SlimSubject' required: - subject - positions type: object Post: properties: content: type: string createdAt: type: integer creator: $ref: '#/components/schemas/SlimUser' creatorID: type: integer id: type: integer state: type: integer topic: $ref: '#/components/schemas/Topic' required: - id - creatorID - creator - createdAt - content - state - topic title: Post type: object Profile: properties: avatar: $ref: '#/components/schemas/Avatar' group: type: integer id: type: integer joinedAt: type: integer location: type: string nickname: type: string permissions: $ref: '#/components/schemas/Permissions' sign: type: string site: type: string username: type: string required: - id - username - nickname - avatar - sign - group - joinedAt - site - location - permissions title: Profile type: object Reaction: properties: users: items: $ref: '#/components/schemas/SimpleUser' type: array value: type: integer required: - users - value title: Reaction type: object RecentWikiChange: properties: persons: items: properties: createdAt: type: integer id: type: integer required: - id - createdAt type: object type: array subject: items: properties: createdAt: type: integer id: type: integer required: - id - createdAt type: object type: array required: - subject - persons type: object Reply: allOf: - $ref: '#/components/schemas/ReplyBase' - properties: replies: items: $ref: '#/components/schemas/ReplyBase' type: array required: - replies type: object title: Reply ReplyBase: properties: content: type: string createdAt: type: integer creator: $ref: '#/components/schemas/SlimUser' creatorID: type: integer id: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array state: type: integer required: - id - creatorID - createdAt - content - state title: ReplyBase type: object ReportReason: description: |- 举报原因 - 1 = 辱骂、人身攻击 - 2 = 刷屏、无关内容 - 3 = 政治相关 - 4 = 违法信息 - 5 = 泄露隐私 - 6 = 涉嫌刷分 - 7 = 引战 - 8 = 广告 - 9 = 剧透 - 99 = 其他 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 99 type: integer x-enum-varnames: - Abuse - Spam - Political - Illegal - Privacy - CheatScore - Flame - Advertisement - Spoiler - Other x-ms-enum: modelAsString: false name: ReportReason ReportType: description: |- 举报类型 - 6 = 用户 - 7 = 小组话题 - 8 = 小组回复 - 9 = 条目话题 - 10 = 条目回复 - 11 = 章节回复 - 12 = 角色回复 - 13 = 人物回复 - 14 = 日志 - 15 = 日志回复 - 16 = 时间线 - 17 = 时间线回复 - 18 = 目录 - 19 = 目录回复 enum: - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 type: integer x-enum-varnames: - User - GroupTopic - GroupReply - SubjectTopic - SubjectReply - EpisodeReply - CharacterReply - PersonReply - Blog - BlogReply - Timeline - TimelineReply - Index - IndexReply x-ms-enum: modelAsString: false name: ReportType RevisionHistory: properties: commitMessage: type: string createdAt: description: unix timestamp seconds type: integer creator: properties: nickname: type: string username: type: string required: - username - nickname type: object id: type: integer type: $ref: '#/components/schemas/RevisionType' required: - id - creator - type - commitMessage - createdAt type: object RevisionType: description: | 修订类型 - 1 = 条目编辑 - 103 = 条目锁定 - 104 = 条目解锁 - 11 = 条目合体 - 12 = 条目删除 - 17 = 条目关联 - 5 = 条目->角色关联 - 6 = 条目->声优关联 - 10 = 条目->人物关联 - 2 = 角色编辑 - 13 = 角色合体 - 14 = 角色删除 - 4 = 角色->条目关联 - 7 = 角色->声优关联 - 3 = 人物编辑 - 15 = 人物合体 - 16 = 人物删除 - 8 = 人物->声优关联 - 9 = 人物->条目关联 - 18 = 章节编辑 - 181 = 章节合体 - 182 = 章节移动 - 183 = 章节锁定 - 184 = 章节解锁 - 185 = 章节删除 enum: - 1 - 103 - 104 - 11 - 12 - 17 - 5 - 6 - 10 - 2 - 13 - 14 - 4 - 7 - 3 - 15 - 16 - 8 - 9 - 18 - 181 - 182 - 183 - 184 - 185 type: integer x-enum-varnames: - SubjectEdit - SubjectLock - SubjectUnlock - SubjectMerge - SubjectErase - SubjectRelation - SubjectCharacterRelation - SubjectCastRelation - SubjectPersonRelation - CharacterEdit - CharacterMerge - CharacterErase - CharacterSubjectRelation - CharacterCastRelation - PersonEdit - PersonMerge - PersonErase - PersonCastRelation - PersonSubjectRelation - EpisodeEdit - EpisodeMerge - EpisodeMove - EpisodeLock - EpisodeUnlock - EpisodeErase x-ms-enum: modelAsString: false name: RevisionType SearchCharacter: properties: filter: $ref: '#/components/schemas/CharacterSearchFilter' keyword: description: 搜索关键词 type: string required: - keyword type: object SearchPerson: properties: filter: $ref: '#/components/schemas/PersonSearchFilter' keyword: description: 搜索关键词 type: string required: - keyword type: object SearchSubject: properties: filter: $ref: '#/components/schemas/SubjectSearchFilter' keyword: description: 搜索关键词 type: string sort: $ref: '#/components/schemas/SubjectSearchSort' required: - keyword type: object SimpleUser: properties: id: type: integer nickname: type: string username: type: string required: - id - username - nickname title: SimpleUser type: object SlimBlogEntry: properties: createdAt: type: integer icon: type: string id: type: integer public: type: boolean replies: type: integer summary: type: string title: type: string type: type: integer uid: type: integer updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - type - uid - title - icon - summary - replies - public - createdAt - updatedAt title: SlimBlogEntry type: object SlimCharacter: properties: comment: type: integer id: type: integer images: $ref: '#/components/schemas/PersonImages' info: type: string lock: type: boolean name: type: string nameCN: type: string nsfw: type: boolean role: type: integer required: - id - name - nameCN - role - info - comment - lock - nsfw title: SlimCharacter type: object SlimGroup: properties: accessible: type: boolean createdAt: type: integer creatorID: type: integer icon: $ref: '#/components/schemas/Avatar' id: type: integer members: type: integer name: type: string nsfw: type: boolean title: type: string required: - id - name - nsfw - title - icon - creatorID - members - accessible - createdAt title: SlimGroup type: object SlimIndex: properties: createdAt: type: integer id: type: integer private: type: boolean stats: $ref: '#/components/schemas/IndexStats' title: type: string total: type: integer type: $ref: '#/components/schemas/IndexType' uid: type: integer updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - uid - type - title - private - total - stats - createdAt - updatedAt title: SlimIndex type: object SlimPerson: properties: career: description: 职业 example: producer items: type: string type: array comment: type: integer id: type: integer images: $ref: '#/components/schemas/PersonImages' info: type: string lock: type: boolean name: type: string nameCN: type: string nsfw: type: boolean type: type: integer required: - id - name - nameCN - type - info - career - comment - lock - nsfw title: SlimPerson type: object SlimSubject: example: id: 8 images: common: https://lain.bgm.tv/pic/cover/c/c9/f0/8_wK0z3.jpg grid: https://lain.bgm.tv/pic/cover/g/c9/f0/8_wK0z3.jpg large: https://lain.bgm.tv/pic/cover/l/c9/f0/8_wK0z3.jpg medium: https://lain.bgm.tv/pic/cover/m/c9/f0/8_wK0z3.jpg small: https://lain.bgm.tv/pic/cover/s/c9/f0/8_wK0z3.jpg locked: false metaTags: [] name: コードギアス 反逆のルルーシュR2 nameCN: Code Geass 反叛的鲁路修R2 nsfw: false type: 2 properties: id: type: integer images: $ref: '#/components/schemas/SubjectImages' info: type: string interest: $ref: '#/components/schemas/SlimSubjectInterest' locked: type: boolean metaTags: items: type: string type: array name: type: string nameCN: type: string nsfw: type: boolean rating: $ref: '#/components/schemas/SubjectRating' type: $ref: '#/components/schemas/SubjectType' required: - id - name - nameCN - type - info - metaTags - rating - locked - nsfw title: SlimSubject type: object SlimSubjectInterest: properties: comment: type: string id: type: integer rate: type: integer tags: items: type: string type: array type: $ref: '#/components/schemas/CollectionType' updatedAt: type: integer required: - id - rate - type - comment - tags - updatedAt title: SlimSubjectInterest type: object SlimUser: properties: avatar: $ref: '#/components/schemas/Avatar' group: type: integer id: example: 1 type: integer isFriend: description: Whether the authenticated user has added this user as a friend; false when the endpoint does not populate viewer friendship type: boolean joinedAt: type: integer nickname: example: Sai🖖 type: string sign: type: string username: example: sai type: string required: - id - username - nickname - avatar - group - sign - joinedAt - isFriend title: SlimUser type: object Subject: example: airtime: date: '2008-04-06' month: 4 weekday: 7 year: 2008 collection: '1': 622 '2': 13216 '3': 147 '4': 224 '5': 115 eps: 25 id: 8 images: common: https://lain.bgm.tv/pic/cover/c/c9/f0/8_wK0z3.jpg grid: https://lain.bgm.tv/pic/cover/g/c9/f0/8_wK0z3.jpg large: https://lain.bgm.tv/pic/cover/l/c9/f0/8_wK0z3.jpg medium: https://lain.bgm.tv/pic/cover/m/c9/f0/8_wK0z3.jpg small: https://lain.bgm.tv/pic/cover/s/c9/f0/8_wK0z3.jpg infobox: Copyright: - v: (C)2006 SUNRISE inc./MBS 中文名: - v: Code Geass 反叛的鲁路修R2 人物原案: - v: CLAMP 人物设定: - v: 木村貴宏 其他: - v: '' 其他电视台: - v: '' 别名: - v: 叛逆的鲁路修R2 - v: 'Code Geass: Hangyaku no Lelouch R2' - v: 叛逆的勒鲁什R2 - v: 叛逆的鲁鲁修R2 - v: コードギアス 反逆のルルーシュR2 - v: 'Code Geass: Lelouch of the Rebellion R2' - v: 叛逆的勒路什R2 动画制作: - v: サンライズ 官方网站: - v: https://www.geass.jp/r2/ 导演: - v: 谷口悟朗 摄影监督: - v: 大矢創太 播放电视台: - v: 每日放送 播放结束: - v: 2008年9月28日 放送开始: - v: 2008年4月6日 放送星期: - v: '' 系列构成: - v: 大河内一楼 美术监督: - v: 菱沼由典 色彩设计: - v: 岩沢れい子 话数: - v: '25' 音乐: - v: 中川幸太郎、黒石ひとみ 音乐制作: - v: AUDIO PLANNING U 音响监督: - v: 浦上靖夫、井澤基 locked: false metaTags: [] name: コードギアス 反逆のルルーシュR2 nameCN: Code Geass 反叛的鲁路修R2 nsfw: false platform: alias: tv enableHeader: true id: 1 order: 0 type: TV typeCN: TV wikiTpl: TVAnime rating: count: - 44 - 15 - 32 - 66 - 145 - 457 - 1472 - 3190 - 2640 - 1377 score: 8.19 total: 9438 redirect: 0 series: false seriesEntry: 0 summary: >-   “东京决战”一年后,布里塔尼亚少年鲁路修在11区(原日本国)过着平凡的学生生活。但是,鲁路修与弟弟罗洛的一次出行,遇到了黑色骑士团的余党。在与少女C.C再次结成契约之后,尘封的记忆摆在了鲁路修的面前。 type: 2 volumes: 0 properties: airtime: $ref: '#/components/schemas/SubjectAirtime' collection: $ref: '#/components/schemas/SubjectCollection' eps: type: integer id: type: integer images: $ref: '#/components/schemas/SubjectImages' info: type: string infobox: $ref: '#/components/schemas/Infobox' interest: $ref: '#/components/schemas/SubjectInterest' locked: type: boolean metaTags: items: type: string type: array name: type: string nameCN: type: string nsfw: type: boolean platform: $ref: '#/components/schemas/SubjectPlatform' rating: $ref: '#/components/schemas/SubjectRating' redirect: type: integer series: type: boolean seriesEntry: type: integer summary: type: string tags: items: $ref: '#/components/schemas/SubjectTag' type: array type: $ref: '#/components/schemas/SubjectType' volumes: type: integer required: - airtime - collection - eps - id - infobox - info - metaTags - locked - name - nameCN - nsfw - platform - rating - redirect - series - seriesEntry - summary - type - volumes - tags title: Subject type: object SubjectAirtime: properties: date: type: string month: type: integer weekday: type: integer year: type: integer required: - date - month - weekday - year title: SubjectAirtime type: object SubjectBrowseSort: default: rank description: |- 条目浏览排序方式 - rank = 排名 - trends = 热度 - collects = 收藏数 - date = 发布日期 - title = 标题 enum: - rank - trends - collects - date - title type: string x-enum-varnames: - Rank - Trends - Collects - Date - Title x-ms-enum: modelAsString: true name: SubjectBrowseSort SubjectCharacter: properties: casts: items: $ref: '#/components/schemas/CharacterCast' type: array character: $ref: '#/components/schemas/SlimCharacter' order: type: integer type: type: integer required: - character - casts - type - order type: object SubjectCharacterRevisionWikiInfo: items: properties: character: properties: id: type: integer name: type: string nameCN: type: string required: - id - name - nameCN type: object order: type: integer type: type: integer required: - character - type - order type: object type: array SubjectCollect: properties: interest: $ref: '#/components/schemas/SlimSubjectInterest' user: $ref: '#/components/schemas/SlimUser' required: - user - interest title: SubjectCollect type: object SubjectCollection: additionalProperties: type: integer title: SubjectCollection type: object SubjectEdit: example: infobox: |- {{Infobox animanga/TVAnime |中文名= 沙盒 |别名={ } |话数= 7 |放送开始= 0000-10-06 |放送星期= |官方网站= |播放电视台= |其他电视台= |播放结束= |其他= |Copyright= |平台={ [龟壳] [Xbox Series S] [Xbox Series X] [Xbox Series X/S] [PC] [Xbox Series X|S] } }} name: 沙盒 nsfw: false platform: 0 summary: |- 本条目是一个沙盒,可以用于尝试bgm功能。 普通维基人可以随意编辑条目信息以及相关关联查看编辑效果,但是请不要完全删除沙盒说明并且不要关联非沙盒条目/人物/角色。 https://bgm.tv/group/topic/366812#post_1923517 properties: date: example: '0000-00-00' pattern: ^\d{4}-\d{2}-\d{2}$ type: string infobox: minLength: 1 type: string metaTags: items: type: string type: array name: minLength: 1 type: string nsfw: type: boolean platform: type: integer series: type: boolean summary: type: string required: - name - infobox - platform - nsfw - metaTags - summary type: object SubjectImages: properties: common: type: string grid: type: string large: type: string medium: type: string small: type: string required: - large - common - medium - small - grid title: SubjectImages type: object SubjectInterest: properties: comment: type: string epStatus: type: integer id: type: integer private: type: boolean rate: type: integer tags: items: type: string type: array type: $ref: '#/components/schemas/CollectionType' updatedAt: type: integer volStatus: type: integer required: - id - rate - type - comment - tags - epStatus - volStatus - private - updatedAt title: SubjectInterest type: object SubjectInterestComment: properties: comment: type: string id: type: integer rate: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array type: $ref: '#/components/schemas/CollectionType' updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - user - type - rate - comment - updatedAt title: SubjectInterestComment type: object SubjectNew: properties: date: example: '0000-00-00' pattern: ^\d{4}-\d{2}-\d{2}$ type: string infobox: minLength: 1 type: string metaTags: items: type: string type: array name: minLength: 1 type: string nsfw: type: boolean platform: type: integer series: type: boolean summary: type: string type: $ref: '#/components/schemas/SubjectType' required: - name - type - platform - infobox - nsfw - metaTags - summary type: object SubjectPersonRevisionWikiInfo: items: properties: person: properties: id: type: integer name: type: string nameCN: type: string required: - id - name - nameCN type: object position: type: integer required: - person - position type: object type: array SubjectPlatform: properties: alias: type: string enableHeader: type: boolean id: type: integer order: type: integer searchString: type: string sortKeys: items: type: string type: array type: type: string typeCN: type: string wikiTpl: type: string required: - id - type - typeCN - alias title: SubjectPlatform type: object SubjectPosition: properties: position: $ref: '#/components/schemas/SubjectStaffPositionType' staffs: items: $ref: '#/components/schemas/SubjectPositionStaff' type: array required: - position - staffs type: object SubjectPositionStaff: properties: appearEps: type: string person: $ref: '#/components/schemas/SlimPerson' summary: type: string required: - person - summary - appearEps type: object SubjectRating: properties: count: items: type: integer type: array rank: type: integer score: type: number total: type: integer required: - rank - count - score - total title: SubjectRating type: object SubjectRec: properties: count: type: integer sim: type: number subject: $ref: '#/components/schemas/SlimSubject' required: - subject - sim - count title: SubjectRec type: object SubjectRelation: properties: order: type: integer relation: $ref: '#/components/schemas/SubjectRelationType' subject: $ref: '#/components/schemas/SlimSubject' required: - subject - relation - order type: object SubjectRelationRevisionWikiInfo: items: properties: order: type: integer subject: properties: id: type: integer name: type: string nameCN: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - typeID - name - nameCN type: object type: type: integer required: - subject - type - order type: object type: array SubjectRelationType: properties: cn: type: string desc: type: string en: type: string id: type: integer jp: type: string required: - id - en - cn - jp - desc type: object SubjectReview: properties: entry: $ref: '#/components/schemas/SlimBlogEntry' id: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - user - entry title: SubjectReview type: object SubjectRevisionWikiInfo: properties: id: type: integer infobox: type: string metaTags: items: type: string type: array name: type: string summary: type: string required: - id - name - infobox - metaTags - summary type: object SubjectSearchFilter: properties: date: items: description: 播出日期/发售日期,日期必需为 YYYY-MM-DD 格式。多值之间为 `且` 关系。 example: '>=2020-07-01' type: string type: array metaTags: items: description: 公共标签。多个值之间为 `且` 关系。可以用 `-` 排除标签。比如 `-科幻` 可以排除科幻标签。 example: 童年 type: string type: array nsfw: description: |- 无权限的用户会直接忽略此字段,不会返回 R18 条目。 `null` 或者 `true` 会返回包含 R18 的所有搜索结果。 `false` 只会返回非 R18 条目。 type: boolean rank: items: description: 用于搜索指定排名的条目,多值之间为 `且` 关系。 example: '>10' type: string type: array rating: items: description: 用于搜索指定评分的条目,多值之间为 `且` 关系。 example: '>=6' type: string type: array tags: items: description: 标签,可以多次出现。多值之间为 `且` 关系。 example: 童年 type: string type: array type: items: $ref: '#/components/schemas/SubjectType' type: array type: object SubjectSearchSort: default: match description: |- 条目搜索排序方式 - match = 匹配程度 - heat = 收藏人数 - rank = 排名由高到低 - score = 评分 enum: - match - heat - rank - score type: string x-enum-varnames: - Match - Heat - Rank - Score x-ms-enum: modelAsString: true name: SubjectSearchSort SubjectStaff: properties: positions: items: $ref: '#/components/schemas/SubjectStaffPosition' type: array staff: $ref: '#/components/schemas/SlimPerson' required: - staff - positions type: object SubjectStaffPosition: properties: appearEps: type: string summary: type: string type: $ref: '#/components/schemas/SubjectStaffPositionType' required: - type - summary - appearEps type: object SubjectStaffPositionType: properties: cn: type: string en: type: string id: type: integer jp: type: string required: - id - en - cn - jp type: object SubjectTag: properties: count: type: integer name: type: string required: - name - count title: SubjectTag type: object SubjectTopic: allOf: - $ref: '#/components/schemas/Topic' - properties: replies: items: $ref: '#/components/schemas/Reply' type: array subject: $ref: '#/components/schemas/SlimSubject' required: - subject - replies type: object title: SubjectTopic SubjectType: description: |- 条目类型 - 1 = 书籍 - 2 = 动画 - 3 = 音乐 - 4 = 游戏 - 6 = 三次元 没有 5 enum: - 1 - 2 - 3 - 4 - 6 type: integer x-enum-varnames: - Book - Anime - Music - Game - Real x-ms-enum: modelAsString: false name: SubjectType SubjectWikiInfo: properties: availablePlatform: items: $ref: '#/components/schemas/WikiPlatform' type: array id: type: integer infobox: type: string locked: type: boolean metaTags: items: type: string type: array name: type: string nsfw: type: boolean platform: type: integer redirect: type: integer series: type: boolean summary: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - name - typeID - infobox - locked - redirect - platform - availablePlatform - metaTags - summary - nsfw type: object Timeline: properties: batch: type: boolean cat: $ref: '#/components/schemas/TimelineCat' createdAt: type: integer id: type: integer memo: $ref: '#/components/schemas/TimelineMemo' reactions: items: $ref: '#/components/schemas/Reaction' type: array replies: type: integer source: $ref: '#/components/schemas/TimelineSource' type: type: integer uid: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - uid - cat - type - memo - batch - source - replies - createdAt title: Timeline type: object TimelineCat: description: |- 时间线类型 - 1 = 日常行为 - 2 = 维基操作 - 3 = 收藏条目 - 4 = 收视进度 - 5 = 状态 - 6 = 日志 - 7 = 目录 - 8 = 人物 - 9 = 天窗 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 type: integer x-enum-varnames: - Daily - Wiki - Subject - Progress - Status - Blog - Index - Mono - Doujin x-ms-enum: modelAsString: false name: TimelineCat TimelineMemo: properties: blog: $ref: '#/components/schemas/SlimBlogEntry' daily: properties: groups: items: $ref: '#/components/schemas/SlimGroup' type: array users: items: $ref: '#/components/schemas/SlimUser' type: array type: object index: $ref: '#/components/schemas/SlimIndex' mono: properties: characters: items: $ref: '#/components/schemas/SlimCharacter' type: array persons: items: $ref: '#/components/schemas/SlimPerson' type: array required: - characters - persons type: object progress: properties: batch: properties: epsTotal: type: string epsUpdate: type: integer subject: $ref: '#/components/schemas/SlimSubject' volsTotal: type: string volsUpdate: type: integer required: - epsTotal - volsTotal - subject type: object single: properties: episode: $ref: '#/components/schemas/Episode' subject: $ref: '#/components/schemas/SlimSubject' required: - episode - subject type: object type: object status: properties: nickname: properties: after: type: string before: type: string required: - before - after type: object sign: type: string tsukkomi: type: string type: object subject: items: properties: collectID: type: integer comment: type: string rate: type: number subject: $ref: '#/components/schemas/SlimSubject' required: - subject - comment type: object type: array wiki: properties: subject: $ref: '#/components/schemas/SlimSubject' type: object title: TimelineMemo type: object TimelineSource: properties: name: type: string url: type: string required: - name title: TimelineSource type: object Topic: properties: createdAt: description: 发帖时间,unix time stamp in seconds type: integer creator: $ref: '#/components/schemas/SlimUser' creatorID: type: integer display: type: integer id: type: integer parentID: description: 小组/条目ID type: integer replyCount: type: integer state: type: integer title: type: string updatedAt: description: 最后回复时间,unix time stamp in seconds type: integer required: - id - title - creatorID - parentID - replyCount - createdAt - updatedAt - state - display title: Topic type: object TrendingSubject: properties: count: type: integer subject: $ref: '#/components/schemas/SlimSubject' required: - subject - count type: object TurnstileToken: properties: turnstileToken: description: >- 需要 [turnstile](https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/) next.bgm.tv 域名对应的 site-key 为 `0x4AAAAAAABkMYinukE8nzYS` dev.bgm38.tv 域名使用测试用的 site-key `1x00000000000000000000AA` type: string required: - turnstileToken type: object UpdateContent: properties: content: minLength: 1 type: string required: - content type: object UpdateEpisodeProgress: properties: batch: description: 是否批量更新(看到当前章节), 批量更新时 type 无效 type: boolean type: $ref: '#/components/schemas/EpisodeCollectionStatus' type: object UpdateIndex: properties: desc: description: 目录描述 type: string private: description: 仅自己可见 type: boolean title: description: 目录标题 maxLength: 80 minLength: 1 type: string title: UpdateIndex type: object UpdateIndexRelated: properties: comment: type: string order: type: integer required: - order - comment title: UpdateIndexRelated type: object UpdateSubjectProgress: properties: epStatus: description: 书籍条目章节进度 minimum: 0 type: integer volStatus: description: 书籍条目卷数进度 minimum: 0 type: integer type: object UpdateTopic: properties: content: description: bbcode minLength: 1 type: string title: minLength: 1 type: string required: - title - content type: object User: properties: avatar: $ref: '#/components/schemas/Avatar' bio: type: string group: type: integer homepage: $ref: '#/components/schemas/UserHomepage' id: example: 1 type: integer isFriend: description: Whether the authenticated user has added this user as a friend; false when unauthenticated type: boolean joinedAt: type: integer location: type: string networkServices: items: properties: account: type: string color: type: string name: type: string title: type: string url: type: string required: - name - title - url - color - account title: UserNetworkService type: object type: array nickname: example: Sai🖖 type: string sign: type: string site: type: string stats: $ref: '#/components/schemas/UserStats' username: example: sai type: string required: - id - username - nickname - avatar - group - joinedAt - sign - site - location - bio - networkServices - homepage - stats - isFriend title: User type: object UserCharacterContribution: properties: characterID: type: integer commitMessage: type: string createdAt: description: unix timestamp seconds type: integer id: type: integer name: type: string type: description: 2 = 角色编辑 type: integer required: - id - type - characterID - name - commitMessage - createdAt type: object UserHomepage: properties: left: items: $ref: '#/components/schemas/UserHomepageSection' type: array right: items: $ref: '#/components/schemas/UserHomepageSection' type: array required: - left - right title: UserHomepage type: object UserHomepageSection: description: 用户时光机板块 enum: - anime - game - book - music - real - mono - blog - friend - group - index type: string x-enum-varnames: - Anime - Game - Book - Music - Real - Mono - Blog - Friend - Group - Index x-ms-enum: modelAsString: true name: UserHomepageSection UserIndexStats: properties: collect: type: integer create: type: integer required: - create - collect title: UserIndexStats type: object UserMonoCollectionStats: properties: character: type: integer person: type: integer required: - character - person title: UserMonoCollectionStats type: object UserNetworkService: properties: account: type: string color: type: string name: type: string title: type: string url: type: string required: - name - title - url - color - account title: UserNetworkService type: object UserPersonContribution: properties: commitMessage: type: string createdAt: description: unix timestamp seconds type: integer id: type: integer name: type: string personID: type: integer type: description: 3 = 人物编辑,15 = 合并,16 = 删除 type: integer required: - id - type - personID - name - commitMessage - createdAt type: object UserStats: properties: blog: type: integer friend: type: integer group: type: integer index: $ref: '#/components/schemas/UserIndexStats' mono: $ref: '#/components/schemas/UserMonoCollectionStats' subject: $ref: '#/components/schemas/UserSubjectCollectionStats' required: - subject - mono - blog - friend - group - index title: UserStats type: object UserSubjectCollectionStats: additionalProperties: additionalProperties: type: integer type: object title: UserSubjectCollectionStats type: object UserSubjectContribution: properties: commitMessage: type: string createdAt: description: unix timestamp seconds type: integer id: type: integer name: type: string subjectID: type: integer type: description: 修改类型。`1` 正常修改, `11` 合并,`103` 锁定/解锁 `104` 未知 type: integer required: - id - type - subjectID - name - commitMessage - createdAt type: object WikiPlatform: properties: id: type: integer text: type: string wiki_tpl: type: string required: - id - text type: object securitySchemes: CookiesSession: description: 使用 [login](#/auth/login) 调用 API 登录,或者 使用 [demo](/demo/login) 登录 in: cookie name: chiiNextSessionID type: apiKey HTTPBearer: description: 使用 [demo](/demo/login) 登录后创建个人令牌 scheme: Bearer type: http info: description: >- 关于订阅通知的 socket.io 相关的文档在 title: bangumi private api version: 2026-07-06-9db6475 openapi: 3.0.3 paths: /p1/blocklist: get: operationId: getBlocklist responses: '200': content: application/json: schema: properties: blocklist: items: type: integer type: array required: - blocklist type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的绝交用户列表 tags: - relationship /p1/blocklist/{username}: delete: operationId: removeUserFromBlocklist parameters: - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: blocklist: items: type: integer type: array required: - blocklist type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消与用户绝交 tags: - relationship put: operationId: addUserToBlocklist parameters: - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: blocklist: items: type: integer type: array required: - blocklist type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 与用户绝交 tags: - relationship /p1/blogs/-/comments/{commentID}: delete: operationId: deleteBlogComment parameters: - in: path name: commentID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除日志的吐槽 tags: - blog put: operationId: updateBlogComment parameters: - in: path name: commentID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑日志的吐槽 tags: - blog /p1/blogs/{entryID}: get: operationId: getBlogEntry parameters: - in: path name: entryID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/BlogEntry' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取日志详情 tags: - blog /p1/blogs/{entryID}/comments: get: operationId: getBlogComments parameters: - in: path name: entryID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取日志的吐槽箱 tags: - blog post: operationId: createBlogComment parameters: - in: path name: entryID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建日志的吐槽 tags: - blog /p1/blogs/{entryID}/photos: get: operationId: getBlogPhotos parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: entryID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/BlogPhoto' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取日志的图片 tags: - blog /p1/blogs/{entryID}/subjects: get: operationId: getBlogRelatedSubjects parameters: - in: path name: entryID required: true schema: type: integer responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/SlimSubject' type: array description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取日志的关联条目 tags: - blog /p1/calendar: get: operationId: getCalendar responses: '200': content: application/json: schema: $ref: '#/components/schemas/Calendar' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取每日放送 tags: - calendar /p1/characters/-/comments/{commentID}: delete: operationId: deleteCharacterComment parameters: - in: path name: commentID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除角色的吐槽 tags: - character put: operationId: updateCharacterComment parameters: - in: path name: commentID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑角色的吐槽 tags: - character /p1/characters/{characterID}: get: operationId: getCharacter parameters: - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Character' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色 tags: - character /p1/characters/{characterID}/casts: get: operationId: getCharacterCasts parameters: - in: query name: subjectType required: false schema: $ref: '#/components/schemas/SubjectType' - description: '角色出场类型: 主角,配角,客串' in: query name: type required: false schema: type: integer - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CharacterSubject' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色出演作品 tags: - character /p1/characters/{characterID}/collects: get: operationId: getCharacterCollects parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/PersonCollect' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色的收藏用户 tags: - character /p1/characters/{characterID}/comments: get: operationId: getCharacterComments parameters: - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色的吐槽箱 tags: - character post: operationId: createCharacterComment parameters: - in: path name: characterID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建角色的吐槽 tags: - character /p1/characters/{characterID}/indexes: get: operationId: getCharacterIndexes parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimIndex' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色关联的目录 tags: - character /p1/characters/{characterID}/photos: get: operationId: getCharacterPhotos parameters: - description: max 100 in: query name: limit required: false schema: default: 24 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/MonoPhoto' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色相册列表 tags: - character /p1/characters/{characterID}/photos/preview: get: operationId: getCharacterPhotoPreview parameters: - description: max 20 in: query name: limit required: false schema: default: 6 maximum: 20 minimum: 1 type: integer - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/MonoPhoto' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色首页相册预览 tags: - character /p1/characters/{characterID}/photos/{photoID}: get: operationId: getCharacterPhoto parameters: - in: path name: characterID required: true schema: type: integer - in: path name: photoID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/MonoPhoto' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色相册图片 tags: - character /p1/characters/{characterID}/photos/{photoID}/comments: get: operationId: getCharacterPhotoComments parameters: - in: path name: characterID required: true schema: type: integer - in: path name: photoID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色相册图片的评论 tags: - character post: operationId: createCharacterPhotoComment parameters: - in: path name: characterID required: true schema: type: integer - in: path name: photoID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建角色相册图片的评论 tags: - character /p1/characters/{characterID}/relations: get: operationId: getCharacterRelations parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CharacterRelation' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色关联角色 tags: - character /p1/clear-notify: post: description: |- 标记通知为已读 不传id时会清空所有未读通知 operationId: clearNotice requestBody: content: application/json: examples: ClearAll: value: {} ClearSome: value: id: - 1 - 2 schema: properties: id: items: type: integer type: array type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 标记通知为已读 tags: - misc /p1/collections/characters: get: operationId: getMyCharacterCollections parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Character' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的角色收藏 tags: - collection /p1/collections/characters/{characterID}: delete: operationId: deleteCharacterCollection parameters: - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除角色收藏 tags: - collection put: operationId: addCharacterCollection parameters: - in: path name: characterID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 新增角色收藏 tags: - collection /p1/collections/episodes/{episodeID}: patch: operationId: updateEpisodeProgress parameters: - in: path name: episodeID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateEpisodeProgress' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 更新章节进度 tags: - collection /p1/collections/indexes: get: operationId: getMyIndexCollections parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Index' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的目录收藏 tags: - collection /p1/collections/indexes/{indexID}: delete: operationId: deleteIndexCollection parameters: - in: path name: indexID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除目录收藏 tags: - collection put: operationId: addIndexCollection parameters: - in: path name: indexID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 新增目录收藏 tags: - collection /p1/collections/persons: get: operationId: getMyPersonCollections parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Person' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的人物收藏 tags: - collection /p1/collections/persons/{personID}: delete: operationId: deletePersonCollection parameters: - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除人物收藏 tags: - collection put: operationId: addPersonCollection parameters: - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 新增人物收藏 tags: - collection /p1/collections/subjects: get: operationId: getMySubjectCollections parameters: - in: query name: subjectType required: false schema: $ref: '#/components/schemas/SubjectType' - in: query name: type required: false schema: $ref: '#/components/schemas/CollectionType' - description: 起始时间戳 in: query name: since required: false schema: minimum: 0 type: integer - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Subject' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的条目收藏 tags: - collection /p1/collections/subjects/{subjectID}: patch: operationId: updateSubjectProgress parameters: - in: path name: subjectID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateSubjectProgress' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 更新条目进度 tags: - collection put: operationId: updateSubjectCollection parameters: - in: path name: subjectID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/CollectSubject' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 新增或修改条目收藏 tags: - collection /p1/debug: get: description: debug 路由 operationId: debug responses: '200': content: application/json: schema: {} description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: debug /p1/episodes/-/comments/{commentID}: delete: operationId: deleteEpisodeComment parameters: - in: path name: commentID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除条目的章节吐槽 tags: - episode put: operationId: updateEpisodeComment parameters: - in: path name: commentID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑条目的章节吐槽 tags: - episode /p1/episodes/-/comments/{commentID}/like: delete: operationId: unlikeEpisodeComment parameters: - in: path name: commentID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消条目的章节吐槽点赞 tags: - episode put: operationId: likeEpisodeComment parameters: - in: path name: commentID required: true schema: type: integer requestBody: content: application/json: schema: properties: value: type: integer required: - value type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 给条目的章节吐槽点赞 tags: - episode /p1/episodes/{episodeID}: get: operationId: getEpisode parameters: - in: path name: episodeID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Episode' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取章节信息 tags: - episode /p1/episodes/{episodeID}/comments: get: operationId: getEpisodeComments parameters: - in: path name: episodeID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: 获取条目的章节吐槽箱 tags: - episode post: operationId: createEpisodeComment parameters: - in: path name: episodeID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建条目的章节吐槽 tags: - episode /p1/followers: get: operationId: getMyFollowers parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Friend' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的关注者列表 tags: - relationship /p1/friendlist: get: operationId: getFriendlist responses: '200': content: application/json: schema: properties: friendlist: items: type: integer type: array required: - friendlist type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的好友 ID 列表 tags: - relationship /p1/friends: get: operationId: getMyFriends parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Friend' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取当前用户的好友列表 tags: - relationship /p1/friends/{username}: delete: operationId: removeFriend parameters: - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消好友 tags: - relationship put: operationId: addFriend parameters: - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 添加好友 tags: - relationship /p1/groups: get: operationId: getGroups parameters: - in: query name: mode required: false schema: $ref: '#/components/schemas/GroupFilterMode' - in: query name: sort required: true schema: $ref: '#/components/schemas/GroupSort' - in: query name: limit required: false schema: default: 20 maximum: 100 type: integer - in: query name: offset required: false schema: default: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimGroup' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取小组列表 tags: - group /p1/groups/-/posts/{postID}: delete: operationId: deleteGroupPost parameters: - in: path name: postID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除小组话题回复 tags: - topic get: operationId: getGroupPost parameters: - in: path name: postID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Post' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: 获取小组话题回复详情 tags: - topic put: operationId: editGroupPost parameters: - in: path name: postID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑小组话题回复 tags: - topic /p1/groups/-/posts/{postID}/like: delete: operationId: unlikeGroupPost parameters: - in: path name: postID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消小组话题回复点赞 tags: - topic put: operationId: likeGroupPost parameters: - in: path name: postID required: true schema: type: integer requestBody: content: application/json: schema: properties: value: type: integer required: - value type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 给小组话题回复点赞 tags: - topic /p1/groups/-/topics: get: operationId: getRecentGroupTopics parameters: - in: query name: mode required: true schema: $ref: '#/components/schemas/GroupTopicFilterMode' - in: query name: limit required: false schema: default: 20 maximum: 100 type: integer - in: query name: offset required: false schema: default: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GroupTopic' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取最新的小组话题 tags: - group /p1/groups/-/topics/{topicID}: get: operationId: getGroupTopic parameters: - in: path name: topicID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/GroupTopic' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取小组话题详情 tags: - topic put: description: 编辑小组话题 operationId: editGroupTopic parameters: - in: path name: topicID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTopic' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - topic /p1/groups/-/topics/{topicID}/replies: post: operationId: createGroupReply parameters: - in: path name: topicID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建小组话题回复 tags: - topic /p1/groups/{groupName}: get: operationId: getGroup parameters: - in: path name: groupName required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Group' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取小组详情 tags: - group /p1/groups/{groupName}/members: get: operationId: getGroupMembers parameters: - in: query name: role required: false schema: $ref: '#/components/schemas/GroupMemberRole' - in: query name: limit required: false schema: default: 20 maximum: 100 type: integer - in: query name: offset required: false schema: default: 0 type: integer - in: path name: groupName required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GroupMember' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取小组成员列表 tags: - group /p1/groups/{groupName}/topics: get: operationId: getGroupTopics parameters: - in: query name: limit required: false schema: default: 20 maximum: 100 type: integer - in: query name: offset required: false schema: default: 0 type: integer - in: path name: groupName required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Topic' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取小组话题列表 tags: - group post: operationId: createGroupTopic parameters: - in: path name: groupName required: true schema: minLength: 1 type: string requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateTopic' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new topic id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建小组话题 tags: - group /p1/indexes: post: operationId: createIndex requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateIndex' required: true responses: '200': content: application/json: schema: properties: id: type: integer required: - id type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建目录 tags: - index /p1/indexes/-/comments/{commentID}: delete: operationId: deleteIndexComment parameters: - in: path name: commentID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除目录的评论 tags: - index put: operationId: updateIndexComment parameters: - in: path name: commentID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑目录的评论 tags: - index /p1/indexes/{indexID}: delete: operationId: deleteIndex parameters: - in: path name: indexID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除目录 tags: - index get: operationId: getIndex parameters: - in: path name: indexID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Index' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取目录详情 tags: - index patch: operationId: updateIndex parameters: - in: path name: indexID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateIndex' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 更新目录 tags: - index /p1/indexes/{indexID}/comments: get: operationId: getIndexComments parameters: - in: path name: indexID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取目录的评论 tags: - index post: operationId: createIndexComment parameters: - in: path name: indexID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建目录的评论 tags: - index /p1/indexes/{indexID}/related: get: operationId: getIndexRelated parameters: - in: query name: cat required: false schema: $ref: '#/components/schemas/IndexRelatedCategory' - in: query name: type required: false schema: $ref: '#/components/schemas/SubjectType' - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: indexID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/IndexRelated' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取目录的关联内容 tags: - index put: operationId: putIndexRelated parameters: - in: path name: indexID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateIndexRelated' required: true responses: '200': content: application/json: schema: properties: id: type: integer required: - id type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 添加目录关联内容 tags: - index /p1/indexes/{indexID}/related/{id}: delete: operationId: deleteIndexRelated parameters: - in: path name: indexID required: true schema: type: integer - in: path name: id required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除目录关联内容 tags: - index patch: operationId: patchIndexRelated parameters: - in: path name: indexID required: true schema: type: integer - in: path name: id required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateIndexRelated' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 更新目录关联内容 tags: - index /p1/login: post: description: >- 需要 [turnstile](https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/) next.bgm.tv 域名对应的 site-key 为 `0x4AAAAAAABkMYinukE8nzYS` dev.bgm38.tv 域名使用测试用的 site-key `1x00000000000000000000AA` operationId: login requestBody: content: application/json: schema: $ref: '#/components/schemas/LoginRequestBody' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SlimUser' description: Default Response headers: Set-Cookie: description: 'example: "chiiNextSessionID=12345abc"' schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: request validation error '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 验证码错误/账号密码不匹配 headers: X-RateLimit-Limit: description: total limit per 10 minutes schema: type: integer X-RateLimit-Remaining: description: remaining rate limit schema: type: integer X-RateLimit-Reset: description: seconds to reset rate limit schema: type: integer '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 失败次数太多,需要过一段时间再重试 headers: X-RateLimit-Limit: description: limit per 10 minutes schema: type: integer X-RateLimit-Remaining: description: remaining rate limit schema: type: integer X-RateLimit-Reset: description: seconds to reset rate limit schema: type: integer '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - auth /p1/logout: post: description: 登出 operationId: logout requestBody: content: application/json: schema: properties: {} type: object required: true responses: '200': content: application/json: schema: {} description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 未登录 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - auth /p1/me: get: operationId: getCurrentUser responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] summary: 获取当前用户信息 tags: - misc /p1/notify: get: operationId: listNotice parameters: - description: max 40 in: query name: limit required: false schema: default: 20 maximum: 40 type: integer - in: query name: unread required: false schema: type: boolean responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Notice' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取未读通知 tags: - misc /p1/passkey/login/options: post: description: |- 获取 WebAuthn authentication options。 不传 credentials 时(usernameless 模式),浏览器将展示系统账户选择器。 operationId: passkeyLoginOptions requestBody: content: application/json: schema: properties: credentials: items: properties: credentialId: type: string transports: items: type: string type: array required: - credentialId type: object type: array type: object required: true responses: '200': content: application/json: schema: properties: challenge: type: string options: {} rpId: type: string required: - options - challenge - rpId type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: 获取 Passkey 登录选项 tags: - misc /p1/passkey/login/verify: post: operationId: passkeyLoginVerify requestBody: content: application/json: schema: properties: challenge: description: 之前 options 返回的 challenge type: string credential: additionalProperties: true properties: clientExtensionResults: additionalProperties: true properties: {} type: object id: type: string rawId: type: string response: properties: authenticatorData: type: string clientDataJSON: type: string signature: type: string userHandle: type: string required: - clientDataJSON - authenticatorData - signature type: object type: enum: - public-key type: string required: - id - rawId - type - response - clientExtensionResults type: object required: - challenge - credential type: object required: true responses: '200': content: application/json: schema: {} description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: 验证 Passkey 登录并签发 session tags: - misc /p1/persons/-/comments/{commentID}: delete: operationId: deletePersonComment parameters: - in: path name: commentID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除人物的吐槽 tags: - person put: operationId: updatePersonComment parameters: - in: path name: commentID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑人物的吐槽 tags: - person /p1/persons/{personID}: get: operationId: getPerson parameters: - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Person' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物 tags: - person /p1/persons/{personID}/casts: get: operationId: getPersonCasts parameters: - in: query name: subjectType required: false schema: $ref: '#/components/schemas/SubjectType' - description: '角色出场类型: 主角,配角,客串' in: query name: type required: false schema: type: integer - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/PersonCharacter' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物的出演角色 tags: - person /p1/persons/{personID}/collects: get: operationId: getPersonCollects parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/PersonCollect' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物的收藏用户 tags: - person /p1/persons/{personID}/comments: get: operationId: getPersonComments parameters: - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物的吐槽箱 tags: - person post: operationId: createPersonComment parameters: - in: path name: personID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建人物的吐槽 tags: - person /p1/persons/{personID}/indexes: get: operationId: getPersonIndexes parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimIndex' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物关联的目录 tags: - person /p1/persons/{personID}/photos: get: operationId: getPersonPhotos parameters: - description: max 100 in: query name: limit required: false schema: default: 24 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/MonoPhoto' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物相册列表 tags: - person /p1/persons/{personID}/photos/preview: get: operationId: getPersonPhotoPreview parameters: - description: max 20 in: query name: limit required: false schema: default: 6 maximum: 20 minimum: 1 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/MonoPhoto' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物首页相册预览 tags: - person /p1/persons/{personID}/photos/{photoID}: get: operationId: getPersonPhoto parameters: - in: path name: personID required: true schema: type: integer - in: path name: photoID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/MonoPhoto' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物相册图片 tags: - person /p1/persons/{personID}/photos/{photoID}/comments: get: operationId: getPersonPhotoComments parameters: - in: path name: personID required: true schema: type: integer - in: path name: photoID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物相册图片的评论 tags: - person post: operationId: createPersonPhotoComment parameters: - in: path name: personID required: true schema: type: integer - in: path name: photoID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new comment id type: integer required: - id type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建人物相册图片的评论 tags: - person /p1/persons/{personID}/relations: get: operationId: getPersonRelations parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/PersonRelation' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物关联人物 tags: - person /p1/persons/{personID}/works: get: operationId: getPersonWorks parameters: - in: query name: subjectType required: false schema: $ref: '#/components/schemas/SubjectType' - description: 职位 in: query name: position required: false schema: type: integer - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/PersonWork' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物的参与作品 tags: - person /p1/privacy: get: operationId: getPrivacy responses: '200': content: application/json: schema: properties: preferences: properties: allowNsfw: type: boolean canSetNsfwSubject: type: boolean showNsfwSubject: type: boolean required: - showNsfwSubject - canSetNsfwSubject - allowNsfw type: object settings: properties: commentNotification: enum: - all - friends - none type: string follow: enum: - all - none type: string friendNotification: enum: - all - none type: string mentionNotification: enum: - all - friends - none type: string privateMessage: enum: - all - friends - none type: string timelineCollectReply: enum: - all - friends - none type: string timelineReply: enum: - all - friends - none type: string required: - privateMessage - timelineReply - timelineCollectReply - follow - mentionNotification - commentNotification - friendNotification type: object required: - settings - preferences type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: Get current user privacy settings tags: - user patch: operationId: patchPrivacy requestBody: content: application/json: schema: additionalProperties: false properties: preferences: additionalProperties: false properties: showNsfwSubject: type: boolean type: object settings: additionalProperties: false properties: commentNotification: enum: - all - friends - none type: string follow: enum: - all - none type: string friendNotification: enum: - all - none type: string mentionNotification: enum: - all - friends - none type: string privateMessage: enum: - all - friends - none type: string timelineCollectReply: enum: - all - friends - none type: string timelineReply: enum: - all - friends - none type: string type: object type: object required: true responses: '200': content: application/json: schema: properties: preferences: properties: allowNsfw: type: boolean canSetNsfwSubject: type: boolean showNsfwSubject: type: boolean required: - showNsfwSubject - canSetNsfwSubject - allowNsfw type: object settings: properties: commentNotification: enum: - all - friends - none type: string follow: enum: - all - none type: string friendNotification: enum: - all - none type: string mentionNotification: enum: - all - friends - none type: string privateMessage: enum: - all - friends - none type: string timelineCollectReply: enum: - all - friends - none type: string timelineReply: enum: - all - friends - none type: string required: - privateMessage - timelineReply - timelineCollectReply - follow - mentionNotification - commentNotification - friendNotification type: object required: - settings - preferences type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: Update current user privacy settings tags: - user /p1/report: post: operationId: createReport requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateReport' required: true responses: '200': content: application/json: schema: properties: message: type: string required: - message type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 报告疑虑 tags: - user /p1/search/characters: post: operationId: searchCharacters parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchCharacter' required: true responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimCharacter' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 搜索角色 tags: - search /p1/search/persons: post: operationId: searchPersons parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchPerson' required: true responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimPerson' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 搜索人物 tags: - search /p1/search/subjects: post: operationId: searchSubjects parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchSubject' required: true responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimSubject' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 搜索条目 tags: - search /p1/subjects: get: operationId: getSubjects parameters: - in: query name: type required: true schema: $ref: '#/components/schemas/SubjectType' - in: query name: sort required: true schema: $ref: '#/components/schemas/SubjectBrowseSort' - description: min 1 in: query name: page required: false schema: default: 1 minimum: 1 type: integer - description: >- 每种条目类型分类不同,具体参考 https://github.com/bangumi/common 的 subject_platforms.yaml in: query name: cat required: false schema: type: integer - description: 是否为系列,仅对书籍类型的条目有效 in: query name: series required: false schema: type: boolean - description: 年份 in: query name: year required: false schema: type: integer - description: 月份 in: query name: month required: false schema: type: integer - in: query name: tags required: false schema: items: description: 标签。默认按 wiki/meta 标签查询,结合 tagsCat 可切换为用户标签。 type: string type: array - description: tags 过滤类别:meta=wiki 标签(默认),subject=用户标签 in: query name: tagsCat required: false schema: anyOf: - enum: - meta type: string - enum: - subject type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimSubject' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目列表 tags: - subject /p1/subjects/-/collects/{collectID}/like: delete: operationId: unlikeSubjectCollect parameters: - in: path name: collectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消条目收藏点赞 tags: - subject put: operationId: likeSubjectCollect parameters: - in: path name: collectID required: true schema: type: integer requestBody: content: application/json: schema: properties: value: type: integer required: - value type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 给条目收藏点赞 tags: - subject /p1/subjects/-/posts/{postID}: delete: operationId: deleteSubjectPost parameters: - in: path name: postID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除条目讨论回复 tags: - topic get: operationId: getSubjectPost parameters: - in: path name: postID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Post' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: 获取条目讨论回复详情 tags: - topic put: operationId: editSubjectPost parameters: - in: path name: postID required: true schema: type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateContent' required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑条目讨论回复 tags: - topic /p1/subjects/-/posts/{postID}/like: delete: operationId: unlikeSubjectPost parameters: - in: path name: postID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消条目讨论回复点赞 tags: - topic put: operationId: likeSubjectPost parameters: - in: path name: postID required: true schema: type: integer requestBody: content: application/json: schema: properties: value: type: integer required: - value type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 给条目讨论回复点赞 tags: - topic /p1/subjects/-/topics: get: operationId: getRecentSubjectTopics parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectTopic' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取最新的条目讨论 tags: - subject /p1/subjects/-/topics/{topicID}: get: operationId: getSubjectTopic parameters: - in: path name: topicID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubjectTopic' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目讨论详情 tags: - topic put: operationId: updateSubjectTopic parameters: - in: path name: topicID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: properties: content: description: bbcode minLength: 1 type: string title: minLength: 1 type: string required: - title - content type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑自己创建的条目讨论 tags: - topic /p1/subjects/-/topics/{topicID}/replies: post: operationId: createSubjectReply parameters: - in: path name: topicID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建条目讨论回复 tags: - topic /p1/subjects/{subjectID}: get: operationId: getSubject parameters: - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/Subject' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目 tags: - subject /p1/subjects/{subjectID}/characters: get: operationId: getSubjectCharacters parameters: - description: '角色出场类型: 主角,配角,客串' in: query name: type required: false schema: type: integer - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectCharacter' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的角色 tags: - subject /p1/subjects/{subjectID}/collects: get: operationId: getSubjectCollects parameters: - in: query name: type required: false schema: $ref: '#/components/schemas/CollectionType' - in: query name: mode required: false schema: $ref: '#/components/schemas/FilterMode' - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 maximum: 500 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectCollect' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的收藏用户 tags: - subject /p1/subjects/{subjectID}/comments: get: operationId: getSubjectComments parameters: - in: query name: type required: false schema: $ref: '#/components/schemas/CollectionType' - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectInterestComment' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的吐槽箱 tags: - subject /p1/subjects/{subjectID}/episodes: get: operationId: getSubjectEpisodes parameters: - in: query name: type required: false schema: $ref: '#/components/schemas/EpisodeType' - description: max 1000 in: query name: limit required: false schema: default: 100 maximum: 1000 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Episode' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的章节 tags: - subject /p1/subjects/{subjectID}/indexes: get: operationId: getSubjectIndexes parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimIndex' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目关联的目录 tags: - subject /p1/subjects/{subjectID}/recs: get: operationId: getSubjectRecs parameters: - description: max 10 in: query name: limit required: false schema: default: 10 maximum: 10 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectRec' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的推荐 tags: - subject /p1/subjects/{subjectID}/relations: get: operationId: getSubjectRelations parameters: - in: query name: type required: false schema: $ref: '#/components/schemas/SubjectType' - description: 是否单行本 in: query name: offprint required: false schema: default: false type: boolean - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectRelation' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的关联条目 tags: - subject /p1/subjects/{subjectID}/reviews: get: operationId: getSubjectReviews parameters: - description: max 20 in: query name: limit required: false schema: default: 5 maximum: 20 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectReview' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的评论 tags: - subject /p1/subjects/{subjectID}/staffs/persons: get: operationId: getSubjectStaffPersons parameters: - description: '人物职位: 监督,原案,脚本,..' in: query name: position required: false schema: type: integer - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectStaff' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的制作人员 tags: - subject /p1/subjects/{subjectID}/staffs/positions: get: operationId: getSubjectStaffPositions parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectPosition' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目的制作人员职位 tags: - subject /p1/subjects/{subjectID}/topics: get: operationId: getSubjectTopics parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Topic' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目讨论版 tags: - subject post: operationId: createSubjectTopic parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateTopic' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: description: new topic id type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建条目讨论 tags: - subject /p1/timeline: get: operationId: getTimeline parameters: - in: query name: mode required: false schema: $ref: '#/components/schemas/FilterMode' - description: min 1, max 20 in: query name: limit required: false schema: default: 20 maximum: 20 minimum: 1 type: integer - description: max timeline id to fetch from in: query name: until required: false schema: type: integer responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/Timeline' type: array description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取时间线 tags: - timeline post: operationId: createTimelineSay requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateContent' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 发送时间线吐槽 tags: - timeline /p1/timeline/-/events: get: description: >- 这是一个 SSE (Server-Sent Events) 流,不是普通的 JSON 响应。客户端需要使用 EventSource 或类似的 SSE 客户端来订阅此接口。每个事件以 `data: {...}\n\n` 格式发送。 operationId: getTimelineEvents parameters: - in: query name: cat required: false schema: $ref: '#/components/schemas/TimelineCat' - in: query name: mode required: false schema: $ref: '#/components/schemas/FilterMode' responses: '200': content: application/json: schema: description: SSE 事件数据 properties: event: description: '事件类型: ''connected'' | ''timeline''' type: string timeline: $ref: '#/components/schemas/Timeline' required: - event type: object description: SSE 事件数据 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 时间线事件流 (SSE) tags: - timeline /p1/timeline/{timelineID}: delete: operationId: deleteTimeline parameters: - in: path name: timelineID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 删除时间线 tags: - timeline /p1/timeline/{timelineID}/like: delete: operationId: unlikeTimeline parameters: - in: path name: timelineID required: true schema: type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 取消时间线吐槽点赞 tags: - timeline put: operationId: likeTimeline parameters: - in: path name: timelineID required: true schema: type: integer requestBody: content: application/json: schema: properties: value: type: integer required: - value type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 给时间线吐槽点赞 tags: - timeline /p1/timeline/{timelineID}/replies: get: operationId: getTimelineReplies parameters: - in: path name: timelineID required: true schema: type: integer responses: '200': content: application/json: schema: items: allOf: - properties: content: type: string createdAt: type: integer creatorID: type: integer id: type: integer mainID: type: integer reactions: items: $ref: '#/components/schemas/Reaction' type: array relatedID: type: integer relatedPhotoID: type: integer state: type: integer user: $ref: '#/components/schemas/SlimUser' required: - id - mainID - creatorID - relatedID - createdAt - content - state type: object - properties: replies: items: $ref: '#/components/schemas/CommentBase' type: array required: - replies type: object type: array description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取时间线回复 tags: - timeline post: operationId: createTimelineReply parameters: - in: path name: timelineID required: true schema: type: integer requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateReply' - $ref: '#/components/schemas/TurnstileToken' required: true responses: '200': content: application/json: schema: properties: id: type: integer required: - id type: object description: Default Response '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建时间线回复 tags: - timeline /p1/trending/subjects: get: operationId: getTrendingSubjects parameters: - in: query name: type required: true schema: $ref: '#/components/schemas/SubjectType' - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/TrendingSubject' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取热门条目 tags: - trending /p1/trending/subjects/topics: get: operationId: getTrendingSubjectTopics parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SubjectTopic' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取热门条目讨论 tags: - trending /p1/turnstile: get: description: 为防止滥用,Redirect URI 为白名单机制,如需添加请提交 PR。 operationId: getTurnstileToken parameters: - in: query name: theme required: false schema: enum: - dark - light - auto - in: query name: redirect_uri required: true schema: type: string responses: '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 summary: 获取 Turnstile 令牌 tags: - auth /p1/users/{username}: get: operationId: getUser parameters: - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/User' description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户信息 tags: - user /p1/users/{username}/blogs: get: operationId: getUserBlogs parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimBlogEntry' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户创建的日志 tags: - user /p1/users/{username}/collections/characters: get: operationId: getUserCharacterCollections parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimCharacter' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户角色收藏 tags: - user /p1/users/{username}/collections/indexes: get: operationId: getUserIndexCollections parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimIndex' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户目录收藏 tags: - user /p1/users/{username}/collections/persons: get: operationId: getUserPersonCollections parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimPerson' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户人物收藏 tags: - user /p1/users/{username}/collections/subjects: get: operationId: getUserSubjectCollections parameters: - in: query name: subjectType required: false schema: $ref: '#/components/schemas/SubjectType' - in: query name: type required: false schema: $ref: '#/components/schemas/CollectionType' - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimSubject' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户条目收藏 tags: - user /p1/users/{username}/followers: get: operationId: getUserFollowers parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimUser' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户的关注者列表 tags: - user /p1/users/{username}/friends: get: operationId: getUserFriends parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimUser' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户的好友列表 tags: - user /p1/users/{username}/groups: get: operationId: getUserGroups parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimGroup' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户加入的小组 tags: - user /p1/users/{username}/indexes: get: operationId: getUserIndexes parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SlimIndex' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户创建的目录 tags: - user /p1/users/{username}/timeline: get: operationId: getUserTimeline parameters: - description: min 1, max 20 in: query name: limit required: false schema: default: 20 maximum: 20 minimum: 1 type: integer - description: max timeline id to fetch from in: query name: until required: false schema: type: integer - in: path name: username required: true schema: minLength: 1 type: string responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/Timeline' type: array description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户时间胶囊 tags: - user /p1/wiki/characters: post: operationId: postCharacterInfo requestBody: content: application/json: schema: properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer character: additionalProperties: false properties: img: description: >- base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string infobox: minLength: 1 type: string name: minLength: 1 type: string summary: type: string type: $ref: '#/components/schemas/CharacterType' required: - name - infobox - summary - type type: object required: - character type: object required: true responses: '200': content: application/json: schema: properties: characterID: type: integer required: - characterID type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建角色 tags: - wiki /p1/wiki/characters/-/casts/revisions/{revisionID}: get: operationId: getCharacterCastRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/CharacterCastRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色-人物关联历史版本 wiki 信息 tags: - wiki /p1/wiki/characters/-/revisions/{revisionID}: get: operationId: getCharacterRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/CharacterRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色历史版本 wiki 信息 tags: - wiki /p1/wiki/characters/-/subjects/revisions/{revisionID}: get: operationId: getCharacterSubjectRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/CharacterSubjectRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色-条目关联历史版本 wiki 信息 tags: - wiki /p1/wiki/characters/{characterID}: get: operationId: getCharacterWikiInfo parameters: - in: path name: characterID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/CharacterWikiInfo' description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色当前的 wiki 信息 tags: - wiki patch: operationId: patchCharacterInfo parameters: - in: path name: characterID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: additionalProperties: false properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer character: additionalProperties: false properties: infobox: minLength: 1 type: string name: minLength: 1 type: string summary: type: string type: object commitMessage: minLength: 1 type: string expectedRevision: additionalProperties: false default: {} properties: infobox: minLength: 1 type: string name: minLength: 1 type: string summary: type: string type: object required: - commitMessage - expectedRevision - character type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑角色 tags: - wiki /p1/wiki/characters/{characterID}/casts/history-summary: get: operationId: characterCastHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色-人物关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/characters/{characterID}/history-summary: get: operationId: characterEditHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色 wiki 历史编辑摘要 tags: - wiki /p1/wiki/characters/{characterID}/portraits: post: operationId: uploadCharacterPortrait parameters: - in: path name: characterID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: additionalProperties: false properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer img: description: base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string required: - img type: object required: true responses: '200': content: application/json: schema: properties: img: description: image filename type: string required: - img type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 上传角色肖像 tags: - wiki /p1/wiki/characters/{characterID}/subjects/history-summary: get: operationId: characterSubjectHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: characterID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取角色-条目关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/ep/{episodeID}: get: operationId: getEpisodeWikiInfo parameters: - in: path name: episodeID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/EpisodeWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki patch: operationId: patchEpisodeWikiInfo parameters: - in: path name: episodeID required: true schema: minimum: 1 type: integer requestBody: content: application/json: example: commitMessage: why this episode is edited episode: date: '2022-01-20' duration: '24:53' ep: 4 name: name nameCN: 中文名 summary: a short description type: 0 expectedRevision: name: old name nameCN: old cn name schema: properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer commitMessage: type: string episode: properties: date: description: YYYY-MM-DD example: '2022-02-02' pattern: ^\d{4}-\d{2}-\d{2}$ type: string disc: type: number duration: example: '24:53' type: string ep: type: number name: type: string nameCN: type: string subjectID: type: integer summary: type: string type: $ref: '#/components/schemas/EpisodeType' type: object expectedRevision: properties: date: type: string duration: type: string name: type: string nameCN: type: string summary: type: string type: object required: - commitMessage - episode type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: invalid input '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/lock/subjects: post: operationId: lockSubject requestBody: content: application/json: schema: properties: reason: type: string subjectID: example: 184017 type: integer required: - subjectID - reason type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/persons: post: operationId: postPersonInfo requestBody: content: application/json: schema: properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer person: additionalProperties: false properties: img: description: >- base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string infobox: minLength: 1 type: string name: minLength: 1 type: string profession: properties: actor: type: boolean artist: type: boolean illustrator: type: boolean mangaka: type: boolean producer: type: boolean seiyu: type: boolean writer: type: boolean type: object summary: type: string type: $ref: '#/components/schemas/PersonType' required: - name - infobox - summary - type type: object required: - person type: object required: true responses: '200': content: application/json: schema: properties: personID: type: integer required: - personID type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建人物 tags: - wiki /p1/wiki/persons/-/casts/revisions/{revisionID}: get: operationId: getPersonCastRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/PersonCastRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物-角色关联历史版本 wiki 信息 tags: - wiki /p1/wiki/persons/-/revisions/{revisionID}: get: operationId: getPersonRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/PersonRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物历史版本 wiki 信息 tags: - wiki /p1/wiki/persons/-/subjects/revisions/{revisionID}: get: operationId: getPersonSubjectRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/PersonSubjectRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物-条目关联历史版本 wiki 信息 tags: - wiki /p1/wiki/persons/{personID}: get: operationId: getPersonWikiInfo parameters: - in: path name: personID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/PersonWikiInfo' description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 人物不存在 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物当前的 wiki 信息 tags: - wiki patch: operationId: patchPersonInfo parameters: - in: path name: personID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: additionalProperties: false properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer commitMessage: minLength: 1 type: string expectedRevision: additionalProperties: false default: {} properties: infobox: minLength: 1 type: string name: minLength: 1 type: string summary: type: string type: object person: additionalProperties: false properties: infobox: minLength: 1 type: string name: minLength: 1 type: string profession: properties: actor: type: boolean artist: type: boolean illustrator: type: boolean mangaka: type: boolean producer: type: boolean seiyu: type: boolean writer: type: boolean type: object summary: type: string type: object required: - commitMessage - expectedRevision - person type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 编辑人物 tags: - wiki /p1/wiki/persons/{personID}/casts/history-summary: get: operationId: personCastHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物-角色关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/persons/{personID}/history-summary: get: operationId: personEditHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物 wiki 历史编辑摘要 tags: - wiki /p1/wiki/persons/{personID}/portraits: post: operationId: uploadPersonPortrait parameters: - in: path name: personID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: additionalProperties: false properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer img: description: base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string required: - img type: object required: true responses: '200': content: application/json: schema: properties: img: description: image filename type: string required: - img type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 上传人物肖像 tags: - wiki /p1/wiki/persons/{personID}/subjects/history-summary: get: operationId: personSubjectHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: personID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物-条目关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/recent/characters: get: description: 获取最近两天的角色wiki更新 operationId: getRecentCharacterWiki parameters: - description: |- unix time stamp, only return last update time >= since only allow recent 2 days in: query name: since required: false schema: default: 0 type: integer responses: '200': content: application/json: schema: items: properties: createdAt: type: integer id: type: integer required: - id - createdAt type: object type: array description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - wiki /p1/wiki/recent/episodes: get: description: 获取最近两天的章节wiki更新 operationId: getRecentEpisodeWiki parameters: - description: |- unix time stamp, only return last update time >= since only allow recent 2 days in: query name: since required: false schema: default: 0 type: integer responses: '200': content: application/json: schema: items: properties: createdAt: type: integer id: type: integer required: - id - createdAt type: object type: array description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - wiki /p1/wiki/recent/persons: get: description: 获取最近两天的人物wiki更新 operationId: getRecentPersonWiki parameters: - description: |- unix time stamp, only return last update time >= since only allow recent 2 days in: query name: since required: false schema: default: 0 type: integer responses: '200': content: application/json: schema: items: properties: createdAt: type: integer id: type: integer required: - id - createdAt type: object type: array description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - wiki /p1/wiki/recent/subjects: get: description: 获取最近两天的wiki更新 operationId: getRecentSubjectWiki parameters: - description: |- unix time stamp, only return last update time >= since only allow recent 2 days in: query name: since required: false schema: default: 0 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/RecentWikiChange' description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - wiki /p1/wiki/subjects: post: operationId: createNewSubject requestBody: content: application/json: schema: properties: date: example: '0000-00-00' pattern: ^\d{4}-\d{2}-\d{2}$ type: string infobox: minLength: 1 type: string metaTags: items: type: string type: array name: minLength: 1 type: string nsfw: type: boolean platform: type: integer series: type: boolean summary: type: string type: $ref: '#/components/schemas/SubjectType' required: - name - type - platform - infobox - nsfw - metaTags - summary type: object required: true responses: '200': content: application/json: schema: properties: subjectID: type: number required: - subjectID type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建新条目 tags: - wiki /p1/wiki/subjects/-/characters/revisions/{revisionID}: get: operationId: getSubjectCharacterRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubjectCharacterRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目-角色关联历史版本 wiki 信息 tags: - wiki /p1/wiki/subjects/-/persons/revisions/{revisionID}: get: operationId: getSubjectPersonRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubjectPersonRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目-人物关联历史版本 wiki 信息 tags: - wiki /p1/wiki/subjects/-/relations/revisions/{revisionID}: get: operationId: getSubjectRelationRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubjectRelationRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目关联历史版本 wiki 信息 tags: - wiki /p1/wiki/subjects/-/revisions/{revisionID}: get: operationId: getSubjectRevisionInfo parameters: - in: path name: revisionID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubjectRevisionWikiInfo' description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目历史版本 wiki 信息 tags: - wiki /p1/wiki/subjects/{subjectID}: get: operationId: subjectInfo parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SubjectWikiInfo' description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目当前的 wiki 信息 tags: - wiki patch: operationId: patchSubjectInfo parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer requestBody: content: application/json: example: commitMessage: 修正笔误 subject: infobox: |- {{Infobox animanga/TVAnime |中文名= 沙盒 |别名={ } |话数= 7 |放送开始= 0000-10-06 |放送星期= |官方网站= |播放电视台= |其他电视台= |播放结束= |其他= |Copyright= |平台={ [龟壳] [Xbox Series S] [Xbox Series X] [Xbox Series X/S] [PC] [Xbox Series X|S] } }} schema: properties: authorID: description: >- when header x-admin-token is provided, use this as author id. exclusiveMinimum: 0 type: integer commitMessage: minLength: 1 type: string expectedRevision: properties: infobox: anyOf: - type: 'null' - minLength: 1 type: string metaTags: anyOf: - type: 'null' - items: type: string type: array name: anyOf: - type: 'null' - minLength: 1 type: string platform: anyOf: - type: 'null' - type: integer summary: anyOf: - type: 'null' - minLength: 1 type: string type: object subject: properties: date: example: '0000-00-00' pattern: ^\d{4}-\d{2}-\d{2}$ type: string infobox: minLength: 1 type: string metaTags: items: type: string type: array name: minLength: 1 type: string nsfw: type: boolean platform: type: integer series: type: boolean summary: type: string type: object required: - commitMessage - subject type: object required: true responses: '200': description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki put: description: 需要 `subjectWikiEdit` 权限 operationId: putSubjectInfo parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer requestBody: content: application/json: example: commitMessage: 修正笔误 subject: infobox: |- {{Infobox animanga/TVAnime |中文名= 沙盒 |别名={ } |话数= 7 |放送开始= 0000-10-06 |放送星期= |官方网站= |播放电视台= |其他电视台= |播放结束= |其他= |Copyright= |平台={ [龟壳] [Xbox Series S] [Xbox Series X] [Xbox Series X/S] [PC] [Xbox Series X|S] } }} name: 沙盒 nsfw: false platform: 0 summary: |- 本条目是一个沙盒,可以用于尝试bgm功能。 普通维基人可以随意编辑条目信息以及相关关联查看编辑效果,但是请不要完全删除沙盒说明并且不要关联非沙盒条目/人物/角色。 https://bgm.tv/group/topic/366812#post_1923517 schema: properties: commitMessage: minLength: 1 type: string expectedRevision: properties: infobox: anyOf: - type: 'null' - minLength: 1 type: string metaTags: anyOf: - type: 'null' - items: type: string type: array name: anyOf: - type: 'null' - minLength: 1 type: string platform: anyOf: - type: 'null' - type: integer summary: anyOf: - type: 'null' - minLength: 1 type: string type: object subject: $ref: '#/components/schemas/SubjectEdit' required: - commitMessage - subject type: object required: true responses: '200': description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/subjects/{subjectID}/characters/history-summary: get: operationId: subjectCharacterHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目-角色关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/subjects/{subjectID}/covers: get: operationId: listSubjectCovers parameters: - example: 184017 in: path name: subjectID required: true schema: type: integer responses: '200': content: application/json: schema: properties: covers: items: properties: creator: properties: avatar: $ref: '#/components/schemas/Avatar' group: type: integer id: example: 1 type: integer joinedAt: type: integer nickname: example: Sai🖖 type: string sign: type: string username: example: sai type: string required: - id - username - nickname - avatar - group - sign - joinedAt title: SlimUser type: object id: type: integer raw: type: string thumbnail: type: string voted: type: boolean required: - id - thumbnail - raw - creator - voted type: object type: array current: properties: id: type: integer raw: type: string thumbnail: type: string required: - thumbnail - raw - id type: object required: - covers type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 tags: - wiki post: description: 需要 `subjectWikiEdit` 权限 operationId: uploadSubjectCover parameters: - in: path name: subjectID required: true schema: type: integer requestBody: content: application/json: schema: properties: content: description: base64 encoded raw bytes, 4mb size limit on **decoded** size format: byte type: string required: - content type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/subjects/{subjectID}/covers/{imageID}/vote: delete: description: 需要 `subjectWikiEdit` 权限 operationId: unvoteSubjectCover parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer - in: path name: imageID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 撤消条目封面投票 tags: - wiki post: description: 需要 `subjectWikiEdit` 权限 operationId: voteSubjectCover parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer - in: path name: imageID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 为条目封面投票 tags: - wiki /p1/wiki/subjects/{subjectID}/ep: patch: description: 需要 `epEdit` 权限,一次最多可以编辑 20 个章节 operationId: patchEpisodes parameters: - example: 363612 in: path name: subjectID required: true schema: minimum: 0 type: integer requestBody: content: application/json: schema: properties: commitMessage: type: string episodes: items: properties: date: description: YYYY-MM-DD example: '2022-02-02' pattern: ^\d{4}-\d{2}-\d{2}$ type: string disc: type: number duration: example: '24:53' type: string ep: type: number id: type: integer name: type: string nameCN: type: string summary: type: string type: $ref: '#/components/schemas/EpisodeType' required: - id type: object type: array expectedRevision: items: properties: date: type: string duration: type: string name: type: string nameCN: type: string summary: type: string type: object type: array required: - commitMessage - episodes type: object required: true responses: '200': description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 批量编辑条目章节 tags: - wiki post: description: 需要 `epEdit` 权限,一次最多可以添加 40 个章节 operationId: createEpisodes parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer requestBody: content: application/json: schema: properties: episodes: items: properties: date: description: YYYY-MM-DD example: '2022-02-02' pattern: ^\d{4}-\d{2}-\d{2}$ type: string disc: type: number duration: example: '24:53' type: string ep: type: number name: type: string nameCN: type: string summary: type: string type: $ref: '#/components/schemas/EpisodeType' required: - ep type: object type: array required: - episodes type: object required: true responses: '200': content: application/json: schema: properties: episodeIDs: items: type: integer type: array required: - episodeIDs type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 为条目添加新章节 tags: - wiki /p1/wiki/subjects/{subjectID}/history-summary: get: operationId: subjectEditHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目 wiki 历史编辑摘要 tags: - wiki /p1/wiki/subjects/{subjectID}/persons/history-summary: get: operationId: subjectPersonHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目-人物关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/subjects/{subjectID}/relations/history-summary: get: operationId: subjectRelationHistorySummary parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: subjectID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RevisionHistory' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取条目关联 wiki 历史编辑摘要 tags: - wiki /p1/wiki/unlock/subjects: post: operationId: unlockSubject requestBody: content: application/json: schema: properties: reason: type: string subjectID: example: 184017 type: integer required: - subjectID - reason type: object required: true responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/users/{username}/contributions/characters: get: operationId: getUserContributedCharacters parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/UserCharacterContribution' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户 wiki 角色编辑记录 tags: - wiki /p1/wiki/users/{username}/contributions/persons: get: operationId: getUserContributedPersons parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/UserPersonContribution' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户 wiki 人物编辑记录 tags: - wiki /p1/wiki/users/{username}/contributions/subjects: get: operationId: getUserContributedSubjects parameters: - description: max 100 in: query name: limit required: false schema: default: 20 maximum: 100 minimum: 1 type: integer - description: min 0 in: query name: offset required: false schema: default: 0 minimum: 0 type: integer - in: path name: username required: true schema: type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/UserSubjectContribution' type: array total: description: limit+offset 为参数的请求表示总条数,page 为参数的请求表示总页数 type: integer required: - data - total type: object description: Default Response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户 wiki 条目编辑记录 tags: - wiki