bgm-types
Version:
Bangumi Api Types
216 lines (155 loc) • 7.4 kB
text/typescript
import type { paths } from './types';
/** 条目 */
export namespace BGMSubjectParams {
/* ============ S - Search ============ */
type SearchRequestBody =
paths['/v0/search/subjects']['post']['requestBody']['content']['application/json'];
type SearchQuery = paths['/v0/search/subjects']['post']['parameters']['query'];
/** 实验性 API, 随时可能发生改动 */
export type Search = {
query: SearchQuery;
requestBody: SearchRequestBody;
};
/* ============ E - Search ============ */
export type Information = paths['/v0/subjects/{subject_id}']['get']['parameters'];
export type Image = paths['/v0/characters/{character_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 Subjects = paths['/v0/subjects/{subject_id}/subjects']['get']['parameters'];
}
/** 章节 */
export namespace BGMEpisodeParams {
export type Episodes = paths['/v0/episodes']['get']['parameters'];
export type EpisodeItem = paths['/v0/episodes/{episode_id}']['get']['parameters'];
}
/** 角色 */
export namespace BGMCharacterParams {
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 namespace BGMPersonParams {
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 namespace BGMUserParams {
export type Information = paths['/v0/users/{username}']['get']['parameters'];
export type Avatar = paths['/v0/users/{username}/avatar']['get']['parameters'];
}
/** 收藏 */
export namespace BGMCollectionParams {
export type Information =
paths['/v0/users/{username}/collections']['get']['parameters'];
export type Subject =
paths['/v0/users/{username}/collections/{subject_id}']['get']['parameters'];
/* ============ S - PatchSubject ============ */
type PatchSubjectPath =
paths['/v0/users/-/collections/{subject_id}']['patch']['parameters']['path'];
type PatchSubjectRequestBody =
paths['/v0/users/-/collections/{subject_id}']['patch']['requestBody']['content']['application/json'];
export type PatchSubject = {
path: PatchSubjectPath;
requestBody: PatchSubjectRequestBody;
};
/* ============ E - PatchSubject ============ */
export type EpisodesInSubject =
paths['/v0/users/-/collections/{subject_id}/episodes']['get']['parameters'];
/* ============ S - PatchEpisodesInSubject ============ */
type PatchEpisodesInSubjectPath =
paths['/v0/users/-/collections/{subject_id}/episodes']['patch']['parameters']['path'];
type PatchEpisodesInSubjectRequestBody =
paths['/v0/users/-/collections/{subject_id}/episodes']['patch']['requestBody']['content']['application/json'];
export type PatchEpisodesInSubject = {
path: PatchEpisodesInSubjectPath;
requestBody: PatchEpisodesInSubjectRequestBody;
};
/* ============ E - PatchEpisodesInSubject ============ */
export type EpisodesInEpisodes =
paths['/v0/users/-/collections/-/episodes/{episode_id}']['get']['parameters'];
/* ============ S - PutEpisodesInEpisodes ============ */
type PutEpisodesInEpisodesPath =
paths['/v0/users/-/collections/-/episodes/{episode_id}']['put']['parameters']['path'];
type PutEpisodesInEpisodesRequestBody =
paths['/v0/users/-/collections/-/episodes/{episode_id}']['put']['requestBody']['content']['application/json'];
export type PutEpisodesInEpisodes = {
path: PutEpisodesInEpisodesPath;
requestBody: PutEpisodesInEpisodesRequestBody;
};
/* ============ E - PutEpisodesInEpisodes ============ */
}
/** 编辑历史 */
export namespace BGMEditHistoryParams {
export type Persons = paths['/v0/revisions/persons']['get']['parameters'];
export type PersonRevision =
paths['/v0/revisions/persons/{revision_id}']['get']['parameters'];
export type Characters = paths['/v0/revisions/characters']['get']['parameters'];
export type CharacterRevision =
paths['/v0/revisions/characters/{revision_id}']['get']['parameters'];
export type Subjects = paths['/v0/revisions/subjects']['get']['parameters'];
export type SubjectRevision =
paths['/v0/revisions/subjects/{revision_id}']['get']['parameters'];
export type Episodes = paths['/v0/revisions/episodes']['get']['parameters'];
export type EpisodeRevision =
paths['/v0/revisions/episodes/{revision_id}']['get']['parameters'];
}
/** 目录 */
export namespace BGMCategoryParams {
export type Indices = paths['/v0/indices/{index_id}']['get']['parameters'];
/* ============== S - PutIndices ================= */
type PutIndicesPath = paths['/v0/indices/{index_id}']['put']['parameters']['path'];
type PutIndicesRequestBody =
paths['/v0/indices/{index_id}']['put']['requestBody']['content']['application/json'];
export type PutIndices = {
path: PutIndicesPath;
requestBody: PutIndicesRequestBody;
};
/* ============== E - PutIndices ================= */
export type Subjects = paths['/v0/indices/{index_id}/subjects']['get']['parameters'];
/* ============== S - AddSubjects ================= */
type AddSubjectsPath =
paths['/v0/indices/{index_id}/subjects']['post']['parameters']['path'];
type AddSubjectsRequestBody =
paths['/v0/indices/{index_id}/subjects']['post']['requestBody']['content']['application/json'];
export type AddSubjects = {
path: AddSubjectsPath;
requestBody: AddSubjectsRequestBody;
};
/* ============== E - AddSubjects ================= */
/* ============== S - PutSubject ================= */
type PutSubjectPath =
paths['/v0/indices/{index_id}/subjects/{subject_id}']['put']['parameters']['path'];
type PutSubjectRequestBody =
paths['/v0/indices/{index_id}/subjects/{subject_id}']['put']['requestBody']['content']['application/json'];
export type PutSubject = {
path: PutSubjectPath;
requestBody: PutSubjectRequestBody;
};
/* ============== E - PutSubject ================= */
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 type { BGMCategoryParams as BGMIndicesParams };
/** 搜索 */
export namespace BGMSearchParams {
export type Search = paths['/search/subject/{keywords}']['get']['parameters'];
}
type BGMParams = {
path?: any;
query?: any;
requestBody?: any;
};
export type Path<T extends BGMParams> = T['path'][keyof T['path']];
export type Query<T extends BGMParams> = T['query'];
export type RequestBody<T extends BGMParams> = T['requestBody'];