//#region src/types/types/index.d.ts
/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
interface paths {
'/calendar': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 每日放送 */
get: operations['getCalendar'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/search/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* 条目搜索
* @description ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
*
* 目前支持的筛选条件包括:
* - `type`: 条目类型,参照 `SubjectType` enum, `或`。
* - `tag`: 标签,可以多次出现。`且` 关系。
* - `air_date`: 播出日期/发售日期。`且` 关系。
* - `rating`: 用于搜索指定评分的条目。`且` 关系。
* - `rating_count`: 用于按照评分人数筛选条目。`且` 关系。
* - `rank`: 用于搜索指定排名的条目。`且` 关系。
* - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
*
* 不同筛选条件之间为 `且`
*/
post: operations['searchSubjects'];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/search/characters': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* 角色搜索
* @description ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
*
* 目前支持的筛选条件包括:
* - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
*/
post: operations['searchCharacters'];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/search/persons': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* 人物搜索
* @description ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
*
* 目前支持的筛选条件包括:
* - `career`: 职业,可以多次出现。`且` 关系。
*
* 不同筛选条件之间为 `且`
*/
post: operations['searchPersons'];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* 浏览条目
* @description 第一页会 cache 24h,之后会 cache 1h
*/
get: operations['getSubjects'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/subjects/{subject_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* 获取条目
* @description cache with 300s
*/
get: operations['getSubjectById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/subjects/{subject_id}/image': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Subject Image */
get: operations['getSubjectImageById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/subjects/{subject_id}/persons': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Subject Persons */
get: operations['getRelatedPersonsBySubjectId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/subjects/{subject_id}/characters': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Subject Characters */
get: operations['getRelatedCharactersBySubjectId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/subjects/{subject_id}/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Subject Relations */
get: operations['getRelatedSubjectsBySubjectId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/episodes': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Episodes */
get: operations['getEpisodes'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/episodes/{episode_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Episode */
get: operations['getEpisodeById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/characters/{character_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Character Detail
* @description cache with 60s
*/
get: operations['getCharacterById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/characters/{character_id}/image': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Character Image */
get: operations['getCharacterImageById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/characters/{character_id}/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** get character related subjects */
get: operations['getRelatedSubjectsByCharacterId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/characters/{character_id}/persons': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** get character related persons */
get: operations['getRelatedPersonsByCharacterId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/characters/{character_id}/collect': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Collect character for current user
* @description 为当前用户收藏角色
*/
post: operations['collectCharacterByCharacterIdAndUserId'];
/**
* Uncollect character for current user
* @description 为当前用户取消收藏角色
*/
delete: operations['uncollectCharacterByCharacterIdAndUserId'];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/persons/{person_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get Person
* @description cache with 60s
*/
get: operations['getPersonById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/persons/{person_id}/image': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Person Image */
get: operations['getPersonImageById'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/persons/{person_id}/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** get person related subjects */
get: operations['getRelatedSubjectsByPersonId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/persons/{person_id}/characters': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** get person related characters */
get: operations['getRelatedCharactersByPersonId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/persons/{person_id}/collect': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Collect person for current user
* @description 为当前用户收藏人物
*/
post: operations['collectPersonByPersonIdAndUserId'];
/**
* Uncollect person for current user
* @description 为当前用户取消收藏人物
*/
delete: operations['uncollectPersonByPersonIdAndUserId'];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get User by name
* @description 获取用户信息
*/
get: operations['getUserByName'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/avatar': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get User Avatar by name
* @description 获取用户头像,302 重定向至头像地址,设置了 username 之后无法使用 UID 查询。
*/
get: operations['getUserAvatarByName'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/me': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get User
* @description 返回当前 Access Token 对应的用户信息
*/
get: operations['getMyself'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/collections': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* 获取用户收藏
* @description 获取对应用户的收藏,查看私有收藏需要access token。
*/
get: operations['getUserCollectionsByUsername'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/collections/{subject_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* 获取用户单个条目收藏
* @description 获取对应用户的收藏,查看私有收藏需要 access token
*/
get: operations['getUserCollection'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/-/collections/{subject_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* 新增或修改用户单个条目收藏
* @description 修改条目收藏状态, 如果不存在则创建,如果存在则修改
*
* 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
*
* 方法的所有请求体字段均可选
*/
post: operations['postUserCollection'];
delete?: never;
options?: never;
head?: never;
/**
* 修改用户单个收藏
* @description 修改条目收藏状态
*
* 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
*
* PATCH 方法的所有请求体字段均可选
*/
patch: operations['patchUserCollection'];
trace?: never;
};
'/v0/users/-/collections/{subject_id}/episodes': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 章节收藏信息 */
get: operations['getUserSubjectEpisodeCollection'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* 章节收藏信息
* @description 同时会重新计算条目的完成度
*/
patch: operations['patchUserSubjectEpisodeCollection'];
trace?: never;
};
'/v0/users/-/collections/-/episodes/{episode_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 章节收藏信息 */
get: operations['getUserEpisodeCollection']; /** 更新章节收藏信息 */
put: operations['putUserEpisodeCollection'];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/collections/-/characters': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 获取用户角色收藏列表 */
get: operations['getUserCharacterCollections'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/collections/-/characters/{character_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 获取用户单个角色收藏信息 */
get: operations['getUserCharacterCollection'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/collections/-/persons': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 获取用户人物收藏列表 */
get: operations['getUserPersonCollections'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/users/{username}/collections/-/persons/{person_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** 获取用户单个人物收藏信息 */
get: operations['getUserPersonCollection'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/persons': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Person Revisions */
get: operations['getPersonRevisions'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/persons/{revision_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Person Revision */
get: operations['getPersonRevisionByRevisionId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/characters': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Character Revisions */
get: operations['getCharacterRevisions'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/characters/{revision_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Character Revision */
get: operations['getCharacterRevisionByRevisionId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Subject Revisions */
get: operations['getSubjectRevisions'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/subjects/{revision_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Subject Revision */
get: operations['getSubjectRevisionByRevisionId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/episodes': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Episode Revisions */
get: operations['getEpisodeRevisions'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/revisions/episodes/{revision_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Episode Revision */
get: operations['getEpisodeRevisionByRevisionId'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/indices': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never; /** Create a new index */
post: operations['newIndex'];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/indices/{index_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Index By ID */
get: operations['getIndexById']; /** Edit index's information */
put: operations['editIndexById'];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/indices/{index_id}/subjects': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
}; /** Get Index Subjects */
get: operations['getIndexSubjectsByIndexId'];
put?: never; /** Add a subject to Index */
post: operations['addSubjectToIndexByIndexId'];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/indices/{index_id}/subjects/{subject_id}': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/**
* Edit subject information in a index
* @description 如果条目不存在于目录,会创建该条目
*/
put: operations['editIndexSubjectsByIndexIdAndSubjectID'];
post?: never; /** Delete a subject from a Index */
delete: operations['delelteSubjectFromIndexByIndexIdAndSubjectID'];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/v0/indices/{index_id}/collect': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Collect index for current user
* @description 为当前用户收藏一条目录
*/
post: operations['collectIndexByIndexIdAndUserId'];
/**
* Uncollect index for current user
* @description 为当前用户取消收藏一条目录
*/
delete: operations['uncollectIndexByIndexIdAndUserId'];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
interface components {
schemas: {
/**
* @description 条目类型
1 = book
2 = anime
3 = music
4 = game
6 = real
* @example 2
* @enum {integer}
*/
Legacy_SubjectType: 1 | 2 | 3 | 4 | 6;
Legacy_SubjectSmall: {
/**
* @description 条目 ID
* @example 12
*/
id?: number;
/**
* @description 条目地址
* @example https://bgm.tv/subject/12
*/
url?: string;
/**
* SubjectType
* @description 条目类型
* - `1` 为 书籍
* - `2` 为 动画
* - `3` 为 音乐
* - `4` 为 游戏
* - `6` 为 三次元
*
* 没有 `5`
* @example 2
* @enum {integer}
*/
type?: 1 | 2 | 3 | 4 | 6;
/**
* @description 条目名称
* @example ちょびっツ
*/
name?: string;
/**
* @description 条目中文名称
* @example 人形电脑天使心
*/
name_cn?: string;
/**
* @description 剧情简介
* @example 在不久的将来,电子技术飞速发展,电脑成为人们生活中不可缺少的一部分.主角的名字是本须和秀树,是个19岁的少年,由于考试失败,来到东京上补习班,过着贫穷潦倒的生活……\r\n到达东京的第一天,他很幸运的在垃圾堆捡到一个人型电脑,一直以来秀树都非常渴望拥有个人电脑.当他抱着她带返公寓后,却不知如何开机,在意想不到的地方找到开关并开启后,故事就此展开\r\n本须和秀树捡到了人型计算机〔唧〕。虽然不晓得她到底是不是〔Chobits〕,但她的身上似乎藏有极大的秘密。看到秀树为了钱而烦恼,唧出去找打工,没想到却找到了危险的工作!为了让秀树开心,唧开始到色情小屋打工。但她在遭到过度激烈的强迫要求之后失控。让周遭计算机因此而强制停摆。\r\n另一方面,秀树发现好友新保与补习班的清水老师有着不可告人的关系……
*/
summary?: string;
/**
* @description 放送开始日期
* @example 2002-04-02
*/
air_date?: string;
/**
* @description 放送星期
* @example 2
*/
air_weekday?: number; /** @description 封面 */
images?: {
/** @example https://lain.bgm.tv/pic/cover/l/c2/0a/12_24O6L.jpg */large?: string; /** @example https://lain.bgm.tv/pic/cover/c/c2/0a/12_24O6L.jpg */
common?: string; /** @example https://lain.bgm.tv/pic/cover/m/c2/0a/12_24O6L.jpg */
medium?: string; /** @example https://lain.bgm.tv/pic/cover/s/c2/0a/12_24O6L.jpg */
small?: string; /** @example https://lain.bgm.tv/pic/cover/g/c2/0a/12_24O6L.jpg */
grid?: string;
};
/**
* @description 话数
* @example 27
*/
eps?: number;
/**
* @description 话数
* @example 27
*/
eps_count?: number; /** @description 评分 */
rating?: {
/**
* @description 总评分人数
* @example 2289
*/
total?: number; /** @description 各分值评分人数 */
count?: {
/** @example 5 */1?: number; /** @example 3 */
2?: number; /** @example 4 */
3?: number; /** @example 6 */
4?: number; /** @example 46 */
5?: number; /** @example 267 */
6?: number; /** @example 659 */
7?: number; /** @example 885 */
8?: number; /** @example 284 */
9?: number; /** @example 130 */
10?: number;
};
/**
* @description 评分
* @example 7.6
*/
score?: number;
};
/**
* @description 排名
* @example 573
*/
rank?: number; /** @description 收藏人数 */
collection?: {
/**
* @description 想做
* @example 608
*/
wish?: number;
/**
* @description 做过
* @example 3010
*/
collect?: number;
/**
* @description 在做
* @example 103
*/
doing?: number;
/**
* @description 搁置
* @example 284
*/
on_hold?: number;
/**
* @description 抛弃
* @example 86
*/
dropped?: number;
};
};
Legacy_SubjectMedium: components['schemas']['Legacy_SubjectSmall'] & {
/** @description 角色信息 */crt?: (components['schemas']['Legacy_Character'] & {
/**
* @description 角色类型
* @example 主角
*/
role_name?: string;
})[]; /** @description 制作人员信息 */
staff?: (components['schemas']['Legacy_Person'] & {
/**
* @description 人物类型
* @example 主角
*/
role_name?: string; /** @description 职位 */
jobs?: string[];
})[];
};
Legacy_SubjectLarge: components['schemas']['Legacy_SubjectMedium'] & {
/** @description 章节列表 */eps?: components['schemas']['Legacy_Episode'][]; /** @description 讨论版 */
topic?: components['schemas']['Legacy_Topic'][]; /** @description 评论日志 */
blog?: components['schemas']['Legacy_Blog'][];
};
/**
* @description 章节类型
0 = 本篇
1 = 特别篇
2 = OP
3 = ED
4 = 预告/宣传/广告
5 = MAD
6 = 其他
* @example 0
* @enum {integer}
*/
Legacy_EpisodeType: 0 | 1 | 2 | 3 | 4 | 5 | 6; /** @description 章节信息 */
Legacy_Episode: {
/**
* @description 章节 ID
* @example 1027
*/
id?: number;
/**
* @description 章节地址
* @example https://bgm.tv/ep/1027
*/
url?: string;
type?: components['schemas']['Legacy_EpisodeType'];
/**
* @description 集数
* @example 1
*/
sort?: number;
/**
* @description 标题
* @example ちぃ 目覚める
*/
name?: string;
/**
* @description 简体中文标题
* @example 叽,觉醒了
*/
name_cn?: string;
/**
* @description 时长
* @example 24m
*/
duration?: string;
/**
* @description 放送日期
* @example 2002-04-03
*/
airdate?: string;
/**
* @description 回复数量
* @example 9
*/
comment?: number; /** @description 简介 */
desc?: string;
/**
* @description 放送状态
Air = 已放送
Today = 正在放送
NA = 未放送
* @example Air
* @enum {string}
*/
status?: 'Air' | 'Today' | 'NA';
}; /** @description 讨论版 */
Legacy_Topic: {
/** @description ID */id?: number; /** @description 地址 */
url?: string; /** @description 标题 */
title?: string; /** @description 所属对象(条目) ID */
main_id?: number; /** @description 发布时间 */
timestamp?: number; /** @description 最后回复时间 */
lastpost?: number; /** @description 回复数 */
replies?: number;
user?: components['schemas']['Legacy_User'];
}; /** @description 日志 */
Legacy_Blog: {
/** @description ID */id?: number; /** @description 地址 */
url?: string; /** @description 标题 */
title?: string; /** @description 概览 */
summary?: string; /** @description 图片 */
image?: string; /** @description 回复数 */
replies?: number;
/**
* @description 发布时间
* @example 1357144903
*/
timestamp?: number;
/**
* @description 发布时间
* @example 2013-1-2 16:41
*/
dateline?: string;
user?: components['schemas']['Legacy_User'];
}; /** @description 用户信息 */
Legacy_User: {
/**
* @description 用户 id
* @example 1
*/
id?: number;
/**
* @description 用户主页地址
* @example https://bgm.tv/user/sai
*/
url?: string;
/**
* @description 用户名
* @example sai
*/
username?: string;
/**
* @description 昵称
* @example Sai
*/
nickname?: string; /** @description 头像地址 */
avatar?: {
/** @example https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456 */large?: string; /** @example https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456 */
medium?: string; /** @example https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456 */
small?: string;
};
/**
* @description 签名
* @example Awesome!
*/
sign?: string;
usergroup?: components['schemas']['Legacy_UserGroup'];
};
/**
* @description 用户组
1 = 管理员
2 = Bangumi 管理猿
3 = 天窗管理猿
4 = 禁言用户
5 = 禁止访问用户
8 = 人物管理猿
9 = 维基条目管理猿
10 = 用户
11 = 维基人
* @example 11
* @enum {integer}
*/
Legacy_UserGroup: 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11; /** @description 现实人物 */
Legacy_Person: components['schemas']['Legacy_Mono'] & {
info?: components['schemas']['Legacy_MonoInfo'];
}; /** @description 虚拟角色 */
Legacy_Character: components['schemas']['Legacy_Mono'] & {
info?: components['schemas']['Legacy_MonoInfo']; /** @description 声优列表 */
actors?: components['schemas']['Legacy_MonoBase'][];
}; /** @description 人物(基础模型) */
Legacy_MonoBase: {
/** @description 人物 ID */id?: number; /** @description 人物地址 */
url?: string; /** @description 姓名 */
name?: string; /** @description 肖像 */
images?: {
/** @example https://lain.bgm.tv/pic/crt/l/ce/65/32_crt_XMJOj.jpg */large?: string; /** @example https://lain.bgm.tv/pic/crt/m/ce/65/32_crt_XMJOj.jpg */
medium?: string; /** @example https://lain.bgm.tv/pic/crt/s/ce/65/32_crt_XMJOj.jpg */
small?: string; /** @example https://lain.bgm.tv/pic/crt/g/ce/65/32_crt_XMJOj.jpg */
grid?: string;
};
}; /** @description 人物 */
Legacy_Mono: components['schemas']['Legacy_MonoBase'] & {
/** @description 简体中文名 */name_cn?: string; /** @description 回复数量 */
comment?: number; /** @description 收藏人数 */
collects?: number;
}; /** @description 人物信息 */
Legacy_MonoInfo: {
/**
* @description 生日
* @example 4月13日
*/
birth?: string;
/**
* @description 身高
* @example 152cm
*/
height?: string;
/**
* @description 性别
* @example 女
*/
gender?: string; /** @description 别名(另外添加出来的 key 为 0 开始的数字) */
alias?: {
/** @description 日文名 */jp?: string; /** @description 纯假名 */
kana?: string; /** @description 昵称 */
nick?: string; /** @description 罗马字 */
romaji?: string; /** @description 第二中文名 */
zh?: string;
}; /** @description 引用来源 */
source?: string | string[]; /** @description 简体中文名 */
name_cn?: string; /** @description 声优 */
cv?: string;
};
/**
* Subject ID
* @description 条目 ID
*/
SubjectID: number;
/**
* User
* @description 实际的返回值可能包括文档未声明的 `url` 字段,此字段主要用于开发者从 api 响应直接转跳到网页。
* 客户端开发者请不用依赖于此特性,此字段的值随时可能会改变。
* @example {
* "avatar": {
* "large": "https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456",
* "medium": "https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456",
* "small": "https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456"
* },
* "sign": "Awesome!",
* "username": "sai",
* "nickname": "Sai🖖",
* "id": 1,
* "user_group": 1
* }
*/
User: {
/** ID */id: number;
/**
* Username
* @description 唯一用户名,初始与 UID 相同,可修改一次
*/
username: string; /** Nickname */
nickname: string;
user_group: components['schemas']['UserGroup'];
avatar: components['schemas']['Avatar'];
/**
* Sign
* @description 个人签名
*/
sign: string;
};
/**
* Avatar
* @example {
* "large": "https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456",
* "medium": "https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456",
* "small": "https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456"
* }
*/
Avatar: {
/**
* Large
* Format: url
*/
large: string;
/**
* Medium
* Format: url
*/
medium: string;
/**
* Small
* Format: url
*/
small: string;
};
/**
* UserGroup
* @description 用户组 - 1 = 管理员 - 2 = Bangumi 管理猿 - 3 = 天窗管理猿 - 4 = 禁言用户 - 5 = 禁止访问用户 - 8 = 人物管理猿 - 9 = 维基条目管理猿 - 10 = 用户 - 11 = 维基人
* @enum {integer}
*/
UserGroup: 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11;
/**
* BloodType
* @description Blood type of a person. A, B, AB, O
* @enum {integer}
*/
BloodType: 1 | 2 | 3 | 4; /** Character */
Character: {
/** ID */id: number; /** Name */
name: string; /** @description 角色,机体,舰船,组织... */
type: number & components['schemas']['CharacterType'];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Summary */
summary: string; /** Locked */
locked: boolean;
/**
* Infobox
* @description server parsed infobox, a map from key to string or tuple
* null if server infobox is not valid
*/
infobox?: Record[];
/**
* Gender
* @description parsed from wiki, maybe null
*/
gender?: string; /** @description parsed from wiki, maybe null, `1, 2, 3, 4` for `A, B, AB, O` */
blood_type?: number & components['schemas']['BloodType'];
/**
* Birth Year
* @description parsed from wiki, maybe `null`
*/
birth_year?: number;
/**
* Birth Mon
* @description parsed from wiki, maybe `null`
*/
birth_mon?: number;
/**
* Birth Day
* @description parsed from wiki, maybe `null`
*/
birth_day?: number;
stat: components['schemas']['Stat'];
}; /** CharacterPerson */
CharacterPerson: {
/** ID */id: number; /** Name */
name: string; /** @description 角色,机体,舰船,组织... */
type: number & components['schemas']['CharacterType'];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Subject ID */
subject_id: number;
subject_type: components['schemas']['SubjectType']; /** Subject Name */
subject_name: string; /** Subject Name Cn */
subject_name_cn: string; /** Staff */
staff?: string;
};
/**
* CharacterType
* @description type of a character 角色,机体,舰船,组织...
* @enum {integer}
*/
CharacterType: 1 | 2 | 3 | 4;
/**
* CollectionType
* @description - `1`: 想看
* - `2`: 看过
* - `3`: 在看
* - `4`: 搁置
* - `5`: 抛弃
* @example 3
* @enum {integer}
*/
SubjectCollectionType: 1 | 2 | 3 | 4 | 5;
/**
* EpisodeCollectionType
* @description - `0`: 未收藏
* - `1`: 想看
* - `2`: 看过
* - `3`: 抛弃
* @example 2
* @enum {integer}
*/
EpisodeCollectionType: 1 | 2 | 3;
/**
* Creator
* @description 意义同Me
*/
Creator: {
/** Username */username: string; /** Nickname */
nickname: string;
}; /** DetailedRevision */
DetailedRevision: {
/** ID */id: number; /** Type */
type: number;
creator?: components['schemas']['Creator']; /** Summary */
summary: string;
/**
* Created At
* Format: date-time
*/
created_at: string;
/**
* Data
* @description 编辑修改内容,响应类型不固定
*/
data?: Record;
}; /** PersonRevision */
PersonRevision: components['schemas']['Revision'] & {
/** Data */data?: {
[key: string]: components['schemas']['PersonRevisionDataItem'];
};
}; /** PersonRevisionDataItem */
PersonRevisionDataItem: {
/** Person Infobox */prsn_infobox: string; /** Person Summary */
prsn_summary: string;
profession: components['schemas']['PersonRevisionProfession'];
extra: components['schemas']['RevisionExtra']; /** Person Name */
prsn_name: string;
}; /** PersonRevisionProfession */
PersonRevisionProfession: {
/** Producer */producer?: string; /** Mangaka */
mangaka?: string; /** Artist */
artist?: string; /** Seiyu */
seiyu?: string; /** Writer */
writer?: string; /** Illustrator */
illustrator?: string; /** Actor */
actor?: string;
}; /** RevisionExtra */
RevisionExtra: {
/** Image */img?: string;
}; /** SubjectRevision */
SubjectRevision: components['schemas']['Revision'] & {
data?: components['schemas']['SubjectRevisionData'];
}; /** SubjectRevisionData */
SubjectRevisionData: {
/** Field EPs */field_eps: number; /** Field Infobox */
field_infobox: string; /** Field Summary */
field_summary: string; /** Name */
name: string; /** Name CN */
name_cn: string; /** Platform */
platform: number; /** Subject ID */
subject_id: number; /** Type */
type: number; /** Type ID */
type_id: number; /** Vote Field */
vote_field: string;
}; /** CharacterRevision */
CharacterRevision: components['schemas']['Revision'] & {
/** Data */data?: {
[key: string]: components['schemas']['CharacterRevisionDataItem'];
};
}; /** CharacterRevisionDataItem */
CharacterRevisionDataItem: {
/** Character Infobox */infobox: string; /** Character Summary */
summary: string; /** Character Name */
name: string;
extra: components['schemas']['RevisionExtra'];
};
/**
* EpType
* @description 本篇 = 0
* 特别篇 = 1
* OP = 2
* ED = 3
* 预告/宣传/广告 = 4
* MAD = 5
* 其他 = 6
* @enum {integer}
*/
EpType: 0 | 1 | 2 | 3 | 4 | 5 | 6;
/**
* Episode
* @example {
* "airdate": "",
* "comment": 0,
* "desc": "",
* "disc": 0,
* "duration": "",
* "ep": 6,
* "id": 8,
* "name": "蒼と白の境界線",
* "name_cn": "",
* "sort": 6,
* "subject_id": 15,
* "type": 0,
* "duration_seconds": 1440
* }
*/
Episode: {
/** ID */id: number;
/**
* Type
* @description `0` 本篇,`1` SP,`2` OP,`3` ED
*/
type: number; /** Name */
name: string; /** Name Cn */
name_cn: string;
/**
* Sort
* @description 同类条目的排序和集数
*/
sort: number;
/**
* Ep
* @description 条目内的集数, 从`1`开始。非本篇剧集的此字段无意义
*/
ep?: number; /** Airdate */
airdate: string; /** Comment */
comment: number;
/**
* Duration
* @description 维基人填写的原始时长
*/
duration: string;
/**
* Desc
* @description 简介
*/
desc: string;
/**
* Disc
* @description 音乐曲目的碟片数
*/
disc: number; /** @description 服务器解析的时长,无法解析时为 `0` */
duration_seconds?: number;
}; /** EpisodeDetail */
EpisodeDetail: {
/** ID */id: number;
type: components['schemas']['EpType']; /** Name */
name: string; /** Name Cn */
name_cn: string;
/**
* Sort
* @description 同类条目的排序和集数
*/
sort: number;
/**
* Ep
* @description 条目内的集数, 从`1`开始。非本篇剧集的此字段无意义
*/
ep?: number; /** Airdate */
airdate: string; /** Comment */
comment: number; /** Duration */
duration: string;
/**
* Desc
* @description 简介
*/
desc: string;
/**
* Disc
* @description 音乐曲目的碟片数
*/
disc: number; /** Subject ID */
subject_id: number;
}; /** ErrorDetail */
ErrorDetail: {
/** Title */title: string; /** Description */
description: string; /** Detail */
details?: string | {
/** @description error message */error?: string; /** @description request path */
path?: string;
};
}; /** Images */
Images: {
/** Large */large: string; /** Common */
common: string; /** Medium */
medium: string; /** Small */
small: string; /** Grid */
grid: string;
}; /** Index */
Index: {
/** ID */id: number; /** Title */
title: string; /** Desc */
desc: string;
/**
* Total
* @description 收录条目总数
* @default 0
*/
total: number;
/**
* Stat
* @description 目录评论及收藏数
*/
stat: components['schemas']['Stat'];
/**
* Created At
* Format: date-time
*/
created_at: string;
/**
* Updated At
* Format: date-time
*/
updated_at: string;
creator: components['schemas']['Creator'];
/**
* Ban
* @deprecated
* @description deprecated, always false.
*/
ban: boolean; /** 目录是否包括 nsfw 条目 */
nsfw: boolean;
};
/**
* IndexSubject
* @description 同名字段意义同Subject
*/
IndexSubject: {
/** ID */id: number; /** Type */
type: number; /** Name */
name: string;
images?: components['schemas']['Images'];
infobox?: components['schemas']['WikiV0']; /** Date */
date?: string; /** Comment */
comment: string;
/**
* Added At
* Format: date-time
*/
added_at: string;
};
/**
* IndexBasicInfo
* @description 新增或修改条目的内容,同名字段意义同Subject
*/
IndexBasicInfo: {
/** Title */title?: string; /** Description */
description?: string;
};
/**
* IndexBasicInfo
* @description 新增某条目到目录的请求信息
*/
IndexSubjectAddInfo: {
/** Subject ID */subject_id?: number;
/**
* Sort
* @description 排序条件,越小越靠前
*/
sort?: number; /** Comment */
comment?: string;
};
/**
* IndexBasicInfo
* @description 修改目录中条目的信息
*/
IndexSubjectEditInfo: {
/**
* Sort
* @description 排序条件,越小越靠前
*/
sort?: number; /** Comment */
comment?: string;
};
/**
* Infobox
* @example [
* {
* "key": "简体中文名",
* "value": "鲁路修·兰佩路基"
* },
* {
* "key": "别名",
* "value": [
* {
* "v": "L.L."
* },
* {
* "v": "勒鲁什"
* },
* {
* "v": "鲁鲁修"
* },
* {
* "v": "ゼロ"
* },
* {
* "v": "Zero"
* },
* {
* "k": "英文名",
* "v": "Lelouch Lamperouge"
* },
* {
* "k": "第二中文名",
* "v": "鲁路修·冯·布里塔尼亚"
* },
* {
* "k": "英文名二",
* "v": "Lelouch Vie Britannia"
* },
* {
* "k": "日文名",
* "v": "ルルーシュ・ヴィ・ブリタニア"
* }
* ]
* },
* {
* "key": "性别",
* "value": "男"
* },
* {
* "key": "生日",
* "value": "12月5日"
* },
* {
* "key": "血型",
* "value": "A型"
* },
* {
* "key": "身高",
* "value": "178cm→181cm"
* },
* {
* "key": "体重",
* "value": "54kg"
* },
* {
* "key": "引用来源",
* "value": "Wikipedia"
* }
* ]
*/
WikiV0: {
/** Key */key: string; /** Value */
value: string | ({
/** K */k: string; /** V */
v: string;
} | {
/** V */v: string;
})[];
}[];
Page: {
/** Total */total: number; /** Limit */
limit: number; /** Offset */
offset: number;
}; /** Paged[Subject] */
Paged_Subject: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['Subject'][];
}; /** Paged[Character] */
Paged_Character: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['Character'][];
}; /** Paged[Person] */
Paged_Person: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['Person'][];
}; /** Paged[Episode] */
Paged_Episode: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['Episode'][];
}; /** Paged[IndexSubject] */
Paged_IndexSubject: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['IndexSubject'][];
}; /** Paged[Revision] */
Paged_Revision: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['Revision'][];
}; /** Paged[UserCollection] */
Paged_UserCollection: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['UserSubjectCollection'][];
}; /** Paged[UserCharacterCollection] */
Paged_UserCharacterCollection: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['UserCharacterCollection'][];
}; /** Paged[UserPersonCollection] */
Paged_UserPersonCollection: {
/**
* Total
* @default 0
*/
total: number;
/**
* Limit
* @default 0
*/
limit: number;
/**
* Offset
* @default 0
*/
offset: number;
/**
* Data
* @default []
*/
data: components['schemas']['UserPersonCollection'][];
}; /** Person */
Person: {
/** ID */id: number; /** Name */
name: string; /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
type: number & components['schemas']['PersonType'];
career: components['schemas']['PersonCareer'][];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Short Summary */
short_summary: string; /** Locked */
locked: boolean;
};
/**
* PersonCareer
* @description An enumeration.
* @enum {string}
*/
PersonCareer: 'producer' | 'mangaka' | 'artist' | 'seiyu' | 'writer' | 'illustrator' | 'actor'; /** PersonCharacter */
PersonCharacter: {
/** ID */id: number; /** Name */
name: string; /** @description 角色,机体,舰船,组织... */
type: number & components['schemas']['CharacterType'];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Subject ID */
subject_id: number;
subject_type: components['schemas']['SubjectType']; /** Subject Name */
subject_name: string; /** Subject Name Cn */
subject_name_cn: string; /** Staff */
staff?: string;
}; /** PersonDetail */
PersonDetail: {
/** ID */id: number; /** Name */
name: string; /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
type: number & components['schemas']['PersonType'];
career: components['schemas']['PersonCareer'][];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Summary */
summary: string; /** Locked */
locked: boolean;
/**
* Last Modified
* Format: date-time
* @description currently it's latest user comment time, it will be replaced by wiki modified date in the future
*/
last_modified: string;
/**
* Infobox
* @description server parsed infobox, a map from key to string or tuple
* null if server infobox is not valid
*/
infobox?: Record[];
/**
* Gender
* @description parsed from wiki, maybe null
*/
gender?: string; /** @description parsed from wiki, maybe null, `1, 2, 3, 4` for `A, B, AB, O` */
blood_type?: number & components['schemas']['BloodType'];
/**
* Birth Year
* @description parsed from wiki, maybe `null`
*/
birth_year?: number;
/**
* Birth Mon
* @description parsed from wiki, maybe `null`
*/
birth_mon?: number;
/**
* Birth Day
* @description parsed from wiki, maybe `null`
*/
birth_day?: number;
stat: components['schemas']['Stat'];
}; /** PersonImages */
PersonImages: {
/** Large */large: string; /** Medium */
medium: string; /** Small */
small: string; /** Grid */
grid: string;
};
/**
* PersonType
* @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合`
* @enum {integer}
*/
PersonType: 1 | 2 | 3; /** RelatedCharacter */
RelatedCharacter: {
/** ID */id: number; /** Name */
name: string; /** Summary */
summary: string; /** @description 角色,机体,舰船,组织... */
type: number & components['schemas']['CharacterType'];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Relation */
relation: string;
/**
* Actors
* @description 演员列表
* @default []
*/
actors: components['schemas']['Person'][];
}; /** RelatedPerson */
RelatedPerson: {
/** ID */id: number; /** Name */
name: string; /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
type: number & components['schemas']['PersonType'];
career: components['schemas']['PersonCareer'][];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages']; /** Relation */
relation: string;
/**
* Eps
* @description 参与章节/曲目
*/
eps: string;
}; /** UserCharacterCollection */
UserCharacterCollection: {
/** ID */id: number; /** Name */
name: string; /** @description 角色,机体,舰船,组织... */
type: number & components['schemas']['CharacterType'];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages'];
/**
* Created At
* Format: date-time
*/
created_at: string;
}; /** UserPersonCollection */
UserPersonCollection: {
/** ID */id: number; /** Name */
name: string; /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
type: number & components['schemas']['PersonType'];
career: components['schemas']['PersonCareer'][];
/**
* Images
* @description object with some size of images, this object maybe `null`
*/
images?: components['schemas']['PersonImages'];
/**
* Created At
* Format: date-time
*/
created_at: string;
}; /** Revision */
Revision: {
/** ID */id: number; /** Type */
type: number;
creator?: components['schemas']['Creator']; /** Summary */
summary: string;
/**
* Created At
* Format: date-time
*/
created_at: string;
}; /** Stat */
Stat: {
/** Comments */comments: number; /** Collects */
collects: number;
}; /** Subject */
Subject: {
/** ID */id: number; /** Type */
type: number & components['schemas']['SubjectType']; /** Name */
name: string; /** Name Cn */
name_cn: string; /** Summary */
summary: string;
/**
* Series
* @description 是否为书籍系列的主条目
*/
series: boolean; /** Nsfw */
nsfw: boolean; /** Locked */
locked: boolean;
/**
* Date
* @description air date in `YYYY-MM-DD` format
*/
date?: string;
/**
* Platform
* @description TV, Web, 欧美剧, DLC...
*/
platform: string;
images: components['schemas']['Images'];
infobox?: components['schemas']['WikiV0'];
/**
* Volumes
* @description 书籍条目的册数,由旧服务端从wiki中解析
*/
volumes: number;
/**
* Eps
* @description 由旧服务端从wiki中解析,对于书籍条目为`话数`
*/
eps: number;
/**
* Total Episodes
* @description 数据库中的章节数量
*/
total_episodes: number; /** Rating */
rating: {
/** Rank */rank: number; /** Total */
total: number; /** Count */
count: {
1?: number;
2?: number;
3?: number;
4?: number;
5?: number;
6?: number;
7?: number;
8?: number;
9?: number;
10?: number;
}; /** Score */
score: number;
}; /** Collection */
collection: {
/** Wish */wish: number; /** Collect */
collect: number; /** Doing */
doing: number; /** On Hold */
on_hold: number; /** Dropped */
dropped: number;
}; /** @description 由维基人维护的 tag */
meta_tags: string[];
tags: components['schemas']['SubjectTags'];
}; /** SlimSubject */
SlimSubject: {
/** ID */id: number; /** Type */
type: number & components['schemas']['SubjectType']; /** Name */
name: string; /** Name Cn */
name_cn: string;
/**
* Summary
* @description 截短后的条目描述。
*/
short_summary: string;
/**
* Date
* @description air date in `YYYY-MM-DD` format
*/
date?: string;
images: components['schemas']['Images'];
/**
* Volumes
* @description 书籍条目的册数,由旧服务端从wiki中解析
*/
volumes: number;
/**
* Eps
* @description 由旧服务端从wiki中解析,对于书籍条目为`话数`
*/
eps: number;
/**
* Total
* @description 收藏人数
*/
collection_total: number;
/**
* Score
* @description 分数
*/
score: number;
/**
* Rank
* @description 排名
*/
rank: number; /** @description 前 10 个 tag */
tags: components['schemas']['SubjectTags'];
}; /** Tags */
SubjectTags: {
/** Name */name: string; /** Count */
count: number;
}[];
/**
* SubjectType
* @description 条目类型
* - `1` 为 书籍
* - `2` 为 动画
* - `3` 为 音乐
* - `4` 为 游戏
* - `6` 为 三次元
*
* 没有 `5`
* @example 2
* @enum {integer}
*/
SubjectType: 1 | 2 | 3 | 4 | 6;
/**
* SubjectBookCategory
* @description 书籍类型
* - `0` 为 其他
* - `1001` 为 漫画
* - `1002` 为 小说
* - `1003` 为 画集
* @example 1001
* @enum {integer}
*/
SubjectBookCategory: 0 | 1001 | 1002 | 1003;
/**
* SubjectAnimeCategory
* @description 动画类型
* - `0` 为 其他
* - `1` 为 TV
* - `2` 为 OVA
* - `3` 为 Movie
* - `5` 为 WEB
* @example 1
* @enum {integer}
*/
SubjectAnimeCategory: 0 | 1 | 2 | 3 | 5;
/**
* SubjectGameCategory
* @description 游戏类型
* - `0` 为 其他
* - `4001` 为 游戏
* - `4002` 为 软件
* - `4003` 为 扩展包
* - `4005` 为 桌游
* @example 4001
* @enum {integer}
*/
SubjectGameCategory: 0 | 4001 | 4003 | 4002 | 4005;
/**
* SubjectRealCategory
* @description 电影类型
* - `0` 为 其他
* - `1` 为 日剧
* - `2` 为 欧美剧
* - `3` 为 华语剧
* - `6001` 为 电视剧
* - `6002` 为 电影
* - `6003` 为 演出
* - `6004` 为 综艺
* @example 6
* @enum {integer}
*/
SubjectRealCategory: 0 | 1 | 2 | 3 | 6001 | 6002 | 6003 | 6004;
SubjectCategory: components['schemas']['SubjectBookCategory'] | components['schemas']['SubjectAnimeCategory'] | components['schemas']['SubjectGameCategory'] | components['schemas']['SubjectRealCategory']; /** UserSubjectCollection */
UserSubjectCollection: {
/**
* Subject ID
* @example 8
*/
subject_id: number;
subject_type: components['schemas']['SubjectType'];
/**
* Rate
* @example 4
*/
rate: number;
type: components['schemas']['SubjectCollectionType'];
/**
* Comment
* @example 看看
*/
comment?: string;
/**
* Tags
* @example [
* "柯南",
* "万年小学生",
* "推理",
* "青山刚昌",
* "TV"
* ]
*/
tags: string[];
/**
* Ep Status
* @example 5
*/
ep_status: number;
/**
* Vol Status
* @example 0
*/
vol_status: number;
/**
* Updated At
* Format: date-time
* @description 本时间并不代表条目的收藏时间。修改评分,评价,章节观看状态等收藏信息时未更新此时间是一个 bug。请不要依赖此特性
* @example 2022-06-19T18:44:13.6140127+08:00
*/
updated_at: string; /** Private */
private: boolean;
subject?: components['schemas']['SlimSubject'];
};
/**
* UserSubjectCollectionModifyPayload
* @description 所有的字段均可选
*/
UserSubjectCollectionModifyPayload: {
/** @description 修改条目收藏类型 */type?: components['schemas']['SubjectCollectionType']; /** @description 评分,`0` 表示删除评分 */
rate?: number; /** @description 只能用于修改书籍条目进度 */
ep_status?: number; /** @description 只能用于修改书籍条目进度 */
vol_status?: number; /** @description 评价 */
comment?: string; /** @description 仅自己可见 */
private?: boolean;
/**
* 标签
* @description 不传或者 `null` 都会被忽略,传 `[]` 则会删除所有 tag。
*/
tags?: string[];
};
UserEpisodeCollection: {
episode: components['schemas']['Episode'];
type: components['schemas']['EpisodeCollectionType'];
/**
* @description A int64 unix timestamp, `0` as unknown or un-recorded.
* @example [
* 0,
* 1700000000
* ]
*/
updated_at: number;
} & {
[key: string]: unknown;
}; /** RelatedSubject */
v0_RelatedSubject: {
/** ID */id: number;
type: components['schemas']['SubjectType']; /** Staff */
staff: string;
/**
* Eps
* @description 参与章节/曲目
*/
eps: string; /** Name */
name: string; /** Name Cn */
name_cn: string; /** Image */
image?: string;
}; /** SubjectRelation */
v0_subject_relation: {
/** ID */id: number; /** Type */
type: number; /** Name */
name: string; /** Name Cn */
name_cn: string;
images?: components['schemas']['Images']; /** Relation */
relation: string;
};
};
responses: {
/** @description Bad Request */400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Internal Server Error */
500: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Successful Response */
'200-no-content': {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
parameters: {
/** @description 条目 ID */path_subject_id: components['schemas']['SubjectID']; /** @description 设置了用户名之后无法使用 UID。 */
path_username: string; /** @description 章节 ID */
path_episode_id: number; /** @description 角色 ID */
path_character_id: number; /** @description 人物 ID */
path_person_id: number; /** @description 目录 ID */
path_index_id: number; /** @description 条目 ID */
query_subject_id: components['schemas']['SubjectID']; /** @description 分页参数 */
default_query_limit: number; /** @description 分页参数 */
default_query_offset: number; /** @description 版本 ID */
path_revision_id: number;
};
requestBodies: never;
headers: never;
pathItems: never;
}
interface operations {
getCalendar: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description 每日放送 */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': {
weekday?: {
/** @example Mon */en?: string; /** @example 星期一 */
cn?: string; /** @example 月耀日 */
ja?: string; /** @example 1 */
id?: number;
};
items?: components['schemas']['Legacy_SubjectSmall'][];
}[];
};
};
};
};
searchSubjects: {
parameters: {
query?: {
/** @description 分页参数 */limit?: number; /** @description 分页参数 */
offset?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: {
content: {
'application/json': {
keyword: string;
/**
* @description 排序规则
*
* - `match` meilisearch 的默认排序,按照匹配程度
* - `heat` 收藏人数
* - `rank` 排名由高到低
* - `score` 评分
* @default match
* @example rank
* @enum {string}
*/
sort?: 'match' | 'heat' | 'rank' | 'score'; /** @description 不同条件之间是 `且` 的关系 */
filter?: {
/** @description 条目类型,参照 `SubjectType` enum,多值之间为 `或` 的关系。 */type?: components['schemas']['SubjectType'][];
/**
* @description 公共标签。多个值之间为 `且` 关系。可以用 `-` 排除标签。比如 `-科幻` 可以排除科幻标签。
* @example [
* "童年",
* "原创"
* ]
*/
meta_tags?: string[];
/**
* @description 标签,可以多次出现。多值之间为 `且` 关系。
* @example [
* "童年",
* "原创"
* ]
*/
tag?: string[];
/**
* @description 播出日期/发售日期,日期必需为 `YYYY-MM-DD` 格式。多值之间为 `且` 关系。
* @example [
* ">=2020-07-01",
* "<2020-10-01"
* ]
*/
air_date?: string[];
/**
* @description 用于搜索指定评分的条目,多值之间为 `且` 关系。
* @example [
* ">=6",
* "<8"
* ]
*/
rating?: string[];
/**
* @description 用于按照评分人数筛选条目,多值之间为 `且` 关系,格式与 `rating` 相同。
* @example [
* ">=200",
* "<5000"
* ]
*/
rating_count?: string[];
/**
* @description 用于搜索指定排名的条目,多值之间为 `且` 关系。
* @example [
* ">10",
* "<=18"
* ]
*/
rank?: string[];
/**
* @description 无权限的用户会直接忽略此字段,不会返回R18条目。
*
* 默认或者 `null` 会返回包含 R18 的所有搜索结果。
*
* `true` 只会返回 R18 条目。
*
* `false` 只会返回非 R18 条目。
*/
nsfw?: boolean;
};
};
};
};
responses: {
/** @description 返回搜索结果 */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Subject'];
};
};
};
};
searchCharacters: {
parameters: {
query?: {
/** @description 分页参数 */limit?: number; /** @description 分页参数 */
offset?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: {
content: {
'application/json': {
keyword: string; /** @description 不同条件之间是 `且` 的关系 */
filter?: {
/**
* @description 无权限的用户会直接忽略此字段,不会返回 R18 角色。
*
* 默认或者 `null` 会返回包含 R18 的所有搜索结果。
*
* `true` 只会返回 R18 角色。
*
* `false` 只会返回非 R18 角色。
*/
nsfw?: boolean;
};
};
};
};
responses: {
/** @description 返回搜索结果 */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Character'];
};
};
};
};
searchPersons: {
parameters: {
query?: {
/** @description 分页参数 */limit?: number; /** @description 分页参数 */
offset?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: {
content: {
'application/json': {
keyword: string; /** @description 不同条件之间是 `且` 的关系 */
filter?: {
/**
* @description 职业,可以多次出现。多值之间为 `且` 关系。
* @example [
* "artist",
* "director"
* ]
*/
career?: string[];
};
};
};
};
responses: {
/** @description 返回搜索结果 */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Person'];
};
};
};
};
getSubjects: {
parameters: {
query: {
/** @description 条目类型 */type: components['schemas']['SubjectType']; /** @description 条目分类,参照 `SubjectCategory` enum */
cat?: components['schemas']['SubjectCategory']; /** @description 是否系列,仅对书籍类型的条目有效 */
series?: boolean; /** @description 平台,仅对游戏类型的条目有效 */
platform?: string; /** @description 排序,枚举值 {date|rank} */
sort?: string; /** @description 年份 */
year?: number; /** @description 月份 */
month?: number; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Subject'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getSubjectById: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Subject'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getSubjectImageById: {
parameters: {
query: {
/** @description 枚举值 {small|grid|large|medium|common} */type: string;
};
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */302: {
headers: {
/**
* @description 图片链接
* 无图时返回默认图片 https://lain.bgm.tv/img/no_icon_subject.png
*/
Location?: string;
[name: string]: unknown;
};
content?: never;
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedPersonsBySubjectId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['RelatedPerson'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedCharactersBySubjectId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['RelatedCharacter'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedSubjectsBySubjectId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['v0_subject_relation'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getEpisodes: {
parameters: {
query: {
/** @description 条目 ID */subject_id: components['parameters']['query_subject_id']; /** @description 参照章节的`type` */
type?: components['schemas']['EpType']; /** @description 分页参数 */
limit?: number; /** @description 分页参数 */
offset?: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Episode'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getEpisodeById: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 章节 ID */episode_id: components['parameters']['path_episode_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['EpisodeDetail'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getCharacterById: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 角色 ID */character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Character'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getCharacterImageById: {
parameters: {
query: {
/** @description 枚举值 {small|grid|large|medium} */type: string;
};
header?: never;
path: {
/** @description 角色 ID */character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */302: {
headers: {
/**
* @description 图片链接
* 无图时返回默认图片 https://lain.bgm.tv/img/no_icon_subject.png
*/
Location?: string;
[name: string]: unknown;
};
content?: never;
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedSubjectsByCharacterId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 角色 ID */character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['v0_RelatedSubject'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedPersonsByCharacterId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 角色 ID */character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['CharacterPerson'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
collectCharacterByCharacterIdAndUserId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 角色 ID */character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description character ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 角色不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
uncollectCharacterByCharacterIdAndUserId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 角色 ID */character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description character ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 角色不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getPersonById: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 人物 ID */person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['PersonDetail'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getPersonImageById: {
parameters: {
query: {
/** @description 枚举值 {small|grid|large|medium} */type: string;
};
header?: never;
path: {
/** @description 人物 ID */person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */302: {
headers: {
/**
* @description 图片链接
* 无图时返回默认图片 https://lain.bgm.tv/img/no_icon_subject.png
*/
Location?: string;
[name: string]: unknown;
};
content?: never;
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedSubjectsByPersonId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 人物 ID */person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['v0_RelatedSubject'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getRelatedCharactersByPersonId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 人物 ID */person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['PersonCharacter'][];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
collectPersonByPersonIdAndUserId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 人物 ID */person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description person ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 人物不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
uncollectPersonByPersonIdAndUserId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 人物 ID */person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description person ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 人物不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserByName: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['User'];
};
}; /** @description username 太长 */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 对应用户不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserAvatarByName: {
parameters: {
query: {
/** @description 枚举值 {small|large|medium} */type: string;
};
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */302: {
headers: {
/**
* @description 用户头像链接
* 无头像时返回默认头像 https://lain.bgm.tv/pic/user/m/icon.jpg
*/
Location?: string;
[name: string]: unknown;
};
content?: never;
}; /** @description username 太长 */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 对应用户不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getMyself: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['User'] & unknown & {
/**
* Format: email
* @description 用户绑定的邮箱地址
*/
email?: string;
/**
* Format: date-time
* @description 用户注册时间。比如 2017-12-03T08:51:16+08:00
*/
reg_time?: string; /** @description 用户设置的时区偏移,以小时为单位。比如 GMT+8(shanghai/beijing)为 8 */
time_offset?: number;
};
};
}; /** @description unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserCollectionsByUsername: {
parameters: {
query?: {
/**
* @description 条目类型,默认为全部
*
* 具体含义见 [SubjectType](#model-SubjectType)
*/
subject_type?: components['schemas']['SubjectType'];
/**
* @description 收藏类型,默认为全部
*
* 具体含义见 [CollectionType](#model-CollectionType)
*/
type?: components['schemas']['SubjectCollectionType']; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_UserCollection'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 用户不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username']; /** @description 条目 ID */
subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['UserSubjectCollection'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 用户不存在或者条目未收藏,或者条目为私有收藏 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
postUserCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': components['schemas']['UserSubjectCollectionModifyPayload'];
};
};
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 用户不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
patchUserCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': components['schemas']['UserSubjectCollectionModifyPayload'];
};
};
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 用户不存在或者条目未收藏 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserSubjectEpisodeCollection: {
parameters: {
query?: {
/** @description 分页参数 */offset?: components['parameters']['default_query_offset']; /** @description 分页参数 */
limit?: number; /** @description 章节类型,不传则不按照章节进行筛选 */
episode_type?: components['schemas']['EpType'];
};
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Page'] & {
data?: components['schemas']['UserEpisodeCollection'][];
};
};
}; /** @description Bad Request */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 条目不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
patchUserSubjectEpisodeCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 条目 ID */subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': {
/**
* @example [
* 1,
* 2,
* 8
* ]
*/
episode_id: number[];
type: components['schemas']['EpisodeCollectionType'];
};
};
};
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description Bad Request */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 条目不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserEpisodeCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 章节 ID */episode_id: components['parameters']['path_episode_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['UserEpisodeCollection'];
};
}; /** @description episode ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 条目或者章节不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
putUserEpisodeCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 章节 ID */episode_id: components['parameters']['path_episode_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': {
type: components['schemas']['EpisodeCollectionType'];
};
};
};
responses: {
/** @description Successful Response */204: {
headers: {
[name: string]: unknown;
};
content?: never;
}; /** @description episode ID not valid or subject not collected */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description not authorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 条目或者章节不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserCharacterCollections: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_UserCharacterCollection'];
};
}; /** @description 用户不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserCharacterCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username']; /** @description 角色 ID */
character_id: components['parameters']['path_character_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['UserCharacterCollection'];
};
}; /** @description character ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 用户或角色不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserPersonCollections: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_UserPersonCollection'];
};
}; /** @description 用户不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getUserPersonCollection: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 设置了用户名之后无法使用 UID。 */username: components['parameters']['path_username']; /** @description 人物 ID */
person_id: components['parameters']['path_person_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['UserPersonCollection'];
};
}; /** @description person ID not valid */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description 用户或人物不存在 */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getPersonRevisions: {
parameters: {
query: {
/** @description 角色 ID */person_id: number; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Revision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getPersonRevisionByRevisionId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 历史版本 ID */revision_id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['PersonRevision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getCharacterRevisions: {
parameters: {
query: {
/** @description 角色 ID */character_id: number; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Revision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getCharacterRevisionByRevisionId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 版本 ID */revision_id: components['parameters']['path_revision_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['CharacterRevision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getSubjectRevisions: {
parameters: {
query: {
/** @description 条目 ID */subject_id: number; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Revision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getSubjectRevisionByRevisionId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 版本 ID */revision_id: components['parameters']['path_revision_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['SubjectRevision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getEpisodeRevisions: {
parameters: {
query: {
/** @description 章节 ID */episode_id: number; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Paged_Revision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getEpisodeRevisionByRevisionId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 版本 ID */revision_id: components['parameters']['path_revision_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['DetailedRevision'];
};
}; /** @description Validation Error */
400: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
}; /** @description Not Found */
404: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
newIndex: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Index'];
};
}; /** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['ErrorDetail'];
};
};
};
};
getIndexById: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Index'];
};
};
404: components['responses']['404'];
};
};
editIndexById: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': components['schemas']['IndexBasicInfo'];
};
};
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['Index'];
};
};
400: components['responses']['400'];
401: components['responses']['401'];
404: components['responses']['404'];
};
};
getIndexSubjectsByIndexId: {
parameters: {
query?: {
/** @description 条目类型 */type?: components['schemas']['SubjectType']; /** @description 分页参数 */
limit?: components['parameters']['default_query_limit']; /** @description 分页参数 */
offset?: components['parameters']['default_query_offset'];
};
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
400: components['responses']['400'];
404: components['responses']['404'];
};
};
addSubjectToIndexByIndexId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': components['schemas']['IndexSubjectAddInfo'];
};
};
responses: {
200: components['responses']['200-no-content'];
400: components['responses']['401'];
401: components['responses']['400'];
404: components['responses']['404'];
};
};
editIndexSubjectsByIndexIdAndSubjectID: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id']; /** @description 条目 ID */
subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: {
content: {
'application/json': components['schemas']['IndexSubjectEditInfo'];
};
};
responses: {
200: components['responses']['200-no-content'];
400: components['responses']['400'];
401: components['responses']['401'];
404: components['responses']['404'];
};
};
delelteSubjectFromIndexByIndexIdAndSubjectID: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id']; /** @description 条目 ID */
subject_id: components['parameters']['path_subject_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
200: components['responses']['200-no-content'];
401: components['responses']['401'];
404: components['responses']['404'];
};
};
collectIndexByIndexIdAndUserId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
200: components['responses']['200-no-content'];
401: components['responses']['401'];
404: components['responses']['404'];
500: components['responses']['500'];
};
};
uncollectIndexByIndexIdAndUserId: {
parameters: {
query?: never;
header?: never;
path: {
/** @description 目录 ID */index_id: components['parameters']['path_index_id'];
};
cookie?: never;
};
requestBody?: never;
responses: {
200: components['responses']['200-no-content'];
401: components['responses']['401'];
404: components['responses']['404'];
500: components['responses']['500'];
};
};
}
//#endregion
//#region src/types/params.d.ts
type JsonRequestBody = NonNullable extends {
content: {
'application/json': infer TBody;
};
} ? TBody : never;
/** 条目 */
declare namespace BGMSubjectParams {
type SearchRequestBody = JsonRequestBody;
type SearchQuery = paths['/v0/search/subjects']['post']['parameters']['query'];
/** 实验性 API, 随时可能发生改动 */
export type Search = {
query: SearchQuery;
requestBody: SearchRequestBody;
};
export type Subjects = paths['/v0/subjects']['get']['parameters'];
export type Information = paths['/v0/subjects/{subject_id}']['get']['parameters'];
export type Image = paths['/v0/subjects/{subject_id}/image']['get']['parameters'];
export type Persons = paths['/v0/subjects/{subject_id}/persons']['get']['parameters'];
export type Characters = paths['/v0/subjects/{subject_id}/characters']['get']['parameters'];
export type RelatedSubjects = paths['/v0/subjects/{subject_id}/subjects']['get']['parameters'];
export {};
}
/** 章节 */
declare namespace BGMEpisodeParams {
type Episodes = paths['/v0/episodes']['get']['parameters'];
type EpisodeItem = paths['/v0/episodes/{episode_id}']['get']['parameters'];
}
/** 角色 */
declare namespace BGMCharacterParams {
type SearchRequestBody = JsonRequestBody;
type SearchQuery = paths['/v0/search/characters']['post']['parameters']['query'];
/** 实验性 API, 随时可能发生改动 */
export type Search = {
query: SearchQuery;
requestBody: SearchRequestBody;
};
export type Information = paths['/v0/characters/{character_id}']['get']['parameters'];
export type Image = paths['/v0/characters/{character_id}/image']['get']['parameters'];
export type Subjects = paths['/v0/characters/{character_id}/subjects']['get']['parameters'];
export type Persons = paths['/v0/characters/{character_id}/persons']['get']['parameters'];
export type Collect = paths['/v0/characters/{character_id}/collect']['post']['parameters'];
export type DeleteCollect = paths['/v0/characters/{character_id}/collect']['delete']['parameters'];
export {};
}
/** 人物 */
declare namespace BGMPersonParams {
type SearchRequestBody = JsonRequestBody;
type SearchQuery = paths['/v0/search/persons']['post']['parameters']['query'];
/** 实验性 API, 随时可能发生改动 */
export type Search = {
query: SearchQuery;
requestBody: SearchRequestBody;
};
export type Information = paths['/v0/persons/{person_id}']['get']['parameters'];
export type Image = paths['/v0/persons/{person_id}/image']['get']['parameters'];
export type Subject = paths['/v0/persons/{person_id}/subjects']['get']['parameters'];
export type Characters = paths['/v0/persons/{person_id}/characters']['get']['parameters'];
export type Collect = paths['/v0/persons/{person_id}/collect']['post']['parameters'];
export type DeleteCollect = paths['/v0/persons/{person_id}/collect']['delete']['parameters'];
export {};
}
/** 用户 */
declare namespace BGMUserParams {
type Information = paths['/v0/users/{username}']['get']['parameters'];
type Avatar = paths['/v0/users/{username}/avatar']['get']['parameters'];
}
/** 收藏 */
declare namespace BGMCollectionParams {
export type Information = paths['/v0/users/{username}/collections']['get']['parameters'];
export type Subject = paths['/v0/users/{username}/collections/{subject_id}']['get']['parameters'];
export type Characters = paths['/v0/users/{username}/collections/-/characters']['get']['parameters'];
export type Character = paths['/v0/users/{username}/collections/-/characters/{character_id}']['get']['parameters'];
export type Persons = paths['/v0/users/{username}/collections/-/persons']['get']['parameters'];
export type Person = paths['/v0/users/{username}/collections/-/persons/{person_id}']['get']['parameters'];
type PatchSubjectPath = paths['/v0/users/-/collections/{subject_id}']['patch']['parameters']['path'];
type PatchSubjectRequestBody = JsonRequestBody;
export type PatchSubject = {
path: PatchSubjectPath;
requestBody: PatchSubjectRequestBody;
};
export type EpisodesInSubject = paths['/v0/users/-/collections/{subject_id}/episodes']['get']['parameters'];
type PatchEpisodesInSubjectPath = paths['/v0/users/-/collections/{subject_id}/episodes']['patch']['parameters']['path'];
type PatchEpisodesInSubjectRequestBody = JsonRequestBody;
export type PatchEpisodesInSubject = {
path: PatchEpisodesInSubjectPath;
requestBody: PatchEpisodesInSubjectRequestBody;
};
export type EpisodesInEpisodes = paths['/v0/users/-/collections/-/episodes/{episode_id}']['get']['parameters'];
type PutEpisodesInEpisodesPath = paths['/v0/users/-/collections/-/episodes/{episode_id}']['put']['parameters']['path'];
type PutEpisodesInEpisodesRequestBody = JsonRequestBody;
export type PutEpisodesInEpisodes = {
path: PutEpisodesInEpisodesPath;
requestBody: PutEpisodesInEpisodesRequestBody;
};
export {};
}
/** 编辑历史 */
declare namespace BGMEditHistoryParams {
type Persons = paths['/v0/revisions/persons']['get']['parameters'];
type PersonRevision = paths['/v0/revisions/persons/{revision_id}']['get']['parameters'];
type Characters = paths['/v0/revisions/characters']['get']['parameters'];
type CharacterRevision = paths['/v0/revisions/characters/{revision_id}']['get']['parameters'];
type Subjects = paths['/v0/revisions/subjects']['get']['parameters'];
type SubjectRevision = paths['/v0/revisions/subjects/{revision_id}']['get']['parameters'];
type Episodes = paths['/v0/revisions/episodes']['get']['parameters'];
type EpisodeRevision = paths['/v0/revisions/episodes/{revision_id}']['get']['parameters'];
}
/** 目录 */
declare namespace BGMCategoryParams {
export type Indices = paths['/v0/indices/{index_id}']['get']['parameters'];
type PutIndicesPath = paths['/v0/indices/{index_id}']['put']['parameters']['path'];
type PutIndicesRequestBody = JsonRequestBody;
export type PutIndices = {
path: PutIndicesPath;
requestBody: PutIndicesRequestBody;
};
export type Subjects = paths['/v0/indices/{index_id}/subjects']['get']['parameters'];
type AddSubjectsPath = paths['/v0/indices/{index_id}/subjects']['post']['parameters']['path'];
type AddSubjectsRequestBody = JsonRequestBody;
export type AddSubjects = {
path: AddSubjectsPath;
requestBody: AddSubjectsRequestBody;
};
type PutSubjectPath = paths['/v0/indices/{index_id}/subjects/{subject_id}']['put']['parameters']['path'];
type PutSubjectRequestBody = JsonRequestBody;
export type PutSubject = {
path: PutSubjectPath;
requestBody: PutSubjectRequestBody;
};
export type DeleteSubject = paths['/v0/indices/{index_id}/subjects/{subject_id}']['delete']['parameters'];
export type Collect = paths['/v0/indices/{index_id}/collect']['post']['parameters'];
export type DeleteCollect = paths['/v0/indices/{index_id}/collect']['delete']['parameters'];
export {};
}
/** 搜索 */
declare namespace BGMSearchParams {
type Search = {
path: {
keywords: string;
};
query: {
type?: components['schemas']['Legacy_SubjectType'];
responseGroup?: 'small' | 'medium' | 'large';
start?: number;
max_results?: number;
};
};
}
type BGMParams = {
path?: any;
query?: any;
requestBody?: any;
};
type Path = T['path'][keyof T['path']];
type Query = T['query'];
type RequestBody = T['requestBody'];
//#endregion
//#region src/types/type.d.ts
/** 条目 */
declare namespace BGMSubject {
type Calendar = paths['/calendar']['get']['responses']['200']['content']['application/json'];
type GetSubjects = paths['/v0/subjects']['get']['responses']['200']['content']['application/json'];
/** 实验性 API, 随时可能发生改动 */
type Search = paths['/v0/search/subjects']['post']['responses']['200']['content']['application/json'];
type Information = paths['/v0/subjects/{subject_id}']['get']['responses']['200']['content']['application/json'];
type Image = paths['/v0/subjects/{subject_id}/image']['get']['responses']['302'];
type Persons = paths['/v0/subjects/{subject_id}/persons']['get']['responses']['200']['content']['application/json'];
type Characters = paths['/v0/subjects/{subject_id}/characters']['get']['responses']['200']['content']['application/json'];
type RelatedSubjects = paths['/v0/subjects/{subject_id}/subjects']['get']['responses']['200']['content']['application/json'];
}
/** 章节 */
declare namespace BGMEpisode {
type Episodes = paths['/v0/episodes']['get']['responses']['200']['content']['application/json'];
type EpisodeItem = paths['/v0/episodes/{episode_id}']['get']['responses']['200']['content']['application/json'];
}
/** 角色 */
declare namespace BGMCharacter {
type Search = paths['/v0/search/characters']['post']['responses']['200']['content']['application/json'];
type Information = paths['/v0/characters/{character_id}']['get']['responses']['200']['content']['application/json'];
type Image = paths['/v0/characters/{character_id}/image']['get']['responses']['302'];
type Subjects = paths['/v0/characters/{character_id}/subjects']['get']['responses']['200']['content']['application/json'];
type Persons = paths['/v0/characters/{character_id}/persons']['get']['responses']['200']['content']['application/json'];
}
/** 人物 */
declare namespace BGMPerson {
type Search = paths['/v0/search/persons']['post']['responses']['200']['content']['application/json'];
type Information = paths['/v0/persons/{person_id}']['get']['responses']['200']['content']['application/json'];
type Image = paths['/v0/persons/{person_id}/image']['get']['responses']['302'];
type Subjects = paths['/v0/persons/{person_id}/subjects']['get']['responses']['200']['content']['application/json'];
type Characters = paths['/v0/persons/{person_id}/characters']['get']['responses']['200']['content']['application/json'];
}
/** 用户 */
declare namespace BGMUser {
type Information = paths['/v0/users/{username}']['get']['responses']['200']['content']['application/json'];
type Avatar = paths['/v0/users/{username}/avatar']['get']['responses']['302'];
type Me = paths['/v0/me']['get']['responses']['200']['content']['application/json'];
}
/** 收藏 */
declare namespace BGMCollection {
type Information = paths['/v0/users/{username}/collections']['get']['responses']['200']['content']['application/json'];
type Subject = paths['/v0/users/{username}/collections/{subject_id}']['get']['responses']['200']['content']['application/json'];
type Characters = paths['/v0/users/{username}/collections/-/characters']['get']['responses']['200']['content']['application/json'];
type Character = paths['/v0/users/{username}/collections/-/characters/{character_id}']['get']['responses']['200']['content']['application/json'];
type Persons = paths['/v0/users/{username}/collections/-/persons']['get']['responses']['200']['content']['application/json'];
type Person = paths['/v0/users/{username}/collections/-/persons/{person_id}']['get']['responses']['200']['content']['application/json'];
type EpisodesInSubject = paths['/v0/users/-/collections/{subject_id}/episodes']['get']['responses']['200']['content']['application/json'];
type EpisodesInEpisodes = paths['/v0/users/-/collections/-/episodes/{episode_id}']['get']['responses']['200']['content']['application/json'];
}
/** 编辑历史 */
declare namespace BGMEditHistory {
type Persons = paths['/v0/revisions/persons']['get']['responses']['200']['content']['application/json'];
type PersonRevision = paths['/v0/revisions/persons/{revision_id}']['get']['responses']['200']['content']['application/json'];
type Characters = paths['/v0/revisions/characters']['get']['responses']['200']['content']['application/json'];
type CharacterRevision = paths['/v0/revisions/characters/{revision_id}']['get']['responses']['200']['content']['application/json'];
type Subjects = paths['/v0/revisions/subjects']['get']['responses']['200']['content']['application/json'];
type SubjectRevision = paths['/v0/revisions/subjects/{revision_id}']['get']['responses']['200']['content']['application/json'];
type Episodes = paths['/v0/revisions/episodes']['get']['responses']['200']['content']['application/json'];
type EpisodeRevision = paths['/v0/revisions/episodes/{revision_id}']['get']['responses']['200']['content']['application/json'];
}
/** 目录 */
declare namespace BGMCategory {
type Information = paths['/v0/indices/{index_id}']['get']['responses']['200']['content']['application/json'];
type Subjects = paths['/v0/indices/{index_id}/subjects']['get']['responses']['200'];
type Create = paths['/v0/indices']['post']['responses']['200']['content']['application/json'];
type Edit = paths['/v0/indices/{index_id}']['put']['responses']['200']['content']['application/json'];
type DeleteSubject = paths['/v0/indices/{index_id}/subjects/{subject_id}']['delete']['responses']['200'];
type Collect = paths['/v0/indices/{index_id}/collect']['post']['responses']['200'];
type DeleteCollect = paths['/v0/indices/{index_id}/collect']['delete']['responses']['200'];
}
/** 搜索 */
declare namespace BGMSearch {
type Search = {
results?: number;
list?: components['schemas']['Legacy_SubjectSmall'][];
} | {
results?: number;
list?: components['schemas']['Legacy_SubjectMedium'][];
} | {
results?: number;
list?: components['schemas']['Legacy_SubjectLarge'][];
};
}
//#endregion
//#region src/types/bgmd.d.ts
type BangumiType = 'tv' | 'web' | 'movie' | 'ova';
interface FullBangumi {
id: number;
name: string;
original?: string[];
alias: string[];
summary: string;
type: BangumiType;
air_date: string;
bangumi?: {
id: number;
name_cn: string;
images: {
small: string;
grid: string;
large: string;
medium: string;
common: string;
};
tags: string[];
};
tmdb?: {
id: number;
type: 'movie' | 'tv';
name: string;
original_name: string;
overview: string;
season?: number;
first_episode?: number;
poster_path: string;
backdrop_path: string | null;
};
}
//#endregion
export { RequestBody as C, Query as S, BGMPersonParams as _, BGMCollection as a, BGMUserParams as b, BGMPerson as c, BGMUser as d, BGMCategoryParams as f, BGMEpisodeParams as g, BGMEditHistoryParams as h, BGMCharacter as i, BGMSearch as l, BGMCollectionParams as m, FullBangumi as n, BGMEditHistory as o, BGMCharacterParams as p, BGMCategory as r, BGMEpisode as s, BangumiType as t, BGMSubject as u, BGMSearchParams as v, components as w, Path as x, BGMSubjectParams as y };