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 updatedAt: type: integer user: $ref: '#/components/schemas/SlimUser' views: type: integer required: - id - type - 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: type: integer summary: type: string required: - id - name - nameCN - role - infobox - info - summary - comment - collects - lock - redirect - nsfw title: Character type: object CharacterRelation: properties: character: $ref: '#/components/schemas/SlimCharacter' relation: description: '角色关系: 任职于,从属,聘用,嫁给...' type: integer required: - character - relation type: object CharacterSearchFilter: properties: nsfw: description: |- 无权限的用户会直接忽略此字段,不会返回 R18 条目。 `null` 或者 `true` 会返回包含 R18 的所有搜索结果。 `false` 只会返回非 R18 条目。 type: boolean type: object CharacterSubject: properties: actors: items: $ref: '#/components/schemas/SlimPerson' type: array subject: $ref: '#/components/schemas/SlimSubject' type: type: integer required: - subject - actors - type type: object CharacterSubjectRelation: properties: subject: $ref: '#/components/schemas/SlimSubject' type: type: integer required: - subject - type 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 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: 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 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 CreateReply: properties: content: minLength: 1 type: string replyTo: default: 0 description: 被回复的回复 ID, `0` 代表发送顶层回复 type: integer required: - content 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: description: >- a optional object to check if input is changed by others if some key is given, and current data in database doesn't match input, subject will not be changed 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 HistorySummary: properties: commitMessage: type: string createdAt: description: unix timestamp seconds type: integer creator: properties: username: type: string required: - username type: object type: description: 修改类型。`1` 正常修改, `11` 合并,`103` 锁定/解锁 `104` 未知 type: integer required: - creator - type - commitMessage - createdAt type: object Index: properties: award: type: integer collectedAt: type: integer collects: type: integer createdAt: type: integer desc: type: string id: type: integer 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 - replies - total - collects - stats - award - createdAt - updatedAt title: Index type: object IndexRelated: properties: award: type: string cat: $ref: '#/components/schemas/IndexRelatedCategory' character: $ref: '#/components/schemas/SlimCharacter' comment: type: string createdAt: type: integer episode: $ref: '#/components/schemas/Episode' id: type: integer order: type: integer person: $ref: '#/components/schemas/SlimPerson' rid: type: integer sid: type: integer subject: $ref: '#/components/schemas/SlimSubject' type: type: integer required: - id - cat - rid - type - sid - order - comment - award - createdAt title: IndexRelated type: object IndexRelatedCategory: description: |- 目录关联类型 - 0 = 条目 - 1 = 角色 - 2 = 人物 - 3 = 剧集 enum: - 0 - 1 - 2 - 3 type: integer x-enum-varnames: - Subject - Character - Person - Episode x-ms-enum: modelAsString: false name: IndexRelatedCategory IndexStats: additionalProperties: type: integer 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 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: type: integer required: - id - name - nameCN - type - infobox - info - career - summary - comment - collects - lock - redirect - nsfw title: Person type: object 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 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: person: $ref: '#/components/schemas/SlimPerson' relation: description: '人物关系: 任职于,从属,聘用,嫁给...' type: integer required: - person - relation type: object PersonSearchFilter: properties: career: items: description: |- 职业, 可以多次出现。多值之间为 `且` 关系,用 `-` 排除职业。 支持的职业有: - producer: 制作人 - mangaka: 漫画家 - artist: 艺术家 - illustrator: 插画家 - seiyu: 声优 - writer: 编剧 - actor: 演员 example: seiyu type: string type: array type: object PersonWikiInfo: properties: id: type: integer infobox: type: string name: type: string summary: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - name - typeID - infobox - summary 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 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 required: - id - uid - type - 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 title: type: string total: type: integer type: $ref: '#/components/schemas/IndexType' uid: type: integer required: - id - uid - type - title - total - createdAt title: SlimIndex type: object SlimPerson: 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 type: type: integer required: - id - name - nameCN - type - info - 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 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 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 - 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 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 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: http://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: actors: items: $ref: '#/components/schemas/SlimPerson' type: array character: $ref: '#/components/schemas/SlimCharacter' order: type: integer type: type: integer required: - character - actors - type - order type: object 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 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: infobox: minLength: 1 type: string metaTags: items: type: string type: array name: minLength: 1 type: string nsfw: type: boolean platform: type: integer summary: type: string type: $ref: '#/components/schemas/SubjectType' required: - name - type - platform - infobox - nsfw - metaTags - summary type: object 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: person: $ref: '#/components/schemas/SlimPerson' summary: type: string required: - person - summary 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 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 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' description: 条目类型, 可以多次出现。多值之间为 `或` 关系。 example: 2 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: summary: type: string type: $ref: '#/components/schemas/SubjectStaffPositionType' required: - type - summary 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 metaTags: items: type: string type: array name: type: string nsfw: type: boolean platform: type: integer summary: type: string typeID: $ref: '#/components/schemas/SubjectType' required: - id - name - typeID - infobox - 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' 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 reactions: items: $ref: '#/components/schemas/Reaction' type: array subject: $ref: '#/components/schemas/SlimSubject' required: - subject - comment - rate type: object type: array wiki: properties: subject: $ref: '#/components/schemas/SlimSubject' type: object title: TimelineMemo type: object TimelineSource: description: |- 时间线来源 - 0 = 网站 - 1 = 移动端 - 2 = https://bgm.tv/onair - 3 = https://netaba.re/ - 4 = WP - 5 = API enum: - 0 - 1 - 2 - 3 - 4 - 5 type: integer x-enum-varnames: - Web - Mobile - OnAir - InTouch - WP - API x-ms-enum: modelAsString: false name: TimelineSource 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 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 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 title: User 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 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 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: v0.28.0 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - 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 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: object type: array description: Default Response '404': content: application/json: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: blog entry not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: character not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: character not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: character not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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 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: object type: array description: Default Response '404': content: application/json: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: character not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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 responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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 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: object type: array description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 给小组话题回复点赞 tags: - topic /p1/groups/-/topics: get: operationId: getRecentGroupTopics parameters: - description: 登录时默认为 joined, 未登录或没有加入小组时始终为 all 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建小组话题 tags: - group /p1/indexes/{indexID}: 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' 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 description: request validation error '401': content: application/json: examples: CAPTCHA_ERROR: value: code: CAPTCHA_ERROR error: Unauthorized message: wrong captcha statusCode: 401 EMAIL_PASSWORD_ERROR: value: code: EMAIL_PASSWORD_ERROR error: Unauthorized message: email does not exists or email and password not match statusCode: 401 schema: $ref: '#/components/schemas/ErrorResponse' description: 验证码错误/账号密码不匹配 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: example: code: TOO_MANY_REQUESTS error: Too Many Requests message: too many failed login attempts statusCode: 429 schema: $ref: '#/components/schemas/ErrorResponse' description: 失败次数太多,需要过一段时间再重试 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: 意料之外的服务器错误 description: 意料之外的服务器错误 tags: - auth /p1/logout: post: description: 登出 operationId: logout requestBody: content: application/json: schema: properties: {} type: object responses: '200': content: application/json: schema: {} description: Default Response '401': content: application/json: examples: NeedLoginError: value: code: NEED_LOGIN error: Unauthorized message: you need to login before logout statusCode: 401 schema: $ref: '#/components/schemas/ErrorResponse' description: 未登录 description: 未登录 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: example: code: NEED_LOGIN error: Unauthorized message: you need to login before get current user statusCode: 401 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取未读通知 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: person not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: person not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: person not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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 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: object type: array description: Default Response '404': content: application/json: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: person not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: person not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取人物的参与作品 tags: - person /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' 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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 标签,包括 分类/来源/类型/题材/地区/受众 等 type: string type: array 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' responses: '200': content: application/json: schema: properties: {} type: object description: Default Response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' - description: 默认为 all, 未登录或没有好友时始终为 all 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 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 创建条目讨论 tags: - subject /p1/timeline: get: operationId: getTimeline parameters: - description: 登录时默认为 friends, 未登录或没有好友时始终为 all 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取时间线 tags: - timeline post: operationId: createTimelineSay requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateContent' - $ref: '#/components/schemas/TurnstileToken' 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 发送时间线吐槽 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: 意料之外的服务器错误 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 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: object type: array description: Default Response '404': content: application/json: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: timeline not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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' 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取热门条目讨论 tags: - trending /p1/turnstile: get: description: 为防止滥用,Redirect URI 为白名单机制,如需添加请提交 PR。 operationId: getTurnstileToken parameters: - in: query name: theme required: false schema: anyOf: - enum: - dark type: string - enum: - light type: string - enum: - auto type: string - in: query name: redirect_uri required: true schema: type: string responses: '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 获取用户时间胶囊 tags: - user /p1/wiki/ep/{episodeID}: get: operationId: getEpisodeWikiInfo parameters: - in: path name: episodeID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: example: date: '2012-12-23' duration: '00:23:37' ep: 60 id: 1148124 name: キマリ×ト×ハジマリ nameCN: 结末×与×开始 subjectID: 65536 summary: >- ゴンとキルアはG.I.プレイヤー選考会にいよいよ挑戦する。審査を担当するツェズゲラから提示された合格の条件はただ一つ「練を見せる」こと。合格できる者は200人中32名という狭き門だが、ゴンとキルアはくぐり抜けることができるのか!? type: 0 schema: $ref: '#/components/schemas/EpisodeWikiInfo' description: Default Response '404': content: application/json: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: episode not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] 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: 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: description: >- a optional object to check if input is changed by others if some key is given, and current data in database doesn't match input, subject will not be changed 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 description: invalid input '404': content: application/json: examples: NOT_FOUND: value: code: NOT_FOUND error: Not Found message: episode 1 not found statusCode: 404 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] 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 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 tags: - wiki /p1/wiki/persons/{personID}: get: description: 获取当前的 wiki 信息 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: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 角色不存在 description: 角色不存在 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] 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: 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 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: examples: WIKI_CHANGED: value: code: WIKI_CHANGED error: Bad Request message: "expected data doesn't match\nIndex: name\n===================================================================\n--- name\texpected\n+++ name\tcurrent\n@@ -1,1 +1,1 @@\n-1234\n+水樹奈々\n" statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '401': content: application/json: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/recent: get: description: 获取最近两天的wiki更新 operationId: getRecentWiki parameters: - description: |- unix time stamp, only return last update time >= since only allow recent 2 days in: path name: since required: true 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: 意料之外的服务器错误 description: 意料之外的服务器错误 tags: - wiki /p1/wiki/subjects: post: description: 创建新条目 operationId: createNewSubject requestBody: content: application/json: schema: properties: infobox: minLength: 1 type: string metaTags: items: type: string type: array name: minLength: 1 type: string nsfw: type: boolean platform: type: integer 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: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 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: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] tags: - wiki /p1/wiki/subjects/{subjectID}: get: description: 获取当前的 wiki 信息 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: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] 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: additionalProperties: false description: >- a optional object to check if input is changed by others if `infobox` is given, and current data in database doesn't match input, subject will not be changed 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: 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 summary: type: string type: object required: - commitMessage - subject type: object required: true responses: '200': description: Default Response '401': content: application/json: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] 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: additionalProperties: false description: >- a optional object to check if input is changed by others if `infobox` is given, and current data in database doesn't match input, subject will not be changed 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: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] 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: 意料之外的服务器错误 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: examples: IMAGE_FILE_TOO_LARGE: value: code: IMAGE_FILE_TOO_LARGE error: Bad Request message: uploaded image file is too large statusCode: 400 IMAGE_FORMAT_NOT_SUPPORT: value: code: IMAGE_FORMAT_NOT_SUPPORT error: Bad Request message: not valid image file, only support jpeg, jpg, png, webp statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '403': content: application/json: examples: NOT_ALLOWED: value: code: NOT_ALLOWED error: Forbidden message: you don't have permission to non sandbox subject statusCode: 403 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 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 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 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 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 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: description: >- a optional object to check if input is changed by others if some key is given, and current data in database doesn't match input, subject will not be changed 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: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 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: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] HTTPBearer: [] summary: 为条目添加新章节 tags: - wiki /p1/wiki/subjects/{subjectID}/history-summary: get: description: 获取当前的 wiki 信息 operationId: subjectEditHistorySummary parameters: - in: path name: subjectID required: true schema: minimum: 1 type: integer responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/HistorySummary' type: array description: Default Response '401': content: application/json: examples: INVALID_SYNTAX_ERROR: value: code: INVALID_SYNTAX_ERROR error: Bad Request message: '%s' statusCode: 400 schema: $ref: '#/components/schemas/ErrorResponse' description: default error response type '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 security: - CookiesSession: [] 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 '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: 意料之外的服务器错误 description: 意料之外的服务器错误 tags: - wiki