bgmt 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,26 +1,3848 @@
1
+ import { a as SubjectSearch, i as SubjectRating, n as FullSubject, r as SubjectImage, t as BasicSubject } from "./types-CDKF8vJi.mjs";
2
+
3
+ //#region src/utils/tags.d.ts
1
4
  interface Tag {
2
- name: string;
3
- count: number;
5
+ name: string;
6
+ count: number;
4
7
  }
5
8
  interface NormalizeTagsOptions {
6
- /**
7
- * @default 0
8
- */
9
- count?: number;
9
+ /**
10
+ * @default 0
11
+ */
12
+ count?: number;
10
13
  }
11
14
  declare function normalizeTags(tags: Tag[], options?: NormalizeTagsOptions): string[];
12
-
15
+ //#endregion
16
+ //#region src/utils/season.d.ts
13
17
  declare function trimSeason(bgm: {
14
- name: string;
15
- alias: string[];
18
+ name: string;
19
+ alias: string[];
16
20
  }): {
17
- name: string;
18
- original: undefined;
21
+ name: string;
22
+ original: undefined;
19
23
  } | {
20
- name: string;
21
- original: string[];
24
+ name: string;
25
+ original: string[];
22
26
  };
23
-
27
+ //#endregion
28
+ //#region ../bgmc/src/types/types/index.d.ts
29
+ /**
30
+ * This file was auto-generated by openapi-typescript.
31
+ * Do not make direct changes to the file.
32
+ */
33
+ interface paths {
34
+ '/calendar': {
35
+ get: operations['getCalendar'];
36
+ };
37
+ '/search/subject/{keywords}': {
38
+ get: operations['searchSubjectByKeywords'];
39
+ };
40
+ '/v0/search/subjects': {
41
+ /**
42
+ * ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
43
+ *
44
+ * 目前支持的筛选条件包括:
45
+ * - `type`: 条目类型,参照 `SubjectType` enum, `或`。
46
+ * - `tag`: 标签,可以多次出现。`且` 关系。
47
+ * - `airdate`: 播出日期/发售日期。`且` 关系。
48
+ * - `rating`: 用于搜索指定评分的条目。`且` 关系。
49
+ * - `rank`: 用于搜索指定排名的条目。`且` 关系。
50
+ * - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
51
+ *
52
+ * 不同筛选条件之间为 `且`
53
+ */
54
+ post: operations['searchSubjects'];
55
+ };
56
+ '/v0/search/characters': {
57
+ /**
58
+ * ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
59
+ *
60
+ * 目前支持的筛选条件包括:
61
+ * - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
62
+ */
63
+ post: operations['searchCharacters'];
64
+ };
65
+ '/v0/search/persons': {
66
+ /**
67
+ * ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
68
+ *
69
+ * 目前支持的筛选条件包括:
70
+ * - `career`: 职业,可以多次出现。`且` 关系。
71
+ *
72
+ * 不同筛选条件之间为 `且`
73
+ */
74
+ post: operations['searchPersons'];
75
+ };
76
+ '/v0/subjects': {
77
+ /** 第一页会 cache 24h,之后会 cache 1h */
78
+ get: operations['getSubjects'];
79
+ };
80
+ '/v0/subjects/{subject_id}': {
81
+ /** cache with 300s */
82
+ get: operations['getSubjectById'];
83
+ };
84
+ '/v0/subjects/{subject_id}/image': {
85
+ get: operations['getSubjectImageById'];
86
+ };
87
+ '/v0/subjects/{subject_id}/persons': {
88
+ get: operations['getRelatedPersonsBySubjectId'];
89
+ };
90
+ '/v0/subjects/{subject_id}/characters': {
91
+ get: operations['getRelatedCharactersBySubjectId'];
92
+ };
93
+ '/v0/subjects/{subject_id}/subjects': {
94
+ get: operations['getRelatedSubjectsBySubjectId'];
95
+ };
96
+ '/v0/episodes': {
97
+ get: operations['getEpisodes'];
98
+ };
99
+ '/v0/episodes/{episode_id}': {
100
+ get: operations['getEpisodeById'];
101
+ };
102
+ '/v0/characters/{character_id}': {
103
+ /** cache with 60s */
104
+ get: operations['getCharacterById'];
105
+ };
106
+ '/v0/characters/{character_id}/image': {
107
+ get: operations['getCharacterImageById'];
108
+ };
109
+ '/v0/characters/{character_id}/subjects': {
110
+ get: operations['getRelatedSubjectsByCharacterId'];
111
+ };
112
+ '/v0/characters/{character_id}/persons': {
113
+ get: operations['getRelatedPersonsByCharacterId'];
114
+ };
115
+ '/v0/characters/{character_id}/collect': {
116
+ /** 为当前用户收藏角色 */
117
+ post: operations['collectCharacterByCharacterIdAndUserId'];
118
+ /** 为当前用户取消收藏角色 */
119
+ delete: operations['uncollectCharacterByCharacterIdAndUserId'];
120
+ };
121
+ '/v0/persons/{person_id}': {
122
+ /** cache with 60s */
123
+ get: operations['getPersonById'];
124
+ };
125
+ '/v0/persons/{person_id}/image': {
126
+ get: operations['getPersonImageById'];
127
+ };
128
+ '/v0/persons/{person_id}/subjects': {
129
+ get: operations['getRelatedSubjectsByPersonId'];
130
+ };
131
+ '/v0/persons/{person_id}/characters': {
132
+ get: operations['getRelatedCharactersByPersonId'];
133
+ };
134
+ '/v0/persons/{person_id}/collect': {
135
+ /** 为当前用户收藏人物 */
136
+ post: operations['collectPersonByPersonIdAndUserId'];
137
+ /** 为当前用户取消收藏人物 */
138
+ delete: operations['uncollectPersonByPersonIdAndUserId'];
139
+ };
140
+ '/v0/users/{username}': {
141
+ /** 获取用户信息 */
142
+ get: operations['getUserByName'];
143
+ };
144
+ '/v0/users/{username}/avatar': {
145
+ /** 获取用户头像,302 重定向至头像地址,设置了 username 之后无法使用 UID 查询。 */
146
+ get: operations['getUserAvatarByName'];
147
+ };
148
+ '/v0/me': {
149
+ /** 返回当前 Access Token 对应的用户信息 */
150
+ get: operations['getMyself'];
151
+ };
152
+ '/v0/users/{username}/collections': {
153
+ /** 获取对应用户的收藏,查看私有收藏需要access token。 */
154
+ get: operations['getUserCollectionsByUsername'];
155
+ };
156
+ '/v0/users/{username}/collections/{subject_id}': {
157
+ /** 获取对应用户的收藏,查看私有收藏需要 access token */
158
+ get: operations['getUserCollection'];
159
+ };
160
+ '/v0/users/-/collections/{subject_id}': {
161
+ /**
162
+ * 修改条目收藏状态, 如果不存在则创建,如果存在则修改
163
+ *
164
+ * 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
165
+ *
166
+ * 方法的所有请求体字段均可选
167
+ */
168
+ post: operations['postUserCollection'];
169
+ /**
170
+ * 修改条目收藏状态
171
+ *
172
+ * 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
173
+ *
174
+ * PATCH 方法的所有请求体字段均可选
175
+ */
176
+ patch: operations['patchUserCollection'];
177
+ };
178
+ '/v0/users/-/collections/{subject_id}/episodes': {
179
+ get: operations['getUserSubjectEpisodeCollection'];
180
+ /** 同时会重新计算条目的完成度 */
181
+ patch: operations['patchUserSubjectEpisodeCollection'];
182
+ };
183
+ '/v0/users/-/collections/-/episodes/{episode_id}': {
184
+ get: operations['getUserEpisodeCollection'];
185
+ put: operations['putUserEpisodeCollection'];
186
+ };
187
+ '/v0/users/{username}/collections/-/characters': {
188
+ get: operations['getUserCharacterCollections'];
189
+ };
190
+ '/v0/users/{username}/collections/-/characters/{character_id}': {
191
+ get: operations['getUserCharacterCollection'];
192
+ };
193
+ '/v0/users/{username}/collections/-/persons': {
194
+ get: operations['getUserPersonCollections'];
195
+ };
196
+ '/v0/users/{username}/collections/-/persons/{person_id}': {
197
+ get: operations['getUserPersonCollection'];
198
+ };
199
+ '/v0/revisions/persons': {
200
+ get: operations['getPersonRevisions'];
201
+ };
202
+ '/v0/revisions/persons/{revision_id}': {
203
+ get: operations['getPersonRevisionByRevisionId'];
204
+ };
205
+ '/v0/revisions/characters': {
206
+ get: operations['getCharacterRevisions'];
207
+ };
208
+ '/v0/revisions/characters/{revision_id}': {
209
+ get: operations['getCharacterRevisionByRevisionId'];
210
+ };
211
+ '/v0/revisions/subjects': {
212
+ get: operations['getSubjectRevisions'];
213
+ };
214
+ '/v0/revisions/subjects/{revision_id}': {
215
+ get: operations['getSubjectRevisionByRevisionId'];
216
+ };
217
+ '/v0/revisions/episodes': {
218
+ get: operations['getEpisodeRevisions'];
219
+ };
220
+ '/v0/revisions/episodes/{revision_id}': {
221
+ get: operations['getEpisodeRevisionByRevisionId'];
222
+ };
223
+ '/v0/indices': {
224
+ post: operations['newIndex'];
225
+ };
226
+ '/v0/indices/{index_id}': {
227
+ get: operations['getIndexById'];
228
+ put: operations['editIndexById'];
229
+ };
230
+ '/v0/indices/{index_id}/subjects': {
231
+ get: operations['getIndexSubjectsByIndexId'];
232
+ post: operations['addSubjectToIndexByIndexId'];
233
+ };
234
+ '/v0/indices/{index_id}/subjects/{subject_id}': {
235
+ /** 如果条目不存在于目录,会创建该条目 */
236
+ put: operations['editIndexSubjectsByIndexIdAndSubjectID'];
237
+ delete: operations['delelteSubjectFromIndexByIndexIdAndSubjectID'];
238
+ };
239
+ '/v0/indices/{index_id}/collect': {
240
+ /** 为当前用户收藏一条目录 */
241
+ post: operations['collectIndexByIndexIdAndUserId'];
242
+ /** 为当前用户取消收藏一条目录 */
243
+ delete: operations['uncollectIndexByIndexIdAndUserId'];
244
+ };
245
+ }
246
+ interface components {
247
+ schemas: {
248
+ /**
249
+ * @description 条目类型 <br> 1 = book <br> 2 = anime <br> 3 = music <br> 4 = game <br> 6 = real
250
+ * @example 2
251
+ * @enum {integer}
252
+ */
253
+ Legacy_SubjectType: 1 | 2 | 3 | 4 | 6;
254
+ Legacy_SubjectSmall: {
255
+ /**
256
+ * @description 条目 ID
257
+ * @example 12
258
+ */
259
+ id?: number;
260
+ /**
261
+ * @description 条目地址
262
+ * @example https://bgm.tv/subject/12
263
+ */
264
+ url?: string;
265
+ /**
266
+ * SubjectType
267
+ * @description 条目类型
268
+ * - `1` 为 书籍
269
+ * - `2` 为 动画
270
+ * - `3` 为 音乐
271
+ * - `4` 为 游戏
272
+ * - `6` 为 三次元
273
+ *
274
+ * 没有 `5`
275
+ * @example 2
276
+ * @enum {integer}
277
+ */
278
+ type?: 1 | 2 | 3 | 4 | 6;
279
+ /**
280
+ * @description 条目名称
281
+ * @example ちょびっツ
282
+ */
283
+ name?: string;
284
+ /**
285
+ * @description 条目中文名称
286
+ * @example 人形电脑天使心
287
+ */
288
+ name_cn?: string;
289
+ /**
290
+ * @description 剧情简介
291
+ * @example 在不久的将来,电子技术飞速发展,电脑成为人们生活中不可缺少的一部分.主角的名字是本须和秀树,是个19岁的少年,由于考试失败,来到东京上补习班,过着贫穷潦倒的生活……\r\n到达东京的第一天,他很幸运的在垃圾堆捡到一个人型电脑,一直以来秀树都非常渴望拥有个人电脑.当他抱着她带返公寓后,却不知如何开机,在意想不到的地方找到开关并开启后,故事就此展开\r\n本须和秀树捡到了人型计算机〔唧〕。虽然不晓得她到底是不是〔Chobits〕,但她的身上似乎藏有极大的秘密。看到秀树为了钱而烦恼,唧出去找打工,没想到却找到了危险的工作!为了让秀树开心,唧开始到色情小屋打工。但她在遭到过度激烈的强迫要求之后失控。让周遭计算机因此而强制停摆。\r\n另一方面,秀树发现好友新保与补习班的清水老师有着不可告人的关系……
292
+ */
293
+ summary?: string;
294
+ /**
295
+ * @description 放送开始日期
296
+ * @example 2002-04-02
297
+ */
298
+ air_date?: string;
299
+ /**
300
+ * @description 放送星期
301
+ * @example 2
302
+ */
303
+ air_weekday?: number;
304
+ /** @description 封面 */
305
+ images?: {
306
+ /** @example https://lain.bgm.tv/pic/cover/l/c2/0a/12_24O6L.jpg */
307
+ large?: string;
308
+ /** @example https://lain.bgm.tv/pic/cover/c/c2/0a/12_24O6L.jpg */
309
+ common?: string;
310
+ /** @example https://lain.bgm.tv/pic/cover/m/c2/0a/12_24O6L.jpg */
311
+ medium?: string;
312
+ /** @example https://lain.bgm.tv/pic/cover/s/c2/0a/12_24O6L.jpg */
313
+ small?: string;
314
+ /** @example https://lain.bgm.tv/pic/cover/g/c2/0a/12_24O6L.jpg */
315
+ grid?: string;
316
+ };
317
+ /**
318
+ * @description 话数
319
+ * @example 27
320
+ */
321
+ eps?: number;
322
+ /**
323
+ * @description 话数
324
+ * @example 27
325
+ */
326
+ eps_count?: number;
327
+ /** @description 评分 */
328
+ rating?: {
329
+ /**
330
+ * @description 总评分人数
331
+ * @example 2289
332
+ */
333
+ total?: number;
334
+ /** @description 各分值评分人数 */
335
+ count?: {
336
+ /** @example 5 */
337
+ '1'?: number;
338
+ /** @example 3 */
339
+ '2'?: number;
340
+ /** @example 4 */
341
+ '3'?: number;
342
+ /** @example 6 */
343
+ '4'?: number;
344
+ /** @example 46 */
345
+ '5'?: number;
346
+ /** @example 267 */
347
+ '6'?: number;
348
+ /** @example 659 */
349
+ '7'?: number;
350
+ /** @example 885 */
351
+ '8'?: number;
352
+ /** @example 284 */
353
+ '9'?: number;
354
+ /** @example 130 */
355
+ '10'?: number;
356
+ };
357
+ /**
358
+ * @description 评分
359
+ * @example 7.6
360
+ */
361
+ score?: number;
362
+ };
363
+ /**
364
+ * @description 排名
365
+ * @example 573
366
+ */
367
+ rank?: number;
368
+ /** @description 收藏人数 */
369
+ collection?: {
370
+ /**
371
+ * @description 想做
372
+ * @example 608
373
+ */
374
+ wish?: number;
375
+ /**
376
+ * @description 做过
377
+ * @example 3010
378
+ */
379
+ collect?: number;
380
+ /**
381
+ * @description 在做
382
+ * @example 103
383
+ */
384
+ doing?: number;
385
+ /**
386
+ * @description 搁置
387
+ * @example 284
388
+ */
389
+ on_hold?: number;
390
+ /**
391
+ * @description 抛弃
392
+ * @example 86
393
+ */
394
+ dropped?: number;
395
+ };
396
+ };
397
+ Legacy_SubjectMedium: components['schemas']['Legacy_SubjectSmall'] & {
398
+ /** @description 角色信息 */
399
+ crt?: (components['schemas']['Legacy_Character'] & {
400
+ /**
401
+ * @description 角色类型
402
+ * @example 主角
403
+ */
404
+ role_name?: string;
405
+ })[];
406
+ /** @description 制作人员信息 */
407
+ staff?: (components['schemas']['Legacy_Person'] & {
408
+ /**
409
+ * @description 人物类型
410
+ * @example 主角
411
+ */
412
+ role_name?: string;
413
+ /** @description 职位 */
414
+ jobs?: string[];
415
+ })[];
416
+ };
417
+ Legacy_SubjectLarge: components['schemas']['Legacy_SubjectMedium'] & {
418
+ /** @description 章节列表 */
419
+ eps?: components['schemas']['Legacy_Episode'][];
420
+ /** @description 讨论版 */
421
+ topic?: components['schemas']['Legacy_Topic'][];
422
+ /** @description 评论日志 */
423
+ blog?: components['schemas']['Legacy_Blog'][];
424
+ };
425
+ /**
426
+ * @description 章节类型 <br> 0 = 本篇 <br> 1 = 特别篇 <br> 2 = OP <br> 3 = ED <br> 4 = 预告/宣传/广告 <br> 5 = MAD <br> 6 = 其他
427
+ * @example 0
428
+ * @enum {integer}
429
+ */
430
+ Legacy_EpisodeType: 0 | 1 | 2 | 3 | 4 | 5 | 6;
431
+ /** @description 章节信息 */
432
+ Legacy_Episode: {
433
+ /**
434
+ * @description 章节 ID
435
+ * @example 1027
436
+ */
437
+ id?: number;
438
+ /**
439
+ * @description 章节地址
440
+ * @example https://bgm.tv/ep/1027
441
+ */
442
+ url?: string;
443
+ type?: components['schemas']['Legacy_EpisodeType'];
444
+ /**
445
+ * @description 集数
446
+ * @example 1
447
+ */
448
+ sort?: number;
449
+ /**
450
+ * @description 标题
451
+ * @example ちぃ 目覚める
452
+ */
453
+ name?: string;
454
+ /**
455
+ * @description 简体中文标题
456
+ * @example 叽,觉醒了
457
+ */
458
+ name_cn?: string;
459
+ /**
460
+ * @description 时长
461
+ * @example 24m
462
+ */
463
+ duration?: string;
464
+ /**
465
+ * @description 放送日期
466
+ * @example 2002-04-03
467
+ */
468
+ airdate?: string;
469
+ /**
470
+ * @description 回复数量
471
+ * @example 9
472
+ */
473
+ comment?: number;
474
+ /** @description 简介 */
475
+ desc?: string;
476
+ /**
477
+ * @description 放送状态 <br> Air = 已放送 <br> Today = 正在放送 <br> NA = 未放送
478
+ * @example Air
479
+ * @enum {string}
480
+ */
481
+ status?: 'Air' | 'Today' | 'NA';
482
+ };
483
+ /** @description 讨论版 */
484
+ Legacy_Topic: {
485
+ /** @description ID */
486
+ id?: number;
487
+ /** @description 地址 */
488
+ url?: string;
489
+ /** @description 标题 */
490
+ title?: string;
491
+ /** @description 所属对象(条目) ID */
492
+ main_id?: number;
493
+ /** @description 发布时间 */
494
+ timestamp?: number;
495
+ /** @description 最后回复时间 */
496
+ lastpost?: number;
497
+ /** @description 回复数 */
498
+ replies?: number;
499
+ user?: components['schemas']['Legacy_User'];
500
+ };
501
+ /** @description 日志 */
502
+ Legacy_Blog: {
503
+ /** @description ID */
504
+ id?: number;
505
+ /** @description 地址 */
506
+ url?: string;
507
+ /** @description 标题 */
508
+ title?: string;
509
+ /** @description 概览 */
510
+ summary?: string;
511
+ /** @description 图片 */
512
+ image?: string;
513
+ /** @description 回复数 */
514
+ replies?: number;
515
+ /**
516
+ * @description 发布时间
517
+ * @example 1357144903
518
+ */
519
+ timestamp?: number;
520
+ /**
521
+ * @description 发布时间
522
+ * @example 2013-1-2 16:41
523
+ */
524
+ dateline?: string;
525
+ user?: components['schemas']['Legacy_User'];
526
+ };
527
+ /** @description 用户信息 */
528
+ Legacy_User: {
529
+ /**
530
+ * @description 用户 id
531
+ * @example 1
532
+ */
533
+ id?: number;
534
+ /**
535
+ * @description 用户主页地址
536
+ * @example https://bgm.tv/user/sai
537
+ */
538
+ url?: string;
539
+ /**
540
+ * @description 用户名
541
+ * @example sai
542
+ */
543
+ username?: string;
544
+ /**
545
+ * @description 昵称
546
+ * @example Sai
547
+ */
548
+ nickname?: string;
549
+ /** @description 头像地址 */
550
+ avatar?: {
551
+ /** @example https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456 */
552
+ large?: string;
553
+ /** @example https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456 */
554
+ medium?: string;
555
+ /** @example https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456 */
556
+ small?: string;
557
+ };
558
+ /**
559
+ * @description 签名
560
+ * @example Awesome!
561
+ */
562
+ sign?: string;
563
+ usergroup?: components['schemas']['Legacy_UserGroup'];
564
+ };
565
+ /**
566
+ * @description 用户组 <br> 1 = 管理员 <br> 2 = Bangumi 管理猿 <br> 3 = 天窗管理猿 <br> 4 = 禁言用户 <br> 5 = 禁止访问用户 <br> 8 = 人物管理猿 <br> 9 = 维基条目管理猿 <br> 10 = 用户 <br> 11 = 维基人
567
+ * @example 11
568
+ * @enum {integer}
569
+ */
570
+ Legacy_UserGroup: 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11;
571
+ /** @description 现实人物 */
572
+ Legacy_Person: components['schemas']['Legacy_Mono'] & {
573
+ info?: components['schemas']['Legacy_MonoInfo'];
574
+ };
575
+ /** @description 虚拟角色 */
576
+ Legacy_Character: components['schemas']['Legacy_Mono'] & {
577
+ info?: components['schemas']['Legacy_MonoInfo'];
578
+ /** @description 声优列表 */
579
+ actors?: components['schemas']['Legacy_MonoBase'][];
580
+ };
581
+ /** @description 人物(基础模型) */
582
+ Legacy_MonoBase: {
583
+ /** @description 人物 ID */
584
+ id?: number;
585
+ /** @description 人物地址 */
586
+ url?: string;
587
+ /** @description 姓名 */
588
+ name?: string;
589
+ /** @description 肖像 */
590
+ images?: {
591
+ /** @example https://lain.bgm.tv/pic/crt/l/ce/65/32_crt_XMJOj.jpg */
592
+ large?: string;
593
+ /** @example https://lain.bgm.tv/pic/crt/m/ce/65/32_crt_XMJOj.jpg */
594
+ medium?: string;
595
+ /** @example https://lain.bgm.tv/pic/crt/s/ce/65/32_crt_XMJOj.jpg */
596
+ small?: string;
597
+ /** @example https://lain.bgm.tv/pic/crt/g/ce/65/32_crt_XMJOj.jpg */
598
+ grid?: string;
599
+ };
600
+ };
601
+ /** @description 人物 */
602
+ Legacy_Mono: components['schemas']['Legacy_MonoBase'] & {
603
+ /** @description 简体中文名 */
604
+ name_cn?: string;
605
+ /** @description 回复数量 */
606
+ comment?: number;
607
+ /** @description 收藏人数 */
608
+ collects?: number;
609
+ };
610
+ /** @description 人物信息 */
611
+ Legacy_MonoInfo: {
612
+ /**
613
+ * @description 生日
614
+ * @example 4月13日
615
+ */
616
+ birth?: string;
617
+ /**
618
+ * @description 身高
619
+ * @example 152cm
620
+ */
621
+ height?: string;
622
+ /**
623
+ * @description 性别
624
+ * @example 女
625
+ */
626
+ gender?: string;
627
+ /** @description 别名(另外添加出来的 key 为 0 开始的数字) */
628
+ alias?: {
629
+ /** @description 日文名 */
630
+ jp?: string;
631
+ /** @description 纯假名 */
632
+ kana?: string;
633
+ /** @description 昵称 */
634
+ nick?: string;
635
+ /** @description 罗马字 */
636
+ romaji?: string;
637
+ /** @description 第二中文名 */
638
+ zh?: string;
639
+ };
640
+ /** @description 引用来源 */
641
+ source?: string | string[];
642
+ /** @description 简体中文名 */
643
+ name_cn?: string;
644
+ /** @description 声优 */
645
+ cv?: string;
646
+ };
647
+ /**
648
+ * Subject ID
649
+ * @description 条目 ID
650
+ */
651
+ SubjectID: number;
652
+ /**
653
+ * User
654
+ * @description 实际的返回值可能包括文档未声明的 `url` 字段,此字段主要用于开发者从 api 响应直接转跳到网页。
655
+ * 客户端开发者请不用依赖于此特性,此字段的值随时可能会改变。
656
+ *
657
+ * @example {
658
+ * "avatar": {
659
+ * "large": "https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456",
660
+ * "medium": "https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456",
661
+ * "small": "https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456"
662
+ * },
663
+ * "sign": "Awesome!",
664
+ * "username": "sai",
665
+ * "nickname": "Sai🖖",
666
+ * "id": 1,
667
+ * "user_group": 1
668
+ * }
669
+ */
670
+ User: {
671
+ /** ID */
672
+ id: number;
673
+ /**
674
+ * Username
675
+ * @description 唯一用户名,初始与 UID 相同,可修改一次
676
+ */
677
+ username: string;
678
+ /** Nickname */
679
+ nickname: string;
680
+ user_group: components['schemas']['UserGroup'];
681
+ avatar: components['schemas']['Avatar'];
682
+ /**
683
+ * Sign
684
+ * @description 个人签名
685
+ */
686
+ sign: string;
687
+ };
688
+ /**
689
+ * Avatar
690
+ * @example {
691
+ * "large": "https://lain.bgm.tv/pic/user/l/000/00/00/1.jpg?r=1391790456",
692
+ * "medium": "https://lain.bgm.tv/pic/user/m/000/00/00/1.jpg?r=1391790456",
693
+ * "small": "https://lain.bgm.tv/pic/user/s/000/00/00/1.jpg?r=1391790456"
694
+ * }
695
+ */
696
+ Avatar: {
697
+ /**
698
+ * Large
699
+ * Format: url
700
+ */
701
+ large: string;
702
+ /**
703
+ * Medium
704
+ * Format: url
705
+ */
706
+ medium: string;
707
+ /**
708
+ * Small
709
+ * Format: url
710
+ */
711
+ small: string;
712
+ };
713
+ /**
714
+ * UserGroup
715
+ * @description 用户组 - 1 = 管理员 - 2 = Bangumi 管理猿 - 3 = 天窗管理猿 - 4 = 禁言用户 - 5 = 禁止访问用户 - 8 = 人物管理猿 - 9 = 维基条目管理猿 - 10 = 用户 - 11 = 维基人
716
+ * @enum {integer}
717
+ */
718
+ UserGroup: 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11;
719
+ /**
720
+ * BloodType
721
+ * @description Blood type of a person. A, B, AB, O
722
+ * @enum {integer}
723
+ */
724
+ BloodType: 1 | 2 | 3 | 4;
725
+ /** Character */
726
+ Character: {
727
+ /** ID */
728
+ id: number;
729
+ /** Name */
730
+ name: string;
731
+ /** @description 角色,机体,舰船,组织... */
732
+ type: number;
733
+ /**
734
+ * Images
735
+ * @description object with some size of images, this object maybe `null`
736
+ */
737
+ images?: components['schemas']['PersonImages'];
738
+ /** Summary */
739
+ summary: string;
740
+ /** Locked */
741
+ locked: boolean;
742
+ /**
743
+ * Infobox
744
+ * @description server parsed infobox, a map from key to string or tuple
745
+ * null if server infobox is not valid
746
+ */
747
+ infobox?: {
748
+ [key: string]: unknown;
749
+ }[];
750
+ /**
751
+ * Gender
752
+ * @description parsed from wiki, maybe null
753
+ */
754
+ gender?: string;
755
+ /** @description parsed from wiki, maybe null, `1, 2, 3, 4` for `A, B, AB, O` */
756
+ blood_type?: number;
757
+ /**
758
+ * Birth Year
759
+ * @description parsed from wiki, maybe `null`
760
+ */
761
+ birth_year?: number;
762
+ /**
763
+ * Birth Mon
764
+ * @description parsed from wiki, maybe `null`
765
+ */
766
+ birth_mon?: number;
767
+ /**
768
+ * Birth Day
769
+ * @description parsed from wiki, maybe `null`
770
+ */
771
+ birth_day?: number;
772
+ stat: components['schemas']['Stat'];
773
+ };
774
+ /** CharacterPerson */
775
+ CharacterPerson: {
776
+ /** ID */
777
+ id: number;
778
+ /** Name */
779
+ name: string;
780
+ /** @description 角色,机体,舰船,组织... */
781
+ type: number;
782
+ /**
783
+ * Images
784
+ * @description object with some size of images, this object maybe `null`
785
+ */
786
+ images?: components['schemas']['PersonImages'];
787
+ /** Subject ID */
788
+ subject_id: number;
789
+ subject_type: components['schemas']['SubjectType'];
790
+ /** Subject Name */
791
+ subject_name: string;
792
+ /** Subject Name Cn */
793
+ subject_name_cn: string;
794
+ /** Staff */
795
+ staff?: string;
796
+ };
797
+ /**
798
+ * CharacterType
799
+ * @description type of a character 角色,机体,舰船,组织...
800
+ * @enum {integer}
801
+ */
802
+ CharacterType: 1 | 2 | 3 | 4;
803
+ /**
804
+ * CollectionType
805
+ * @description - `1`: 想看
806
+ * - `2`: 看过
807
+ * - `3`: 在看
808
+ * - `4`: 搁置
809
+ * - `5`: 抛弃
810
+ * @example 3
811
+ * @enum {integer}
812
+ */
813
+ SubjectCollectionType: 1 | 2 | 3 | 4 | 5;
814
+ /**
815
+ * EpisodeCollectionType
816
+ * @description - `0`: 未收藏
817
+ * - `1`: 想看
818
+ * - `2`: 看过
819
+ * - `3`: 抛弃
820
+ * @example 2
821
+ * @enum {integer}
822
+ */
823
+ EpisodeCollectionType: 1 | 2 | 3;
824
+ /**
825
+ * Creator
826
+ * @description 意义同<a href="#model-Me">Me</a>
827
+ */
828
+ Creator: {
829
+ /** Username */
830
+ username: string;
831
+ /** Nickname */
832
+ nickname: string;
833
+ };
834
+ /** DetailedRevision */
835
+ DetailedRevision: {
836
+ /** ID */
837
+ id: number;
838
+ /** Type */
839
+ type: number;
840
+ creator?: components['schemas']['Creator'];
841
+ /** Summary */
842
+ summary: string;
843
+ /**
844
+ * Created At
845
+ * Format: date-time
846
+ */
847
+ created_at: string;
848
+ /**
849
+ * Data
850
+ * @description 编辑修改内容,响应类型不固定
851
+ */
852
+ data?: {
853
+ [key: string]: unknown;
854
+ };
855
+ };
856
+ /** PersonRevision */
857
+ PersonRevision: components['schemas']['Revision'] & {
858
+ /** Data */
859
+ data?: {
860
+ [key: string]: components['schemas']['PersonRevisionDataItem'];
861
+ };
862
+ };
863
+ /** PersonRevisionDataItem */
864
+ PersonRevisionDataItem: {
865
+ /** Person Infobox */
866
+ prsn_infobox: string;
867
+ /** Person Summary */
868
+ prsn_summary: string;
869
+ profession: components['schemas']['PersonRevisionProfession'];
870
+ extra: components['schemas']['RevisionExtra'];
871
+ /** Person Name */
872
+ prsn_name: string;
873
+ };
874
+ /** PersonRevisionProfession */
875
+ PersonRevisionProfession: {
876
+ /** Producer */
877
+ producer?: string;
878
+ /** Mangaka */
879
+ mangaka?: string;
880
+ /** Artist */
881
+ artist?: string;
882
+ /** Seiyu */
883
+ seiyu?: string;
884
+ /** Writer */
885
+ writer?: string;
886
+ /** Illustrator */
887
+ illustrator?: string;
888
+ /** Actor */
889
+ actor?: string;
890
+ };
891
+ /** RevisionExtra */
892
+ RevisionExtra: {
893
+ /** Image */
894
+ img?: string;
895
+ };
896
+ /** SubjectRevision */
897
+ SubjectRevision: components['schemas']['Revision'] & {
898
+ data?: components['schemas']['SubjectRevisionData'];
899
+ };
900
+ /** SubjectRevisionData */
901
+ SubjectRevisionData: {
902
+ /** Field EPs */
903
+ field_eps: number;
904
+ /** Field Infobox */
905
+ field_infobox: string;
906
+ /** Field Summary */
907
+ field_summary: string;
908
+ /** Name */
909
+ name: string;
910
+ /** Name CN */
911
+ name_cn: string;
912
+ /** Platform */
913
+ platform: number;
914
+ /** Subject ID */
915
+ subject_id: number;
916
+ /** Type */
917
+ type: number;
918
+ /** Type ID */
919
+ type_id: number;
920
+ /** Vote Field */
921
+ vote_field: string;
922
+ };
923
+ /** CharacterRevision */
924
+ CharacterRevision: components['schemas']['Revision'] & {
925
+ /** Data */
926
+ data?: {
927
+ [key: string]: components['schemas']['CharacterRevisionDataItem'];
928
+ };
929
+ };
930
+ /** CharacterRevisionDataItem */
931
+ CharacterRevisionDataItem: {
932
+ /** Character Infobox */
933
+ infobox: string;
934
+ /** Character Summary */
935
+ summary: string;
936
+ /** Character Name */
937
+ name: string;
938
+ extra: components['schemas']['RevisionExtra'];
939
+ };
940
+ /**
941
+ * EpType
942
+ * @description 本篇 = 0
943
+ * 特别篇 = 1
944
+ * OP = 2
945
+ * ED = 3
946
+ * 预告/宣传/广告 = 4
947
+ * MAD = 5
948
+ * 其他 = 6
949
+ * @enum {integer}
950
+ */
951
+ EpType: 0 | 1 | 2 | 3 | 4 | 5 | 6;
952
+ /**
953
+ * Episode
954
+ * @example {
955
+ * "airdate": "",
956
+ * "comment": 0,
957
+ * "desc": "",
958
+ * "disc": 0,
959
+ * "duration": "",
960
+ * "ep": 6,
961
+ * "id": 8,
962
+ * "name": "蒼と白の境界線",
963
+ * "name_cn": "",
964
+ * "sort": 6,
965
+ * "subject_id": 15,
966
+ * "type": 0,
967
+ * "duration_seconds": 1440
968
+ * }
969
+ */
970
+ Episode: {
971
+ /** ID */
972
+ id: number;
973
+ /**
974
+ * Type
975
+ * @description `0` 本篇,`1` SP,`2` OP,`3` ED
976
+ */
977
+ type: number;
978
+ /** Name */
979
+ name: string;
980
+ /** Name Cn */
981
+ name_cn: string;
982
+ /**
983
+ * Sort
984
+ * @description 同类条目的排序和集数
985
+ */
986
+ sort: number;
987
+ /**
988
+ * Ep
989
+ * @description 条目内的集数, 从`1`开始。非本篇剧集的此字段无意义
990
+ */
991
+ ep?: number;
992
+ /** Airdate */
993
+ airdate: string;
994
+ /** Comment */
995
+ comment: number;
996
+ /**
997
+ * Duration
998
+ * @description 维基人填写的原始时长
999
+ */
1000
+ duration: string;
1001
+ /**
1002
+ * Desc
1003
+ * @description 简介
1004
+ */
1005
+ desc: string;
1006
+ /**
1007
+ * Disc
1008
+ * @description 音乐曲目的碟片数
1009
+ */
1010
+ disc: number;
1011
+ /** @description 服务器解析的时长,无法解析时为 `0` */
1012
+ duration_seconds?: number;
1013
+ };
1014
+ /** EpisodeDetail */
1015
+ EpisodeDetail: {
1016
+ /** ID */
1017
+ id: number;
1018
+ type: components['schemas']['EpType'];
1019
+ /** Name */
1020
+ name: string;
1021
+ /** Name Cn */
1022
+ name_cn: string;
1023
+ /**
1024
+ * Sort
1025
+ * @description 同类条目的排序和集数
1026
+ */
1027
+ sort: number;
1028
+ /**
1029
+ * Ep
1030
+ * @description 条目内的集数, 从`1`开始。非本篇剧集的此字段无意义
1031
+ */
1032
+ ep?: number;
1033
+ /** Airdate */
1034
+ airdate: string;
1035
+ /** Comment */
1036
+ comment: number;
1037
+ /** Duration */
1038
+ duration: string;
1039
+ /**
1040
+ * Desc
1041
+ * @description 简介
1042
+ */
1043
+ desc: string;
1044
+ /**
1045
+ * Disc
1046
+ * @description 音乐曲目的碟片数
1047
+ */
1048
+ disc: number;
1049
+ /** Subject ID */
1050
+ subject_id: number;
1051
+ };
1052
+ /** ErrorDetail */
1053
+ ErrorDetail: {
1054
+ /** Title */
1055
+ title: string;
1056
+ /** Description */
1057
+ description: string;
1058
+ /** Detail */
1059
+ details?: string | {
1060
+ /** @description error message */
1061
+ error?: string;
1062
+ /** @description request path */
1063
+ path?: string;
1064
+ };
1065
+ };
1066
+ /** Images */
1067
+ Images: {
1068
+ /** Large */
1069
+ large: string;
1070
+ /** Common */
1071
+ common: string;
1072
+ /** Medium */
1073
+ medium: string;
1074
+ /** Small */
1075
+ small: string;
1076
+ /** Grid */
1077
+ grid: string;
1078
+ };
1079
+ /** Index */
1080
+ Index: {
1081
+ /** ID */
1082
+ id: number;
1083
+ /** Title */
1084
+ title: string;
1085
+ /** Desc */
1086
+ desc: string;
1087
+ /**
1088
+ * Total
1089
+ * @description 收录条目总数
1090
+ * @default 0
1091
+ */
1092
+ total?: number;
1093
+ /**
1094
+ * Stat
1095
+ * @description 目录评论及收藏数
1096
+ */
1097
+ stat: components['schemas']['Stat'];
1098
+ /**
1099
+ * Created At
1100
+ * Format: date-time
1101
+ */
1102
+ created_at: string;
1103
+ /**
1104
+ * Updated At
1105
+ * Format: date-time
1106
+ */
1107
+ updated_at: string;
1108
+ creator: components['schemas']['Creator'];
1109
+ /**
1110
+ * Ban
1111
+ * @deprecated
1112
+ * @description deprecated, always false.
1113
+ */
1114
+ ban: boolean;
1115
+ /** 目录是否包括 nsfw 条目 */
1116
+ nsfw: boolean;
1117
+ };
1118
+ /**
1119
+ * IndexSubject
1120
+ * @description 同名字段意义同<a href="#model-Subject">Subject</a>
1121
+ */
1122
+ IndexSubject: {
1123
+ /** ID */
1124
+ id: number;
1125
+ /** Type */
1126
+ type: number;
1127
+ /** Name */
1128
+ name: string;
1129
+ images?: components['schemas']['Images'];
1130
+ infobox?: components['schemas']['WikiV0'];
1131
+ /** Date */
1132
+ date?: string;
1133
+ /** Comment */
1134
+ comment: string;
1135
+ /**
1136
+ * Added At
1137
+ * Format: date-time
1138
+ */
1139
+ added_at: string;
1140
+ };
1141
+ /**
1142
+ * IndexBasicInfo
1143
+ * @description 新增或修改条目的内容,同名字段意义同<a href="#model-Subject">Subject</a>
1144
+ */
1145
+ IndexBasicInfo: {
1146
+ /** Title */
1147
+ title?: string;
1148
+ /** Description */
1149
+ description?: string;
1150
+ };
1151
+ /**
1152
+ * IndexBasicInfo
1153
+ * @description 新增某条目到目录的请求信息
1154
+ */
1155
+ IndexSubjectAddInfo: {
1156
+ /** Subject ID */
1157
+ subject_id?: number;
1158
+ /**
1159
+ * Sort
1160
+ * @description 排序条件,越小越靠前
1161
+ */
1162
+ sort?: number;
1163
+ /** Comment */
1164
+ comment?: string;
1165
+ };
1166
+ /**
1167
+ * IndexBasicInfo
1168
+ * @description 修改目录中条目的信息
1169
+ */
1170
+ IndexSubjectEditInfo: {
1171
+ /**
1172
+ * Sort
1173
+ * @description 排序条件,越小越靠前
1174
+ */
1175
+ sort?: number;
1176
+ /** Comment */
1177
+ comment?: string;
1178
+ };
1179
+ /**
1180
+ * Infobox
1181
+ * @example [
1182
+ * {
1183
+ * "key": "简体中文名",
1184
+ * "value": "鲁路修·兰佩路基"
1185
+ * },
1186
+ * {
1187
+ * "key": "别名",
1188
+ * "value": [
1189
+ * {
1190
+ * "v": "L.L."
1191
+ * },
1192
+ * {
1193
+ * "v": "勒鲁什"
1194
+ * },
1195
+ * {
1196
+ * "v": "鲁鲁修"
1197
+ * },
1198
+ * {
1199
+ * "v": "ゼロ"
1200
+ * },
1201
+ * {
1202
+ * "v": "Zero"
1203
+ * },
1204
+ * {
1205
+ * "k": "英文名",
1206
+ * "v": "Lelouch Lamperouge"
1207
+ * },
1208
+ * {
1209
+ * "k": "第二中文名",
1210
+ * "v": "鲁路修·冯·布里塔尼亚"
1211
+ * },
1212
+ * {
1213
+ * "k": "英文名二",
1214
+ * "v": "Lelouch Vie Britannia"
1215
+ * },
1216
+ * {
1217
+ * "k": "日文名",
1218
+ * "v": "ルルーシュ・ヴィ・ブリタニア"
1219
+ * }
1220
+ * ]
1221
+ * },
1222
+ * {
1223
+ * "key": "性别",
1224
+ * "value": "男"
1225
+ * },
1226
+ * {
1227
+ * "key": "生日",
1228
+ * "value": "12月5日"
1229
+ * },
1230
+ * {
1231
+ * "key": "血型",
1232
+ * "value": "A型"
1233
+ * },
1234
+ * {
1235
+ * "key": "身高",
1236
+ * "value": "178cm→181cm"
1237
+ * },
1238
+ * {
1239
+ * "key": "体重",
1240
+ * "value": "54kg"
1241
+ * },
1242
+ * {
1243
+ * "key": "引用来源",
1244
+ * "value": "Wikipedia"
1245
+ * }
1246
+ * ]
1247
+ */
1248
+ WikiV0: {
1249
+ /** Key */
1250
+ key: string;
1251
+ /** Value */
1252
+ value: Partial<string> & Partial<(Partial<{
1253
+ /** K */
1254
+ k: string;
1255
+ /** V */
1256
+ v: string;
1257
+ }> & Partial<{
1258
+ /** V */
1259
+ v: string;
1260
+ }>)[]>;
1261
+ }[];
1262
+ Page: {
1263
+ /** Total */
1264
+ total: number;
1265
+ /** Limit */
1266
+ limit: number;
1267
+ /** Offset */
1268
+ offset: number;
1269
+ };
1270
+ /** Paged[Subject] */
1271
+ Paged_Subject: {
1272
+ /**
1273
+ * Total
1274
+ * @default 0
1275
+ */
1276
+ total?: number;
1277
+ /**
1278
+ * Limit
1279
+ * @default 0
1280
+ */
1281
+ limit?: number;
1282
+ /**
1283
+ * Offset
1284
+ * @default 0
1285
+ */
1286
+ offset?: number;
1287
+ /**
1288
+ * Data
1289
+ * @default []
1290
+ */
1291
+ data?: components['schemas']['Subject'][];
1292
+ };
1293
+ /** Paged[Character] */
1294
+ Paged_Character: {
1295
+ /**
1296
+ * Total
1297
+ * @default 0
1298
+ */
1299
+ total?: number;
1300
+ /**
1301
+ * Limit
1302
+ * @default 0
1303
+ */
1304
+ limit?: number;
1305
+ /**
1306
+ * Offset
1307
+ * @default 0
1308
+ */
1309
+ offset?: number;
1310
+ /**
1311
+ * Data
1312
+ * @default []
1313
+ */
1314
+ data?: components['schemas']['Character'][];
1315
+ };
1316
+ /** Paged[Person] */
1317
+ Paged_Person: {
1318
+ /**
1319
+ * Total
1320
+ * @default 0
1321
+ */
1322
+ total?: number;
1323
+ /**
1324
+ * Limit
1325
+ * @default 0
1326
+ */
1327
+ limit?: number;
1328
+ /**
1329
+ * Offset
1330
+ * @default 0
1331
+ */
1332
+ offset?: number;
1333
+ /**
1334
+ * Data
1335
+ * @default []
1336
+ */
1337
+ data?: components['schemas']['Person'][];
1338
+ };
1339
+ /** Paged[Episode] */
1340
+ Paged_Episode: {
1341
+ /**
1342
+ * Total
1343
+ * @default 0
1344
+ */
1345
+ total?: number;
1346
+ /**
1347
+ * Limit
1348
+ * @default 0
1349
+ */
1350
+ limit?: number;
1351
+ /**
1352
+ * Offset
1353
+ * @default 0
1354
+ */
1355
+ offset?: number;
1356
+ /**
1357
+ * Data
1358
+ * @default []
1359
+ */
1360
+ data?: components['schemas']['Episode'][];
1361
+ };
1362
+ /** Paged[IndexSubject] */
1363
+ Paged_IndexSubject: {
1364
+ /**
1365
+ * Total
1366
+ * @default 0
1367
+ */
1368
+ total?: number;
1369
+ /**
1370
+ * Limit
1371
+ * @default 0
1372
+ */
1373
+ limit?: number;
1374
+ /**
1375
+ * Offset
1376
+ * @default 0
1377
+ */
1378
+ offset?: number;
1379
+ /**
1380
+ * Data
1381
+ * @default []
1382
+ */
1383
+ data?: components['schemas']['IndexSubject'][];
1384
+ };
1385
+ /** Paged[Revision] */
1386
+ Paged_Revision: {
1387
+ /**
1388
+ * Total
1389
+ * @default 0
1390
+ */
1391
+ total?: number;
1392
+ /**
1393
+ * Limit
1394
+ * @default 0
1395
+ */
1396
+ limit?: number;
1397
+ /**
1398
+ * Offset
1399
+ * @default 0
1400
+ */
1401
+ offset?: number;
1402
+ /**
1403
+ * Data
1404
+ * @default []
1405
+ */
1406
+ data?: components['schemas']['Revision'][];
1407
+ };
1408
+ /** Paged[UserCollection] */
1409
+ Paged_UserCollection: {
1410
+ /**
1411
+ * Total
1412
+ * @default 0
1413
+ */
1414
+ total?: number;
1415
+ /**
1416
+ * Limit
1417
+ * @default 0
1418
+ */
1419
+ limit?: number;
1420
+ /**
1421
+ * Offset
1422
+ * @default 0
1423
+ */
1424
+ offset?: number;
1425
+ /**
1426
+ * Data
1427
+ * @default []
1428
+ */
1429
+ data?: components['schemas']['UserSubjectCollection'][];
1430
+ };
1431
+ /** Paged[UserCharacterCollection] */
1432
+ Paged_UserCharacterCollection: {
1433
+ /**
1434
+ * Total
1435
+ * @default 0
1436
+ */
1437
+ total?: number;
1438
+ /**
1439
+ * Limit
1440
+ * @default 0
1441
+ */
1442
+ limit?: number;
1443
+ /**
1444
+ * Offset
1445
+ * @default 0
1446
+ */
1447
+ offset?: number;
1448
+ /**
1449
+ * Data
1450
+ * @default []
1451
+ */
1452
+ data?: components['schemas']['UserCharacterCollection'][];
1453
+ };
1454
+ /** Paged[UserPersonCollection] */
1455
+ Paged_UserPersonCollection: {
1456
+ /**
1457
+ * Total
1458
+ * @default 0
1459
+ */
1460
+ total?: number;
1461
+ /**
1462
+ * Limit
1463
+ * @default 0
1464
+ */
1465
+ limit?: number;
1466
+ /**
1467
+ * Offset
1468
+ * @default 0
1469
+ */
1470
+ offset?: number;
1471
+ /**
1472
+ * Data
1473
+ * @default []
1474
+ */
1475
+ data?: components['schemas']['UserPersonCollection'][];
1476
+ };
1477
+ /** Person */
1478
+ Person: {
1479
+ /** ID */
1480
+ id: number;
1481
+ /** Name */
1482
+ name: string;
1483
+ /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
1484
+ type: number;
1485
+ career: components['schemas']['PersonCareer'][];
1486
+ /**
1487
+ * Images
1488
+ * @description object with some size of images, this object maybe `null`
1489
+ */
1490
+ images?: components['schemas']['PersonImages'];
1491
+ /** Short Summary */
1492
+ short_summary: string;
1493
+ /** Locked */
1494
+ locked: boolean;
1495
+ };
1496
+ /**
1497
+ * PersonCareer
1498
+ * @description An enumeration.
1499
+ * @enum {string}
1500
+ */
1501
+ PersonCareer: 'producer' | 'mangaka' | 'artist' | 'seiyu' | 'writer' | 'illustrator' | 'actor';
1502
+ /** PersonCharacter */
1503
+ PersonCharacter: {
1504
+ /** ID */
1505
+ id: number;
1506
+ /** Name */
1507
+ name: string;
1508
+ /** @description 角色,机体,舰船,组织... */
1509
+ type: number;
1510
+ /**
1511
+ * Images
1512
+ * @description object with some size of images, this object maybe `null`
1513
+ */
1514
+ images?: components['schemas']['PersonImages'];
1515
+ /** Subject ID */
1516
+ subject_id: number;
1517
+ subject_type: components['schemas']['SubjectType'];
1518
+ /** Subject Name */
1519
+ subject_name: string;
1520
+ /** Subject Name Cn */
1521
+ subject_name_cn: string;
1522
+ /** Staff */
1523
+ staff?: string;
1524
+ };
1525
+ /** PersonDetail */
1526
+ PersonDetail: {
1527
+ /** ID */
1528
+ id: number;
1529
+ /** Name */
1530
+ name: string;
1531
+ /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
1532
+ type: number;
1533
+ career: components['schemas']['PersonCareer'][];
1534
+ /**
1535
+ * Images
1536
+ * @description object with some size of images, this object maybe `null`
1537
+ */
1538
+ images?: components['schemas']['PersonImages'];
1539
+ /** Summary */
1540
+ summary: string;
1541
+ /** Locked */
1542
+ locked: boolean;
1543
+ /**
1544
+ * Last Modified
1545
+ * Format: date-time
1546
+ * @description currently it's latest user comment time, it will be replaced by wiki modified date in the future
1547
+ */
1548
+ last_modified: string;
1549
+ /**
1550
+ * Infobox
1551
+ * @description server parsed infobox, a map from key to string or tuple
1552
+ * null if server infobox is not valid
1553
+ */
1554
+ infobox?: {
1555
+ [key: string]: unknown;
1556
+ }[];
1557
+ /**
1558
+ * Gender
1559
+ * @description parsed from wiki, maybe null
1560
+ */
1561
+ gender?: string;
1562
+ /** @description parsed from wiki, maybe null, `1, 2, 3, 4` for `A, B, AB, O` */
1563
+ blood_type?: number;
1564
+ /**
1565
+ * Birth Year
1566
+ * @description parsed from wiki, maybe `null`
1567
+ */
1568
+ birth_year?: number;
1569
+ /**
1570
+ * Birth Mon
1571
+ * @description parsed from wiki, maybe `null`
1572
+ */
1573
+ birth_mon?: number;
1574
+ /**
1575
+ * Birth Day
1576
+ * @description parsed from wiki, maybe `null`
1577
+ */
1578
+ birth_day?: number;
1579
+ stat: components['schemas']['Stat'];
1580
+ };
1581
+ /** PersonImages */
1582
+ PersonImages: {
1583
+ /** Large */
1584
+ large: string;
1585
+ /** Medium */
1586
+ medium: string;
1587
+ /** Small */
1588
+ small: string;
1589
+ /** Grid */
1590
+ grid: string;
1591
+ };
1592
+ /**
1593
+ * PersonType
1594
+ * @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合`
1595
+ * @enum {integer}
1596
+ */
1597
+ PersonType: 1 | 2 | 3;
1598
+ /** RelatedCharacter */
1599
+ RelatedCharacter: {
1600
+ /** ID */
1601
+ id: number;
1602
+ /** Name */
1603
+ name: string;
1604
+ /** @description 角色,机体,舰船,组织... */
1605
+ type: number;
1606
+ /**
1607
+ * Images
1608
+ * @description object with some size of images, this object maybe `null`
1609
+ */
1610
+ images?: components['schemas']['PersonImages'];
1611
+ /** Relation */
1612
+ relation: string;
1613
+ /**
1614
+ * Actors
1615
+ * @description 演员列表
1616
+ * @default []
1617
+ */
1618
+ actors?: components['schemas']['Person'][];
1619
+ };
1620
+ /** RelatedPerson */
1621
+ RelatedPerson: {
1622
+ /** ID */
1623
+ id: number;
1624
+ /** Name */
1625
+ name: string;
1626
+ /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
1627
+ type: number;
1628
+ career: components['schemas']['PersonCareer'][];
1629
+ /**
1630
+ * Images
1631
+ * @description object with some size of images, this object maybe `null`
1632
+ */
1633
+ images?: components['schemas']['PersonImages'];
1634
+ /** Relation */
1635
+ relation: string;
1636
+ /**
1637
+ * Eps
1638
+ * @description 参与章节/曲目
1639
+ */
1640
+ eps: string;
1641
+ };
1642
+ /** UserCharacterCollection */
1643
+ UserCharacterCollection: {
1644
+ /** ID */
1645
+ id: number;
1646
+ /** Name */
1647
+ name: string;
1648
+ /** @description 角色,机体,舰船,组织... */
1649
+ type: number;
1650
+ /**
1651
+ * Images
1652
+ * @description object with some size of images, this object maybe `null`
1653
+ */
1654
+ images?: components['schemas']['PersonImages'];
1655
+ /**
1656
+ * Created At
1657
+ * Format: date-time
1658
+ */
1659
+ created_at: string;
1660
+ };
1661
+ /** UserPersonCollection */
1662
+ UserPersonCollection: {
1663
+ /** ID */
1664
+ id: number;
1665
+ /** Name */
1666
+ name: string;
1667
+ /** @description `1`, `2`, `3` 表示 `个人`, `公司`, `组合` */
1668
+ type: number;
1669
+ career: components['schemas']['PersonCareer'][];
1670
+ /**
1671
+ * Images
1672
+ * @description object with some size of images, this object maybe `null`
1673
+ */
1674
+ images?: components['schemas']['PersonImages'];
1675
+ /**
1676
+ * Created At
1677
+ * Format: date-time
1678
+ */
1679
+ created_at: string;
1680
+ };
1681
+ /** Revision */
1682
+ Revision: {
1683
+ /** ID */
1684
+ id: number;
1685
+ /** Type */
1686
+ type: number;
1687
+ creator?: components['schemas']['Creator'];
1688
+ /** Summary */
1689
+ summary: string;
1690
+ /**
1691
+ * Created At
1692
+ * Format: date-time
1693
+ */
1694
+ created_at: string;
1695
+ };
1696
+ /** Stat */
1697
+ Stat: {
1698
+ /** Comments */
1699
+ comments: number;
1700
+ /** Collects */
1701
+ collects: number;
1702
+ };
1703
+ /** Subject */
1704
+ Subject: {
1705
+ /** ID */
1706
+ id: number;
1707
+ /** Type */
1708
+ type: number;
1709
+ /** Name */
1710
+ name: string;
1711
+ /** Name Cn */
1712
+ name_cn: string;
1713
+ /** Summary */
1714
+ summary: string;
1715
+ /**
1716
+ * Series
1717
+ * @description 是否为书籍系列的主条目
1718
+ */
1719
+ series: boolean;
1720
+ /** Nsfw */
1721
+ nsfw: boolean;
1722
+ /** Locked */
1723
+ locked: boolean;
1724
+ /**
1725
+ * Date
1726
+ * @description air date in `YYYY-MM-DD` format
1727
+ */
1728
+ date?: string;
1729
+ /**
1730
+ * Platform
1731
+ * @description TV, Web, 欧美剧, DLC...
1732
+ */
1733
+ platform: string;
1734
+ images: components['schemas']['Images'];
1735
+ infobox?: components['schemas']['WikiV0'];
1736
+ /**
1737
+ * Volumes
1738
+ * @description 书籍条目的册数,由旧服务端从wiki中解析
1739
+ */
1740
+ volumes: number;
1741
+ /**
1742
+ * Eps
1743
+ * @description 由旧服务端从wiki中解析,对于书籍条目为`话数`
1744
+ */
1745
+ eps: number;
1746
+ /**
1747
+ * Total Episodes
1748
+ * @description 数据库中的章节数量
1749
+ */
1750
+ total_episodes: number;
1751
+ /** Rating */
1752
+ rating: {
1753
+ /** Rank */
1754
+ rank: number;
1755
+ /** Total */
1756
+ total: number;
1757
+ /** Count */
1758
+ count: {
1759
+ '1'?: number;
1760
+ '2'?: number;
1761
+ '3'?: number;
1762
+ '4'?: number;
1763
+ '5'?: number;
1764
+ '6'?: number;
1765
+ '7'?: number;
1766
+ '8'?: number;
1767
+ '9'?: number;
1768
+ '10'?: number;
1769
+ };
1770
+ /** Score */
1771
+ score: number;
1772
+ };
1773
+ /** Collection */
1774
+ collection: {
1775
+ /** Wish */
1776
+ wish: number;
1777
+ /** Collect */
1778
+ collect: number;
1779
+ /** Doing */
1780
+ doing: number;
1781
+ /** On Hold */
1782
+ on_hold: number;
1783
+ /** Dropped */
1784
+ dropped: number;
1785
+ };
1786
+ /** @description 由维基人维护的 tag */
1787
+ meta_tags: string[];
1788
+ tags: components['schemas']['SubjectTags'];
1789
+ };
1790
+ /** SlimSubject */
1791
+ SlimSubject: {
1792
+ /** ID */
1793
+ id: number;
1794
+ /** Type */
1795
+ type: number;
1796
+ /** Name */
1797
+ name: string;
1798
+ /** Name Cn */
1799
+ name_cn: string;
1800
+ /**
1801
+ * Summary
1802
+ * @description 截短后的条目描述。
1803
+ */
1804
+ short_summary: string;
1805
+ /**
1806
+ * Date
1807
+ * @description air date in `YYYY-MM-DD` format
1808
+ */
1809
+ date?: string;
1810
+ images: components['schemas']['Images'];
1811
+ /**
1812
+ * Volumes
1813
+ * @description 书籍条目的册数,由旧服务端从wiki中解析
1814
+ */
1815
+ volumes: number;
1816
+ /**
1817
+ * Eps
1818
+ * @description 由旧服务端从wiki中解析,对于书籍条目为`话数`
1819
+ */
1820
+ eps: number;
1821
+ /**
1822
+ * Total
1823
+ * @description 收藏人数
1824
+ */
1825
+ collection_total: number;
1826
+ /**
1827
+ * Score
1828
+ * @description 分数
1829
+ */
1830
+ score: number;
1831
+ /**
1832
+ * Rank
1833
+ * @description 排名
1834
+ */
1835
+ rank: number;
1836
+ /** @description 前 10 个 tag */
1837
+ tags: components['schemas']['SubjectTags'];
1838
+ };
1839
+ /** Tags */
1840
+ SubjectTags: {
1841
+ /** Name */
1842
+ name: string;
1843
+ /** Count */
1844
+ count: number;
1845
+ }[];
1846
+ /**
1847
+ * SubjectType
1848
+ * @description 条目类型
1849
+ * - `1` 为 书籍
1850
+ * - `2` 为 动画
1851
+ * - `3` 为 音乐
1852
+ * - `4` 为 游戏
1853
+ * - `6` 为 三次元
1854
+ *
1855
+ * 没有 `5`
1856
+ * @example 2
1857
+ * @enum {integer}
1858
+ */
1859
+ SubjectType: 1 | 2 | 3 | 4 | 6;
1860
+ /**
1861
+ * SubjectBookCategory
1862
+ * @description 书籍类型
1863
+ * - `0` 为 其他
1864
+ * - `1001` 为 漫画
1865
+ * - `1002` 为 小说
1866
+ * - `1003` 为 画集
1867
+ * @example 1001
1868
+ * @enum {integer}
1869
+ */
1870
+ SubjectBookCategory: 0 | 1001 | 1002 | 1003;
1871
+ /**
1872
+ * SubjectAnimeCategory
1873
+ * @description 动画类型
1874
+ * - `0` 为 其他
1875
+ * - `1` 为 TV
1876
+ * - `2` 为 OVA
1877
+ * - `3` 为 Movie
1878
+ * - `5` 为 WEB
1879
+ * @example 1
1880
+ * @enum {integer}
1881
+ */
1882
+ SubjectAnimeCategory: 0 | 1 | 2 | 3 | 5;
1883
+ /**
1884
+ * SubjectGameCategory
1885
+ * @description 游戏类型
1886
+ * - `0` 为 其他
1887
+ * - `4001` 为 游戏
1888
+ * - `4002` 为 软件
1889
+ * - `4003` 为 扩展包
1890
+ * - `4005` 为 桌游
1891
+ * @example 4001
1892
+ * @enum {integer}
1893
+ */
1894
+ SubjectGameCategory: 0 | 4001 | 4003 | 4002 | 4005;
1895
+ /**
1896
+ * SubjectRealCategory
1897
+ * @description 电影类型
1898
+ * - `0` 为 其他
1899
+ * - `1` 为 日剧
1900
+ * - `2` 为 欧美剧
1901
+ * - `3` 为 华语剧
1902
+ * - `6001` 为 电视剧
1903
+ * - `6002` 为 电影
1904
+ * - `6003` 为 演出
1905
+ * - `6004` 为 综艺
1906
+ * @example 6
1907
+ * @enum {integer}
1908
+ */
1909
+ SubjectRealCategory: 0 | 1 | 2 | 3 | 6001 | 6002 | 6003 | 6004;
1910
+ SubjectCategory: Partial<components['schemas']['SubjectBookCategory']> & Partial<components['schemas']['SubjectAnimeCategory']> & Partial<components['schemas']['SubjectGameCategory']> & Partial<components['schemas']['SubjectRealCategory']>;
1911
+ /** UserSubjectCollection */
1912
+ UserSubjectCollection: {
1913
+ /**
1914
+ * Subject ID
1915
+ * @example 8
1916
+ */
1917
+ subject_id: number;
1918
+ subject_type: components['schemas']['SubjectType'];
1919
+ /**
1920
+ * Rate
1921
+ * @example 4
1922
+ */
1923
+ rate: number;
1924
+ type: components['schemas']['SubjectCollectionType'];
1925
+ /**
1926
+ * Comment
1927
+ * @example 看看
1928
+ */
1929
+ comment?: string;
1930
+ /**
1931
+ * Tags
1932
+ * @example [
1933
+ * "柯南",
1934
+ * "万年小学生",
1935
+ * "推理",
1936
+ * "青山刚昌",
1937
+ * "TV"
1938
+ * ]
1939
+ */
1940
+ tags: string[];
1941
+ /**
1942
+ * Ep Status
1943
+ * @example 5
1944
+ */
1945
+ ep_status: number;
1946
+ /**
1947
+ * Vol Status
1948
+ * @example 0
1949
+ */
1950
+ vol_status: number;
1951
+ /**
1952
+ * Updated At
1953
+ * Format: date-time
1954
+ * @description 本时间并不代表条目的收藏时间。修改评分,评价,章节观看状态等收藏信息时未更新此时间是一个 bug。请不要依赖此特性
1955
+ * @example 2022-06-19T18:44:13.6140127+08:00
1956
+ */
1957
+ updated_at: string;
1958
+ /** Private */
1959
+ private: boolean;
1960
+ subject?: components['schemas']['SlimSubject'];
1961
+ };
1962
+ /**
1963
+ * UserSubjectCollectionModifyPayload
1964
+ * @description 所有的字段均可选
1965
+ */
1966
+ UserSubjectCollectionModifyPayload: {
1967
+ /** @description 修改条目收藏类型 */
1968
+ type?: components['schemas']['SubjectCollectionType'];
1969
+ /** @description 评分,`0` 表示删除评分 */
1970
+ rate?: number;
1971
+ /** @description 只能用于修改书籍条目进度 */
1972
+ ep_status?: number;
1973
+ /** @description 只能用于修改书籍条目进度 */
1974
+ vol_status?: number;
1975
+ /** @description 评价 */
1976
+ comment?: string;
1977
+ /** @description 仅自己可见 */
1978
+ private?: boolean;
1979
+ /**
1980
+ * 标签
1981
+ * @description 不传或者 `null` 都会被忽略,传 `[]` 则会删除所有 tag。
1982
+ */
1983
+ tags?: string[];
1984
+ };
1985
+ UserEpisodeCollection: {
1986
+ episode: components['schemas']['Episode'];
1987
+ type: components['schemas']['EpisodeCollectionType'];
1988
+ };
1989
+ /** RelatedSubject */
1990
+ v0_RelatedSubject: {
1991
+ /** ID */
1992
+ id: number;
1993
+ type: components['schemas']['SubjectType'];
1994
+ /** Staff */
1995
+ staff: string;
1996
+ /** Name */
1997
+ name: string;
1998
+ /** Name Cn */
1999
+ name_cn: string;
2000
+ /** Image */
2001
+ image?: string;
2002
+ };
2003
+ /** SubjectRelation */
2004
+ v0_subject_relation: {
2005
+ /** ID */
2006
+ id: number;
2007
+ /** Type */
2008
+ type: number;
2009
+ /** Name */
2010
+ name: string;
2011
+ /** Name Cn */
2012
+ name_cn: string;
2013
+ images?: components['schemas']['Images'];
2014
+ /** Relation */
2015
+ relation: string;
2016
+ };
2017
+ };
2018
+ responses: {
2019
+ /** Bad Request */
2020
+ 400: {
2021
+ content: {
2022
+ 'application/json': components['schemas']['ErrorDetail'];
2023
+ };
2024
+ };
2025
+ /** Unauthorized */
2026
+ 401: {
2027
+ content: {
2028
+ 'application/json': components['schemas']['ErrorDetail'];
2029
+ };
2030
+ };
2031
+ /** Not Found */
2032
+ 404: {
2033
+ content: {
2034
+ 'application/json': components['schemas']['ErrorDetail'];
2035
+ };
2036
+ };
2037
+ /** Internal Server Error */
2038
+ 500: {
2039
+ content: {
2040
+ 'application/json': components['schemas']['ErrorDetail'];
2041
+ };
2042
+ };
2043
+ /** Successful Response */
2044
+ '200-no-content': unknown;
2045
+ };
2046
+ parameters: {
2047
+ /** @description 条目 ID */
2048
+ path_subject_id: components['schemas']['SubjectID'];
2049
+ /** @description 设置了用户名之后无法使用 UID。 */
2050
+ path_username: string;
2051
+ /** @description 章节 ID */
2052
+ path_episode_id: number;
2053
+ /** @description 角色 ID */
2054
+ path_character_id: number;
2055
+ /** @description 人物 ID */
2056
+ path_person_id: number;
2057
+ /** @description 目录 ID */
2058
+ path_index_id: number;
2059
+ /** @description 条目 ID */
2060
+ query_subject_id: components['schemas']['SubjectID'];
2061
+ /** @description 分页参数 */
2062
+ default_query_limit: number;
2063
+ /** @description 分页参数 */
2064
+ default_query_offset: number;
2065
+ /** @description 版本 ID */
2066
+ path_revision_id: number;
2067
+ };
2068
+ }
2069
+ interface operations {
2070
+ getCalendar: {
2071
+ responses: {
2072
+ /** 每日放送 */
2073
+ 200: {
2074
+ content: {
2075
+ 'application/json': {
2076
+ weekday?: {
2077
+ /** @example Mon */
2078
+ en?: string;
2079
+ /** @example 星期一 */
2080
+ cn?: string;
2081
+ /** @example 月耀日 */
2082
+ ja?: string;
2083
+ /** @example 1 */
2084
+ id?: number;
2085
+ };
2086
+ items?: components['schemas']['Legacy_SubjectSmall'][];
2087
+ }[];
2088
+ };
2089
+ };
2090
+ };
2091
+ };
2092
+ searchSubjectByKeywords: {
2093
+ parameters: {
2094
+ path: {
2095
+ /** 关键词 <br> 需要 URL Encode */
2096
+ keywords: string;
2097
+ };
2098
+ query: {
2099
+ /** 条目类型,参考 [SubjectType](#model-Legacy_SubjectType) */
2100
+ type?: components['schemas']['Legacy_SubjectType'];
2101
+ /** 返回数据大小 <br> 默认为 small */
2102
+ responseGroup?: 'small' | 'medium' | 'large';
2103
+ /** 开始条数 */
2104
+ start?: number;
2105
+ /** 每页条数 <br> 最多 25 */
2106
+ max_results?: number;
2107
+ };
2108
+ };
2109
+ responses: {
2110
+ /** 搜索结果 */
2111
+ 200: {
2112
+ content: {
2113
+ 'application/json': {
2114
+ /** @description 总条数 */
2115
+ results?: number;
2116
+ /** @description 结果列表 */
2117
+ list?: components['schemas']['Legacy_SubjectSmall'][];
2118
+ } | {
2119
+ /** @description 总条数 */
2120
+ results?: number;
2121
+ /** @description 结果列表 */
2122
+ list?: components['schemas']['Legacy_SubjectMedium'][];
2123
+ } | {
2124
+ /** @description 总条数 */
2125
+ results?: number;
2126
+ /** @description 结果列表 */
2127
+ list?: components['schemas']['Legacy_SubjectLarge'][];
2128
+ };
2129
+ };
2130
+ };
2131
+ };
2132
+ };
2133
+ /**
2134
+ * ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
2135
+ *
2136
+ * 目前支持的筛选条件包括:
2137
+ * - `type`: 条目类型,参照 `SubjectType` enum, `或`。
2138
+ * - `tag`: 标签,可以多次出现。`且` 关系。
2139
+ * - `airdate`: 播出日期/发售日期。`且` 关系。
2140
+ * - `rating`: 用于搜索指定评分的条目。`且` 关系。
2141
+ * - `rank`: 用于搜索指定排名的条目。`且` 关系。
2142
+ * - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
2143
+ *
2144
+ * 不同筛选条件之间为 `且`
2145
+ */
2146
+ searchSubjects: {
2147
+ parameters: {
2148
+ query: {
2149
+ /** 分页参数 */
2150
+ limit?: number;
2151
+ /** 分页参数 */
2152
+ offset?: number;
2153
+ };
2154
+ };
2155
+ responses: {
2156
+ /** 返回搜索结果 */
2157
+ 200: {
2158
+ content: {
2159
+ 'application/json': components['schemas']['Paged_Subject'];
2160
+ };
2161
+ };
2162
+ };
2163
+ requestBody: {
2164
+ content: {
2165
+ 'application/json': {
2166
+ keyword: string;
2167
+ /**
2168
+ * @description 排序规则
2169
+ *
2170
+ * - `match` meilisearch 的默认排序,按照匹配程度
2171
+ * - `heat` 收藏人数
2172
+ * - `rank` 排名由高到低
2173
+ * - `score` 评分
2174
+ *
2175
+ * @default match
2176
+ * @example rank
2177
+ * @enum {string}
2178
+ */
2179
+ sort?: 'match' | 'heat' | 'rank' | 'score';
2180
+ /** @description 不同条件之间是 `且` 的关系 */
2181
+ filter?: {
2182
+ /** @description 条目类型,参照 `SubjectType` enum,多值之间为 `或` 的关系。 */
2183
+ type?: components['schemas']['SubjectType'][];
2184
+ /**
2185
+ * @description 公共标签。多个值之间为 `且` 关系。可以用 `-` 排除标签。比如 `-科幻` 可以排除科幻标签。
2186
+ * @example [
2187
+ * "童年",
2188
+ * "原创"
2189
+ * ]
2190
+ */
2191
+ meta_tags?: string[];
2192
+ /**
2193
+ * @description 标签,可以多次出现。多值之间为 `且` 关系。
2194
+ * @example [
2195
+ * "童年",
2196
+ * "原创"
2197
+ * ]
2198
+ */
2199
+ tag?: string[];
2200
+ /**
2201
+ * @description 播出日期/发售日期,日期必需为 `YYYY-MM-DD` 格式。多值之间为 `且` 关系。
2202
+ * @example [
2203
+ * ">=2020-07-01",
2204
+ * "<2020-10-01"
2205
+ * ]
2206
+ */
2207
+ air_date?: string[];
2208
+ /**
2209
+ * @description 用于搜索指定评分的条目,多值之间为 `且` 关系。
2210
+ * @example [
2211
+ * ">=6",
2212
+ * "<8"
2213
+ * ]
2214
+ */
2215
+ rating?: string[];
2216
+ /**
2217
+ * @description 用于搜索指定排名的条目,多值之间为 `且` 关系。
2218
+ * @example [
2219
+ * ">10",
2220
+ * "<=18"
2221
+ * ]
2222
+ */
2223
+ rank?: string[];
2224
+ /**
2225
+ * @description 无权限的用户会直接忽略此字段,不会返回R18条目。
2226
+ *
2227
+ * 默认或者 `null` 会返回包含 R18 的所有搜索结果。
2228
+ *
2229
+ * `true` 只会返回 R18 条目。
2230
+ *
2231
+ * `false` 只会返回非 R18 条目。
2232
+ */
2233
+ nsfw?: boolean;
2234
+ };
2235
+ };
2236
+ };
2237
+ };
2238
+ };
2239
+ /**
2240
+ * ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
2241
+ *
2242
+ * 目前支持的筛选条件包括:
2243
+ * - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。
2244
+ */
2245
+ searchCharacters: {
2246
+ parameters: {
2247
+ query: {
2248
+ /** 分页参数 */
2249
+ limit?: number;
2250
+ /** 分页参数 */
2251
+ offset?: number;
2252
+ };
2253
+ };
2254
+ responses: {
2255
+ /** 返回搜索结果 */
2256
+ 200: {
2257
+ content: {
2258
+ 'application/json': components['schemas']['Paged_Character'];
2259
+ };
2260
+ };
2261
+ };
2262
+ requestBody: {
2263
+ content: {
2264
+ 'application/json': {
2265
+ keyword: string;
2266
+ /** @description 不同条件之间是 `且` 的关系 */
2267
+ filter?: {
2268
+ /**
2269
+ * @description 无权限的用户会直接忽略此字段,不会返回 R18 角色。
2270
+ *
2271
+ * 默认或者 `null` 会返回包含 R18 的所有搜索结果。
2272
+ *
2273
+ * `true` 只会返回 R18 角色。
2274
+ *
2275
+ * `false` 只会返回非 R18 角色。
2276
+ */
2277
+ nsfw?: boolean;
2278
+ };
2279
+ };
2280
+ };
2281
+ };
2282
+ };
2283
+ /**
2284
+ * ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动
2285
+ *
2286
+ * 目前支持的筛选条件包括:
2287
+ * - `career`: 职业,可以多次出现。`且` 关系。
2288
+ *
2289
+ * 不同筛选条件之间为 `且`
2290
+ */
2291
+ searchPersons: {
2292
+ parameters: {
2293
+ query: {
2294
+ /** 分页参数 */
2295
+ limit?: number;
2296
+ /** 分页参数 */
2297
+ offset?: number;
2298
+ };
2299
+ };
2300
+ responses: {
2301
+ /** 返回搜索结果 */
2302
+ 200: {
2303
+ content: {
2304
+ 'application/json': components['schemas']['Paged_Person'];
2305
+ };
2306
+ };
2307
+ };
2308
+ requestBody: {
2309
+ content: {
2310
+ 'application/json': {
2311
+ keyword: string;
2312
+ /** @description 不同条件之间是 `且` 的关系 */
2313
+ filter?: {
2314
+ /**
2315
+ * @description 职业,可以多次出现。多值之间为 `且` 关系。
2316
+ * @example [
2317
+ * "artist",
2318
+ * "director"
2319
+ * ]
2320
+ */
2321
+ career?: string[];
2322
+ };
2323
+ };
2324
+ };
2325
+ };
2326
+ };
2327
+ /** 第一页会 cache 24h,之后会 cache 1h */
2328
+ getSubjects: {
2329
+ parameters: {
2330
+ query: {
2331
+ /** 条目类型 */
2332
+ type: components['schemas']['SubjectType'];
2333
+ /** 条目分类,参照 `SubjectCategory` enum */
2334
+ cat?: components['schemas']['SubjectCategory'];
2335
+ /** 是否系列,仅对书籍类型的条目有效 */
2336
+ series?: boolean;
2337
+ /** 平台,仅对游戏类型的条目有效 */
2338
+ platform?: string;
2339
+ /** 排序,枚举值 {date|rank} */
2340
+ sort?: string;
2341
+ /** 年份 */
2342
+ year?: number;
2343
+ /** 月份 */
2344
+ month?: number;
2345
+ /** 分页参数 */
2346
+ limit?: components['parameters']['default_query_limit'];
2347
+ /** 分页参数 */
2348
+ offset?: components['parameters']['default_query_offset'];
2349
+ };
2350
+ };
2351
+ responses: {
2352
+ /** Successful Response */
2353
+ 200: {
2354
+ content: {
2355
+ 'application/json': components['schemas']['Paged_Subject'];
2356
+ };
2357
+ };
2358
+ /** Validation Error */
2359
+ 400: {
2360
+ content: {
2361
+ 'application/json': components['schemas']['ErrorDetail'];
2362
+ };
2363
+ };
2364
+ /** Not Found */
2365
+ 404: {
2366
+ content: {
2367
+ 'application/json': components['schemas']['ErrorDetail'];
2368
+ };
2369
+ };
2370
+ };
2371
+ };
2372
+ /** cache with 300s */
2373
+ getSubjectById: {
2374
+ parameters: {
2375
+ path: {
2376
+ /** 条目 ID */
2377
+ subject_id: components['parameters']['path_subject_id'];
2378
+ };
2379
+ };
2380
+ responses: {
2381
+ /** Successful Response */
2382
+ 200: {
2383
+ content: {
2384
+ 'application/json': components['schemas']['Subject'];
2385
+ };
2386
+ };
2387
+ /** Validation Error */
2388
+ 400: {
2389
+ content: {
2390
+ 'application/json': components['schemas']['ErrorDetail'];
2391
+ };
2392
+ };
2393
+ /** Not Found */
2394
+ 404: {
2395
+ content: {
2396
+ 'application/json': components['schemas']['ErrorDetail'];
2397
+ };
2398
+ };
2399
+ };
2400
+ };
2401
+ getSubjectImageById: {
2402
+ parameters: {
2403
+ path: {
2404
+ /** 条目 ID */
2405
+ subject_id: components['parameters']['path_subject_id'];
2406
+ };
2407
+ query: {
2408
+ /** 枚举值 {small|grid|large|medium|common} */
2409
+ type: string;
2410
+ };
2411
+ };
2412
+ responses: {
2413
+ /** Successful Response */
2414
+ 302: never;
2415
+ /** Validation Error */
2416
+ 400: {
2417
+ content: {
2418
+ 'application/json': components['schemas']['ErrorDetail'];
2419
+ };
2420
+ };
2421
+ /** Not Found */
2422
+ 404: {
2423
+ content: {
2424
+ 'application/json': components['schemas']['ErrorDetail'];
2425
+ };
2426
+ };
2427
+ };
2428
+ };
2429
+ getRelatedPersonsBySubjectId: {
2430
+ parameters: {
2431
+ path: {
2432
+ /** 条目 ID */
2433
+ subject_id: components['parameters']['path_subject_id'];
2434
+ };
2435
+ };
2436
+ responses: {
2437
+ /** Successful Response */
2438
+ 200: {
2439
+ content: {
2440
+ 'application/json': components['schemas']['RelatedPerson'][];
2441
+ };
2442
+ };
2443
+ /** Validation Error */
2444
+ 400: {
2445
+ content: {
2446
+ 'application/json': components['schemas']['ErrorDetail'];
2447
+ };
2448
+ };
2449
+ /** Not Found */
2450
+ 404: {
2451
+ content: {
2452
+ 'application/json': components['schemas']['ErrorDetail'];
2453
+ };
2454
+ };
2455
+ };
2456
+ };
2457
+ getRelatedCharactersBySubjectId: {
2458
+ parameters: {
2459
+ path: {
2460
+ /** 条目 ID */
2461
+ subject_id: components['parameters']['path_subject_id'];
2462
+ };
2463
+ };
2464
+ responses: {
2465
+ /** Successful Response */
2466
+ 200: {
2467
+ content: {
2468
+ 'application/json': components['schemas']['RelatedCharacter'][];
2469
+ };
2470
+ };
2471
+ /** Validation Error */
2472
+ 400: {
2473
+ content: {
2474
+ 'application/json': components['schemas']['ErrorDetail'];
2475
+ };
2476
+ };
2477
+ /** Not Found */
2478
+ 404: {
2479
+ content: {
2480
+ 'application/json': components['schemas']['ErrorDetail'];
2481
+ };
2482
+ };
2483
+ };
2484
+ };
2485
+ getRelatedSubjectsBySubjectId: {
2486
+ parameters: {
2487
+ path: {
2488
+ /** 条目 ID */
2489
+ subject_id: components['parameters']['path_subject_id'];
2490
+ };
2491
+ };
2492
+ responses: {
2493
+ /** Successful Response */
2494
+ 200: {
2495
+ content: {
2496
+ 'application/json': components['schemas']['v0_subject_relation'][];
2497
+ };
2498
+ };
2499
+ /** Validation Error */
2500
+ 400: {
2501
+ content: {
2502
+ 'application/json': components['schemas']['ErrorDetail'];
2503
+ };
2504
+ };
2505
+ /** Not Found */
2506
+ 404: {
2507
+ content: {
2508
+ 'application/json': components['schemas']['ErrorDetail'];
2509
+ };
2510
+ };
2511
+ };
2512
+ };
2513
+ getEpisodes: {
2514
+ parameters: {
2515
+ query: {
2516
+ /** 条目 ID */
2517
+ subject_id: components['parameters']['query_subject_id'];
2518
+ /** 参照章节的`type` */
2519
+ type?: components['schemas']['EpType'];
2520
+ /** 分页参数 */
2521
+ limit?: number;
2522
+ /** 分页参数 */
2523
+ offset?: number;
2524
+ };
2525
+ };
2526
+ responses: {
2527
+ /** Successful Response */
2528
+ 200: {
2529
+ content: {
2530
+ 'application/json': components['schemas']['Paged_Episode'];
2531
+ };
2532
+ };
2533
+ /** Validation Error */
2534
+ 400: {
2535
+ content: {
2536
+ 'application/json': components['schemas']['ErrorDetail'];
2537
+ };
2538
+ };
2539
+ /** Not Found */
2540
+ 404: {
2541
+ content: {
2542
+ 'application/json': components['schemas']['ErrorDetail'];
2543
+ };
2544
+ };
2545
+ };
2546
+ };
2547
+ getEpisodeById: {
2548
+ parameters: {
2549
+ path: {
2550
+ /** 章节 ID */
2551
+ episode_id: components['parameters']['path_episode_id'];
2552
+ };
2553
+ };
2554
+ responses: {
2555
+ /** Successful Response */
2556
+ 200: {
2557
+ content: {
2558
+ 'application/json': components['schemas']['EpisodeDetail'];
2559
+ };
2560
+ };
2561
+ /** Validation Error */
2562
+ 400: {
2563
+ content: {
2564
+ 'application/json': components['schemas']['ErrorDetail'];
2565
+ };
2566
+ };
2567
+ /** Not Found */
2568
+ 404: {
2569
+ content: {
2570
+ 'application/json': components['schemas']['ErrorDetail'];
2571
+ };
2572
+ };
2573
+ };
2574
+ };
2575
+ /** cache with 60s */
2576
+ getCharacterById: {
2577
+ parameters: {
2578
+ path: {
2579
+ /** 角色 ID */
2580
+ character_id: components['parameters']['path_character_id'];
2581
+ };
2582
+ };
2583
+ responses: {
2584
+ /** Successful Response */
2585
+ 200: {
2586
+ content: {
2587
+ 'application/json': components['schemas']['Character'];
2588
+ };
2589
+ };
2590
+ /** Validation Error */
2591
+ 400: {
2592
+ content: {
2593
+ 'application/json': components['schemas']['ErrorDetail'];
2594
+ };
2595
+ };
2596
+ /** Not Found */
2597
+ 404: {
2598
+ content: {
2599
+ 'application/json': components['schemas']['ErrorDetail'];
2600
+ };
2601
+ };
2602
+ };
2603
+ };
2604
+ getCharacterImageById: {
2605
+ parameters: {
2606
+ path: {
2607
+ /** 角色 ID */
2608
+ character_id: components['parameters']['path_character_id'];
2609
+ };
2610
+ query: {
2611
+ /** 枚举值 {small|grid|large|medium} */
2612
+ type: string;
2613
+ };
2614
+ };
2615
+ responses: {
2616
+ /** Successful Response */
2617
+ 302: never;
2618
+ /** Validation Error */
2619
+ 400: {
2620
+ content: {
2621
+ 'application/json': components['schemas']['ErrorDetail'];
2622
+ };
2623
+ };
2624
+ /** Not Found */
2625
+ 404: {
2626
+ content: {
2627
+ 'application/json': components['schemas']['ErrorDetail'];
2628
+ };
2629
+ };
2630
+ };
2631
+ };
2632
+ getRelatedSubjectsByCharacterId: {
2633
+ parameters: {
2634
+ path: {
2635
+ /** 角色 ID */
2636
+ character_id: components['parameters']['path_character_id'];
2637
+ };
2638
+ };
2639
+ responses: {
2640
+ /** Successful Response */
2641
+ 200: {
2642
+ content: {
2643
+ 'application/json': components['schemas']['v0_RelatedSubject'][];
2644
+ };
2645
+ };
2646
+ /** Validation Error */
2647
+ 400: {
2648
+ content: {
2649
+ 'application/json': components['schemas']['ErrorDetail'];
2650
+ };
2651
+ };
2652
+ /** Not Found */
2653
+ 404: {
2654
+ content: {
2655
+ 'application/json': components['schemas']['ErrorDetail'];
2656
+ };
2657
+ };
2658
+ };
2659
+ };
2660
+ getRelatedPersonsByCharacterId: {
2661
+ parameters: {
2662
+ path: {
2663
+ /** 角色 ID */
2664
+ character_id: components['parameters']['path_character_id'];
2665
+ };
2666
+ };
2667
+ responses: {
2668
+ /** Successful Response */
2669
+ 200: {
2670
+ content: {
2671
+ 'application/json': components['schemas']['CharacterPerson'][];
2672
+ };
2673
+ };
2674
+ /** Validation Error */
2675
+ 400: {
2676
+ content: {
2677
+ 'application/json': components['schemas']['ErrorDetail'];
2678
+ };
2679
+ };
2680
+ /** Not Found */
2681
+ 404: {
2682
+ content: {
2683
+ 'application/json': components['schemas']['ErrorDetail'];
2684
+ };
2685
+ };
2686
+ };
2687
+ };
2688
+ /** 为当前用户收藏角色 */
2689
+ collectCharacterByCharacterIdAndUserId: {
2690
+ parameters: {
2691
+ path: {
2692
+ /** 角色 ID */
2693
+ character_id: components['parameters']['path_character_id'];
2694
+ };
2695
+ };
2696
+ responses: {
2697
+ /** Successful Response */
2698
+ 204: never;
2699
+ /** character ID not valid */
2700
+ 400: {
2701
+ content: {
2702
+ 'application/json': components['schemas']['ErrorDetail'];
2703
+ };
2704
+ };
2705
+ /** not authorized */
2706
+ 401: {
2707
+ content: {
2708
+ 'application/json': components['schemas']['ErrorDetail'];
2709
+ };
2710
+ };
2711
+ /** 角色不存在 */
2712
+ 404: {
2713
+ content: {
2714
+ 'application/json': components['schemas']['ErrorDetail'];
2715
+ };
2716
+ };
2717
+ };
2718
+ };
2719
+ /** 为当前用户取消收藏角色 */
2720
+ uncollectCharacterByCharacterIdAndUserId: {
2721
+ parameters: {
2722
+ path: {
2723
+ /** 角色 ID */
2724
+ character_id: components['parameters']['path_character_id'];
2725
+ };
2726
+ };
2727
+ responses: {
2728
+ /** Successful Response */
2729
+ 204: never;
2730
+ /** character ID not valid */
2731
+ 400: {
2732
+ content: {
2733
+ 'application/json': components['schemas']['ErrorDetail'];
2734
+ };
2735
+ };
2736
+ /** not authorized */
2737
+ 401: {
2738
+ content: {
2739
+ 'application/json': components['schemas']['ErrorDetail'];
2740
+ };
2741
+ };
2742
+ /** 角色不存在 */
2743
+ 404: {
2744
+ content: {
2745
+ 'application/json': components['schemas']['ErrorDetail'];
2746
+ };
2747
+ };
2748
+ };
2749
+ };
2750
+ /** cache with 60s */
2751
+ getPersonById: {
2752
+ parameters: {
2753
+ path: {
2754
+ /** 人物 ID */
2755
+ person_id: components['parameters']['path_person_id'];
2756
+ };
2757
+ };
2758
+ responses: {
2759
+ /** Successful Response */
2760
+ 200: {
2761
+ content: {
2762
+ 'application/json': components['schemas']['PersonDetail'];
2763
+ };
2764
+ };
2765
+ /** Validation Error */
2766
+ 400: {
2767
+ content: {
2768
+ 'application/json': components['schemas']['ErrorDetail'];
2769
+ };
2770
+ };
2771
+ /** Not Found */
2772
+ 404: {
2773
+ content: {
2774
+ 'application/json': components['schemas']['ErrorDetail'];
2775
+ };
2776
+ };
2777
+ };
2778
+ };
2779
+ getPersonImageById: {
2780
+ parameters: {
2781
+ path: {
2782
+ /** 人物 ID */
2783
+ person_id: components['parameters']['path_person_id'];
2784
+ };
2785
+ query: {
2786
+ /** 枚举值 {small|grid|large|medium} */
2787
+ type: string;
2788
+ };
2789
+ };
2790
+ responses: {
2791
+ /** Successful Response */
2792
+ 302: never;
2793
+ /** Validation Error */
2794
+ 400: {
2795
+ content: {
2796
+ 'application/json': components['schemas']['ErrorDetail'];
2797
+ };
2798
+ };
2799
+ /** Not Found */
2800
+ 404: {
2801
+ content: {
2802
+ 'application/json': components['schemas']['ErrorDetail'];
2803
+ };
2804
+ };
2805
+ };
2806
+ };
2807
+ getRelatedSubjectsByPersonId: {
2808
+ parameters: {
2809
+ path: {
2810
+ /** 人物 ID */
2811
+ person_id: components['parameters']['path_person_id'];
2812
+ };
2813
+ };
2814
+ responses: {
2815
+ /** Successful Response */
2816
+ 200: {
2817
+ content: {
2818
+ 'application/json': components['schemas']['v0_RelatedSubject'][];
2819
+ };
2820
+ };
2821
+ /** Validation Error */
2822
+ 400: {
2823
+ content: {
2824
+ 'application/json': components['schemas']['ErrorDetail'];
2825
+ };
2826
+ };
2827
+ /** Not Found */
2828
+ 404: {
2829
+ content: {
2830
+ 'application/json': components['schemas']['ErrorDetail'];
2831
+ };
2832
+ };
2833
+ };
2834
+ };
2835
+ getRelatedCharactersByPersonId: {
2836
+ parameters: {
2837
+ path: {
2838
+ /** 人物 ID */
2839
+ person_id: components['parameters']['path_person_id'];
2840
+ };
2841
+ };
2842
+ responses: {
2843
+ /** Successful Response */
2844
+ 200: {
2845
+ content: {
2846
+ 'application/json': components['schemas']['PersonCharacter'][];
2847
+ };
2848
+ };
2849
+ /** Validation Error */
2850
+ 400: {
2851
+ content: {
2852
+ 'application/json': components['schemas']['ErrorDetail'];
2853
+ };
2854
+ };
2855
+ /** Not Found */
2856
+ 404: {
2857
+ content: {
2858
+ 'application/json': components['schemas']['ErrorDetail'];
2859
+ };
2860
+ };
2861
+ };
2862
+ };
2863
+ /** 为当前用户收藏人物 */
2864
+ collectPersonByPersonIdAndUserId: {
2865
+ parameters: {
2866
+ path: {
2867
+ /** 人物 ID */
2868
+ person_id: components['parameters']['path_person_id'];
2869
+ };
2870
+ };
2871
+ responses: {
2872
+ /** Successful Response */
2873
+ 204: never;
2874
+ /** person ID not valid */
2875
+ 400: {
2876
+ content: {
2877
+ 'application/json': components['schemas']['ErrorDetail'];
2878
+ };
2879
+ };
2880
+ /** not authorized */
2881
+ 401: {
2882
+ content: {
2883
+ 'application/json': components['schemas']['ErrorDetail'];
2884
+ };
2885
+ };
2886
+ /** 人物不存在 */
2887
+ 404: {
2888
+ content: {
2889
+ 'application/json': components['schemas']['ErrorDetail'];
2890
+ };
2891
+ };
2892
+ };
2893
+ };
2894
+ /** 为当前用户取消收藏人物 */
2895
+ uncollectPersonByPersonIdAndUserId: {
2896
+ parameters: {
2897
+ path: {
2898
+ /** 人物 ID */
2899
+ person_id: components['parameters']['path_person_id'];
2900
+ };
2901
+ };
2902
+ responses: {
2903
+ /** Successful Response */
2904
+ 204: never;
2905
+ /** person ID not valid */
2906
+ 400: {
2907
+ content: {
2908
+ 'application/json': components['schemas']['ErrorDetail'];
2909
+ };
2910
+ };
2911
+ /** not authorized */
2912
+ 401: {
2913
+ content: {
2914
+ 'application/json': components['schemas']['ErrorDetail'];
2915
+ };
2916
+ };
2917
+ /** 人物不存在 */
2918
+ 404: {
2919
+ content: {
2920
+ 'application/json': components['schemas']['ErrorDetail'];
2921
+ };
2922
+ };
2923
+ };
2924
+ };
2925
+ /** 获取用户信息 */
2926
+ getUserByName: {
2927
+ parameters: {
2928
+ path: {
2929
+ /** 设置了用户名之后无法使用 UID。 */
2930
+ username: components['parameters']['path_username'];
2931
+ };
2932
+ };
2933
+ responses: {
2934
+ /** Successful Response */
2935
+ 200: {
2936
+ content: {
2937
+ 'application/json': components['schemas']['User'];
2938
+ };
2939
+ };
2940
+ /** username 太长 */
2941
+ 400: {
2942
+ content: {
2943
+ 'application/json': components['schemas']['ErrorDetail'];
2944
+ };
2945
+ };
2946
+ /** 对应用户不存在 */
2947
+ 404: {
2948
+ content: {
2949
+ 'application/json': components['schemas']['ErrorDetail'];
2950
+ };
2951
+ };
2952
+ };
2953
+ };
2954
+ /** 获取用户头像,302 重定向至头像地址,设置了 username 之后无法使用 UID 查询。 */
2955
+ getUserAvatarByName: {
2956
+ parameters: {
2957
+ path: {
2958
+ /** 设置了用户名之后无法使用 UID。 */
2959
+ username: components['parameters']['path_username'];
2960
+ };
2961
+ query: {
2962
+ /** 枚举值 {small|large|medium} */
2963
+ type: string;
2964
+ };
2965
+ };
2966
+ responses: {
2967
+ /** Successful Response */
2968
+ 302: never;
2969
+ /** username 太长 */
2970
+ 400: {
2971
+ content: {
2972
+ 'application/json': components['schemas']['ErrorDetail'];
2973
+ };
2974
+ };
2975
+ /** 对应用户不存在 */
2976
+ 404: {
2977
+ content: {
2978
+ 'application/json': components['schemas']['ErrorDetail'];
2979
+ };
2980
+ };
2981
+ };
2982
+ };
2983
+ /** 返回当前 Access Token 对应的用户信息 */
2984
+ getMyself: {
2985
+ responses: {
2986
+ /** Successful Response */
2987
+ 200: {
2988
+ content: {
2989
+ 'application/json': components['schemas']['User'] & unknown & {
2990
+ /**
2991
+ * Format: email
2992
+ * @description 用户绑定的邮箱地址
2993
+ */
2994
+ email?: string;
2995
+ /**
2996
+ * Format: date-time
2997
+ * @description 用户注册时间。比如 2017-12-03T08:51:16+08:00
2998
+ */
2999
+ reg_time?: string;
3000
+ /** @description 用户设置的时区偏移,以小时为单位。比如 GMT+8(shanghai/beijing)为 8 */
3001
+ time_offset?: number;
3002
+ };
3003
+ };
3004
+ };
3005
+ /** unauthorized */
3006
+ 401: {
3007
+ content: {
3008
+ 'application/json': components['schemas']['ErrorDetail'];
3009
+ };
3010
+ };
3011
+ };
3012
+ };
3013
+ /** 获取对应用户的收藏,查看私有收藏需要access token。 */
3014
+ getUserCollectionsByUsername: {
3015
+ parameters: {
3016
+ path: {
3017
+ /** 设置了用户名之后无法使用 UID。 */
3018
+ username: components['parameters']['path_username'];
3019
+ };
3020
+ query: {
3021
+ /**
3022
+ * 条目类型,默认为全部
3023
+ *
3024
+ * 具体含义见 [SubjectType](#model-SubjectType)
3025
+ */
3026
+ subject_type?: components['schemas']['SubjectType'];
3027
+ /**
3028
+ * 收藏类型,默认为全部
3029
+ *
3030
+ * 具体含义见 [CollectionType](#model-CollectionType)
3031
+ */
3032
+ type?: components['schemas']['SubjectCollectionType'];
3033
+ /** 分页参数 */
3034
+ limit?: components['parameters']['default_query_limit'];
3035
+ /** 分页参数 */
3036
+ offset?: components['parameters']['default_query_offset'];
3037
+ };
3038
+ };
3039
+ responses: {
3040
+ /** Successful Response */
3041
+ 200: {
3042
+ content: {
3043
+ 'application/json': components['schemas']['Paged_UserCollection'];
3044
+ };
3045
+ };
3046
+ /** Validation Error */
3047
+ 400: {
3048
+ content: {
3049
+ 'application/json': components['schemas']['ErrorDetail'];
3050
+ };
3051
+ };
3052
+ /** 用户不存在 */
3053
+ 404: {
3054
+ content: {
3055
+ 'application/json': components['schemas']['ErrorDetail'];
3056
+ };
3057
+ };
3058
+ };
3059
+ };
3060
+ /** 获取对应用户的收藏,查看私有收藏需要 access token */
3061
+ getUserCollection: {
3062
+ parameters: {
3063
+ path: {
3064
+ /** 设置了用户名之后无法使用 UID。 */
3065
+ username: components['parameters']['path_username'];
3066
+ /** 条目 ID */
3067
+ subject_id: components['parameters']['path_subject_id'];
3068
+ };
3069
+ };
3070
+ responses: {
3071
+ /** Successful Response */
3072
+ 200: {
3073
+ content: {
3074
+ 'application/json': components['schemas']['UserSubjectCollection'];
3075
+ };
3076
+ };
3077
+ /** Validation Error */
3078
+ 400: {
3079
+ content: {
3080
+ 'application/json': components['schemas']['ErrorDetail'];
3081
+ };
3082
+ };
3083
+ /** 用户不存在或者条目未收藏,或者条目为私有收藏 */
3084
+ 404: {
3085
+ content: {
3086
+ 'application/json': components['schemas']['ErrorDetail'];
3087
+ };
3088
+ };
3089
+ };
3090
+ };
3091
+ /**
3092
+ * 修改条目收藏状态, 如果不存在则创建,如果存在则修改
3093
+ *
3094
+ * 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
3095
+ *
3096
+ * 方法的所有请求体字段均可选
3097
+ */
3098
+ postUserCollection: {
3099
+ parameters: {
3100
+ path: {
3101
+ /** 条目 ID */
3102
+ subject_id: components['parameters']['path_subject_id'];
3103
+ };
3104
+ };
3105
+ responses: {
3106
+ /** Successful Response */
3107
+ 204: never;
3108
+ /** Validation Error */
3109
+ 400: {
3110
+ content: {
3111
+ 'application/json': components['schemas']['ErrorDetail'];
3112
+ };
3113
+ };
3114
+ /** Unauthorized */
3115
+ 401: {
3116
+ content: {
3117
+ 'application/json': components['schemas']['ErrorDetail'];
3118
+ };
3119
+ };
3120
+ /** 用户不存在 */
3121
+ 404: {
3122
+ content: {
3123
+ 'application/json': components['schemas']['ErrorDetail'];
3124
+ };
3125
+ };
3126
+ };
3127
+ requestBody: {
3128
+ content: {
3129
+ 'application/json': components['schemas']['UserSubjectCollectionModifyPayload'];
3130
+ };
3131
+ };
3132
+ };
3133
+ /**
3134
+ * 修改条目收藏状态
3135
+ *
3136
+ * 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。
3137
+ *
3138
+ * PATCH 方法的所有请求体字段均可选
3139
+ */
3140
+ patchUserCollection: {
3141
+ parameters: {
3142
+ path: {
3143
+ /** 条目 ID */
3144
+ subject_id: components['parameters']['path_subject_id'];
3145
+ };
3146
+ };
3147
+ responses: {
3148
+ /** Successful Response */
3149
+ 204: never;
3150
+ /** Validation Error */
3151
+ 400: {
3152
+ content: {
3153
+ 'application/json': components['schemas']['ErrorDetail'];
3154
+ };
3155
+ };
3156
+ /** Unauthorized */
3157
+ 401: {
3158
+ content: {
3159
+ 'application/json': components['schemas']['ErrorDetail'];
3160
+ };
3161
+ };
3162
+ /** 用户不存在或者条目未收藏 */
3163
+ 404: {
3164
+ content: {
3165
+ 'application/json': components['schemas']['ErrorDetail'];
3166
+ };
3167
+ };
3168
+ };
3169
+ requestBody: {
3170
+ content: {
3171
+ 'application/json': components['schemas']['UserSubjectCollectionModifyPayload'];
3172
+ };
3173
+ };
3174
+ };
3175
+ getUserSubjectEpisodeCollection: {
3176
+ parameters: {
3177
+ path: {
3178
+ /** 条目 ID */
3179
+ subject_id: components['parameters']['path_subject_id'];
3180
+ };
3181
+ query: {
3182
+ /** 分页参数 */
3183
+ offset?: components['parameters']['default_query_offset'];
3184
+ /** 分页参数 */
3185
+ limit?: number;
3186
+ /** 章节类型,不传则不按照章节进行筛选 */
3187
+ episode_type?: components['schemas']['EpType'];
3188
+ };
3189
+ };
3190
+ responses: {
3191
+ /** Successful Response */
3192
+ 200: {
3193
+ content: {
3194
+ 'application/json': components['schemas']['Page'] & {
3195
+ data?: components['schemas']['UserEpisodeCollection'][];
3196
+ };
3197
+ };
3198
+ };
3199
+ /** Bad Request */
3200
+ 400: {
3201
+ content: {
3202
+ 'application/json': components['schemas']['ErrorDetail'];
3203
+ };
3204
+ };
3205
+ /** not authorized */
3206
+ 401: {
3207
+ content: {
3208
+ 'application/json': components['schemas']['ErrorDetail'];
3209
+ };
3210
+ };
3211
+ /** 条目不存在 */
3212
+ 404: {
3213
+ content: {
3214
+ 'application/json': components['schemas']['ErrorDetail'];
3215
+ };
3216
+ };
3217
+ };
3218
+ };
3219
+ /** 同时会重新计算条目的完成度 */
3220
+ patchUserSubjectEpisodeCollection: {
3221
+ parameters: {
3222
+ path: {
3223
+ /** 条目 ID */
3224
+ subject_id: components['parameters']['path_subject_id'];
3225
+ };
3226
+ };
3227
+ responses: {
3228
+ /** Successful Response */
3229
+ 204: never;
3230
+ /** Bad Request */
3231
+ 400: {
3232
+ content: {
3233
+ 'application/json': components['schemas']['ErrorDetail'];
3234
+ };
3235
+ };
3236
+ /** not authorized */
3237
+ 401: {
3238
+ content: {
3239
+ 'application/json': components['schemas']['ErrorDetail'];
3240
+ };
3241
+ };
3242
+ /** 条目不存在 */
3243
+ 404: {
3244
+ content: {
3245
+ 'application/json': components['schemas']['ErrorDetail'];
3246
+ };
3247
+ };
3248
+ };
3249
+ requestBody: {
3250
+ content: {
3251
+ 'application/json': {
3252
+ /**
3253
+ * @example [
3254
+ * 1,
3255
+ * 2,
3256
+ * 8
3257
+ * ]
3258
+ */
3259
+ episode_id: number[];
3260
+ type: components['schemas']['EpisodeCollectionType'];
3261
+ };
3262
+ };
3263
+ };
3264
+ };
3265
+ getUserEpisodeCollection: {
3266
+ parameters: {
3267
+ path: {
3268
+ /** 章节 ID */
3269
+ episode_id: components['parameters']['path_episode_id'];
3270
+ };
3271
+ };
3272
+ responses: {
3273
+ /** Successful Response */
3274
+ 200: {
3275
+ content: {
3276
+ 'application/json': components['schemas']['UserEpisodeCollection'];
3277
+ };
3278
+ };
3279
+ /** episode ID not valid */
3280
+ 400: {
3281
+ content: {
3282
+ 'application/json': components['schemas']['ErrorDetail'];
3283
+ };
3284
+ };
3285
+ /** not authorized */
3286
+ 401: {
3287
+ content: {
3288
+ 'application/json': components['schemas']['ErrorDetail'];
3289
+ };
3290
+ };
3291
+ /** 条目或者章节不存在 */
3292
+ 404: {
3293
+ content: {
3294
+ 'application/json': components['schemas']['ErrorDetail'];
3295
+ };
3296
+ };
3297
+ };
3298
+ };
3299
+ putUserEpisodeCollection: {
3300
+ parameters: {
3301
+ path: {
3302
+ /** 章节 ID */
3303
+ episode_id: components['parameters']['path_episode_id'];
3304
+ };
3305
+ };
3306
+ responses: {
3307
+ /** Successful Response */
3308
+ 204: never;
3309
+ /** episode ID not valid or subject not collected */
3310
+ 400: {
3311
+ content: {
3312
+ 'application/json': components['schemas']['ErrorDetail'];
3313
+ };
3314
+ };
3315
+ /** not authorized */
3316
+ 401: {
3317
+ content: {
3318
+ 'application/json': components['schemas']['ErrorDetail'];
3319
+ };
3320
+ };
3321
+ /** 条目或者章节不存在 */
3322
+ 404: {
3323
+ content: {
3324
+ 'application/json': components['schemas']['ErrorDetail'];
3325
+ };
3326
+ };
3327
+ };
3328
+ requestBody: {
3329
+ content: {
3330
+ 'application/json': {
3331
+ type: components['schemas']['EpisodeCollectionType'];
3332
+ };
3333
+ };
3334
+ };
3335
+ };
3336
+ getUserCharacterCollections: {
3337
+ parameters: {
3338
+ path: {
3339
+ /** 设置了用户名之后无法使用 UID。 */
3340
+ username: components['parameters']['path_username'];
3341
+ };
3342
+ };
3343
+ responses: {
3344
+ /** Successful Response */
3345
+ 200: {
3346
+ content: {
3347
+ 'application/json': components['schemas']['Paged_UserCharacterCollection'];
3348
+ };
3349
+ };
3350
+ /** 用户不存在 */
3351
+ 404: {
3352
+ content: {
3353
+ 'application/json': components['schemas']['ErrorDetail'];
3354
+ };
3355
+ };
3356
+ };
3357
+ };
3358
+ getUserCharacterCollection: {
3359
+ parameters: {
3360
+ path: {
3361
+ /** 设置了用户名之后无法使用 UID。 */
3362
+ username: components['parameters']['path_username'];
3363
+ /** 角色 ID */
3364
+ character_id: components['parameters']['path_character_id'];
3365
+ };
3366
+ };
3367
+ responses: {
3368
+ /** Successful Response */
3369
+ 200: {
3370
+ content: {
3371
+ 'application/json': components['schemas']['UserCharacterCollection'];
3372
+ };
3373
+ };
3374
+ /** character ID not valid */
3375
+ 400: {
3376
+ content: {
3377
+ 'application/json': components['schemas']['ErrorDetail'];
3378
+ };
3379
+ };
3380
+ /** 用户或角色不存在 */
3381
+ 404: {
3382
+ content: {
3383
+ 'application/json': components['schemas']['ErrorDetail'];
3384
+ };
3385
+ };
3386
+ };
3387
+ };
3388
+ getUserPersonCollections: {
3389
+ parameters: {
3390
+ path: {
3391
+ /** 设置了用户名之后无法使用 UID。 */
3392
+ username: components['parameters']['path_username'];
3393
+ };
3394
+ };
3395
+ responses: {
3396
+ /** Successful Response */
3397
+ 200: {
3398
+ content: {
3399
+ 'application/json': components['schemas']['Paged_UserPersonCollection'];
3400
+ };
3401
+ };
3402
+ /** 用户不存在 */
3403
+ 404: {
3404
+ content: {
3405
+ 'application/json': components['schemas']['ErrorDetail'];
3406
+ };
3407
+ };
3408
+ };
3409
+ };
3410
+ getUserPersonCollection: {
3411
+ parameters: {
3412
+ path: {
3413
+ /** 设置了用户名之后无法使用 UID。 */
3414
+ username: components['parameters']['path_username'];
3415
+ /** 人物 ID */
3416
+ person_id: components['parameters']['path_person_id'];
3417
+ };
3418
+ };
3419
+ responses: {
3420
+ /** Successful Response */
3421
+ 200: {
3422
+ content: {
3423
+ 'application/json': components['schemas']['UserPersonCollection'];
3424
+ };
3425
+ };
3426
+ /** person ID not valid */
3427
+ 400: {
3428
+ content: {
3429
+ 'application/json': components['schemas']['ErrorDetail'];
3430
+ };
3431
+ };
3432
+ /** 用户或人物不存在 */
3433
+ 404: {
3434
+ content: {
3435
+ 'application/json': components['schemas']['ErrorDetail'];
3436
+ };
3437
+ };
3438
+ };
3439
+ };
3440
+ getPersonRevisions: {
3441
+ parameters: {
3442
+ query: {
3443
+ /** 角色 ID */
3444
+ person_id: number;
3445
+ /** 分页参数 */
3446
+ limit?: components['parameters']['default_query_limit'];
3447
+ /** 分页参数 */
3448
+ offset?: components['parameters']['default_query_offset'];
3449
+ };
3450
+ };
3451
+ responses: {
3452
+ /** Successful Response */
3453
+ 200: {
3454
+ content: {
3455
+ 'application/json': components['schemas']['Paged_Revision'];
3456
+ };
3457
+ };
3458
+ /** Validation Error */
3459
+ 400: {
3460
+ content: {
3461
+ 'application/json': components['schemas']['ErrorDetail'];
3462
+ };
3463
+ };
3464
+ };
3465
+ };
3466
+ getPersonRevisionByRevisionId: {
3467
+ parameters: {
3468
+ path: {
3469
+ /** 历史版本 ID */
3470
+ revision_id: number;
3471
+ };
3472
+ };
3473
+ responses: {
3474
+ /** Successful Response */
3475
+ 200: {
3476
+ content: {
3477
+ 'application/json': components['schemas']['PersonRevision'];
3478
+ };
3479
+ };
3480
+ /** Validation Error */
3481
+ 400: {
3482
+ content: {
3483
+ 'application/json': components['schemas']['ErrorDetail'];
3484
+ };
3485
+ };
3486
+ /** Not Found */
3487
+ 404: {
3488
+ content: {
3489
+ 'application/json': components['schemas']['ErrorDetail'];
3490
+ };
3491
+ };
3492
+ };
3493
+ };
3494
+ getCharacterRevisions: {
3495
+ parameters: {
3496
+ query: {
3497
+ /** 角色 ID */
3498
+ character_id: number;
3499
+ /** 分页参数 */
3500
+ limit?: components['parameters']['default_query_limit'];
3501
+ /** 分页参数 */
3502
+ offset?: components['parameters']['default_query_offset'];
3503
+ };
3504
+ };
3505
+ responses: {
3506
+ /** Successful Response */
3507
+ 200: {
3508
+ content: {
3509
+ 'application/json': components['schemas']['Paged_Revision'];
3510
+ };
3511
+ };
3512
+ /** Validation Error */
3513
+ 400: {
3514
+ content: {
3515
+ 'application/json': components['schemas']['ErrorDetail'];
3516
+ };
3517
+ };
3518
+ };
3519
+ };
3520
+ getCharacterRevisionByRevisionId: {
3521
+ parameters: {
3522
+ path: {
3523
+ /** 版本 ID */
3524
+ revision_id: components['parameters']['path_revision_id'];
3525
+ };
3526
+ };
3527
+ responses: {
3528
+ /** Successful Response */
3529
+ 200: {
3530
+ content: {
3531
+ 'application/json': components['schemas']['CharacterRevision'];
3532
+ };
3533
+ };
3534
+ /** Validation Error */
3535
+ 400: {
3536
+ content: {
3537
+ 'application/json': components['schemas']['ErrorDetail'];
3538
+ };
3539
+ };
3540
+ /** Not Found */
3541
+ 404: {
3542
+ content: {
3543
+ 'application/json': components['schemas']['ErrorDetail'];
3544
+ };
3545
+ };
3546
+ };
3547
+ };
3548
+ getSubjectRevisions: {
3549
+ parameters: {
3550
+ query: {
3551
+ /** 条目 ID */
3552
+ subject_id: number;
3553
+ /** 分页参数 */
3554
+ limit?: components['parameters']['default_query_limit'];
3555
+ /** 分页参数 */
3556
+ offset?: components['parameters']['default_query_offset'];
3557
+ };
3558
+ };
3559
+ responses: {
3560
+ /** Successful Response */
3561
+ 200: {
3562
+ content: {
3563
+ 'application/json': components['schemas']['Paged_Revision'];
3564
+ };
3565
+ };
3566
+ /** Validation Error */
3567
+ 400: {
3568
+ content: {
3569
+ 'application/json': components['schemas']['ErrorDetail'];
3570
+ };
3571
+ };
3572
+ };
3573
+ };
3574
+ getSubjectRevisionByRevisionId: {
3575
+ parameters: {
3576
+ path: {
3577
+ /** 版本 ID */
3578
+ revision_id: components['parameters']['path_revision_id'];
3579
+ };
3580
+ };
3581
+ responses: {
3582
+ /** Successful Response */
3583
+ 200: {
3584
+ content: {
3585
+ 'application/json': components['schemas']['SubjectRevision'];
3586
+ };
3587
+ };
3588
+ /** Validation Error */
3589
+ 400: {
3590
+ content: {
3591
+ 'application/json': components['schemas']['ErrorDetail'];
3592
+ };
3593
+ };
3594
+ /** Not Found */
3595
+ 404: {
3596
+ content: {
3597
+ 'application/json': components['schemas']['ErrorDetail'];
3598
+ };
3599
+ };
3600
+ };
3601
+ };
3602
+ getEpisodeRevisions: {
3603
+ parameters: {
3604
+ query: {
3605
+ /** 章节 ID */
3606
+ episode_id: number;
3607
+ /** 分页参数 */
3608
+ limit?: components['parameters']['default_query_limit'];
3609
+ /** 分页参数 */
3610
+ offset?: components['parameters']['default_query_offset'];
3611
+ };
3612
+ };
3613
+ responses: {
3614
+ /** Successful Response */
3615
+ 200: {
3616
+ content: {
3617
+ 'application/json': components['schemas']['Paged_Revision'];
3618
+ };
3619
+ };
3620
+ /** Validation Error */
3621
+ 400: {
3622
+ content: {
3623
+ 'application/json': components['schemas']['ErrorDetail'];
3624
+ };
3625
+ };
3626
+ };
3627
+ };
3628
+ getEpisodeRevisionByRevisionId: {
3629
+ parameters: {
3630
+ path: {
3631
+ /** 版本 ID */
3632
+ revision_id: components['parameters']['path_revision_id'];
3633
+ };
3634
+ };
3635
+ responses: {
3636
+ /** Successful Response */
3637
+ 200: {
3638
+ content: {
3639
+ 'application/json': components['schemas']['DetailedRevision'];
3640
+ };
3641
+ };
3642
+ /** Validation Error */
3643
+ 400: {
3644
+ content: {
3645
+ 'application/json': components['schemas']['ErrorDetail'];
3646
+ };
3647
+ };
3648
+ /** Not Found */
3649
+ 404: {
3650
+ content: {
3651
+ 'application/json': components['schemas']['ErrorDetail'];
3652
+ };
3653
+ };
3654
+ };
3655
+ };
3656
+ newIndex: {
3657
+ responses: {
3658
+ /** Successful Response */
3659
+ 200: {
3660
+ content: {
3661
+ 'application/json': components['schemas']['Index'];
3662
+ };
3663
+ };
3664
+ /** Unauthorized */
3665
+ 401: {
3666
+ content: {
3667
+ 'application/json': components['schemas']['ErrorDetail'];
3668
+ };
3669
+ };
3670
+ };
3671
+ };
3672
+ getIndexById: {
3673
+ parameters: {
3674
+ path: {
3675
+ /** 目录 ID */
3676
+ index_id: components['parameters']['path_index_id'];
3677
+ };
3678
+ };
3679
+ responses: {
3680
+ /** Successful Response */
3681
+ 200: {
3682
+ content: {
3683
+ 'application/json': components['schemas']['Index'];
3684
+ };
3685
+ };
3686
+ 404: components['responses']['404'];
3687
+ };
3688
+ };
3689
+ editIndexById: {
3690
+ parameters: {
3691
+ path: {
3692
+ /** 目录 ID */
3693
+ index_id: components['parameters']['path_index_id'];
3694
+ };
3695
+ };
3696
+ responses: {
3697
+ /** Successful Response */
3698
+ 200: {
3699
+ content: {
3700
+ 'application/json': components['schemas']['Index'];
3701
+ };
3702
+ };
3703
+ 400: components['responses']['400'];
3704
+ 401: components['responses']['401'];
3705
+ 404: components['responses']['404'];
3706
+ };
3707
+ requestBody: {
3708
+ content: {
3709
+ 'application/json': components['schemas']['IndexBasicInfo'];
3710
+ };
3711
+ };
3712
+ };
3713
+ getIndexSubjectsByIndexId: {
3714
+ parameters: {
3715
+ path: {
3716
+ /** 目录 ID */
3717
+ index_id: components['parameters']['path_index_id'];
3718
+ };
3719
+ query: {
3720
+ /** 条目类型 */
3721
+ type?: components['schemas']['SubjectType'];
3722
+ /** 分页参数 */
3723
+ limit?: components['parameters']['default_query_limit'];
3724
+ /** 分页参数 */
3725
+ offset?: components['parameters']['default_query_offset'];
3726
+ };
3727
+ };
3728
+ responses: {
3729
+ /** Successful Response */
3730
+ 200: unknown;
3731
+ 400: components['responses']['400'];
3732
+ 404: components['responses']['404'];
3733
+ };
3734
+ };
3735
+ addSubjectToIndexByIndexId: {
3736
+ parameters: {
3737
+ path: {
3738
+ /** 目录 ID */
3739
+ index_id: components['parameters']['path_index_id'];
3740
+ };
3741
+ };
3742
+ responses: {
3743
+ 200: components['responses']['200-no-content'];
3744
+ 400: components['responses']['401'];
3745
+ 401: components['responses']['400'];
3746
+ 404: components['responses']['404'];
3747
+ };
3748
+ requestBody: {
3749
+ content: {
3750
+ 'application/json': components['schemas']['IndexSubjectAddInfo'];
3751
+ };
3752
+ };
3753
+ };
3754
+ /** 如果条目不存在于目录,会创建该条目 */
3755
+ editIndexSubjectsByIndexIdAndSubjectID: {
3756
+ parameters: {
3757
+ path: {
3758
+ /** 目录 ID */
3759
+ index_id: components['parameters']['path_index_id'];
3760
+ /** 条目 ID */
3761
+ subject_id: components['parameters']['path_subject_id'];
3762
+ };
3763
+ };
3764
+ responses: {
3765
+ 200: components['responses']['200-no-content'];
3766
+ 400: components['responses']['400'];
3767
+ 401: components['responses']['401'];
3768
+ 404: components['responses']['404'];
3769
+ };
3770
+ requestBody: {
3771
+ content: {
3772
+ 'application/json': components['schemas']['IndexSubjectEditInfo'];
3773
+ };
3774
+ };
3775
+ };
3776
+ delelteSubjectFromIndexByIndexIdAndSubjectID: {
3777
+ parameters: {
3778
+ path: {
3779
+ /** 目录 ID */
3780
+ index_id: components['parameters']['path_index_id'];
3781
+ /** 条目 ID */
3782
+ subject_id: components['parameters']['path_subject_id'];
3783
+ };
3784
+ };
3785
+ responses: {
3786
+ 200: components['responses']['200-no-content'];
3787
+ 401: components['responses']['401'];
3788
+ 404: components['responses']['404'];
3789
+ };
3790
+ };
3791
+ /** 为当前用户收藏一条目录 */
3792
+ collectIndexByIndexIdAndUserId: {
3793
+ parameters: {
3794
+ path: {
3795
+ /** 目录 ID */
3796
+ index_id: components['parameters']['path_index_id'];
3797
+ };
3798
+ };
3799
+ responses: {
3800
+ 200: components['responses']['200-no-content'];
3801
+ 401: components['responses']['401'];
3802
+ 404: components['responses']['404'];
3803
+ 500: components['responses']['500'];
3804
+ };
3805
+ };
3806
+ /** 为当前用户取消收藏一条目录 */
3807
+ uncollectIndexByIndexIdAndUserId: {
3808
+ parameters: {
3809
+ path: {
3810
+ /** 目录 ID */
3811
+ index_id: components['parameters']['path_index_id'];
3812
+ };
3813
+ };
3814
+ responses: {
3815
+ 200: components['responses']['200-no-content'];
3816
+ 401: components['responses']['401'];
3817
+ 404: components['responses']['404'];
3818
+ 500: components['responses']['500'];
3819
+ };
3820
+ };
3821
+ }
3822
+ //#endregion
3823
+ //#region ../bgmc/src/types/type.d.ts
3824
+ /** 条目 */
3825
+ declare namespace BGMSubject {
3826
+ type Calendar = paths['/calendar']['get']['responses']['200']['content']['application/json'];
3827
+ type GetSubjects = paths['/v0/subjects']['get']['responses']['200']['content']['application/json'];
3828
+ /** 实验性 API, 随时可能发生改动 */
3829
+ type Search = paths['/v0/search/subjects']['post']['responses']['200']['content']['application/json'];
3830
+ type Information = paths['/v0/subjects/{subject_id}']['get']['responses']['200']['content']['application/json'];
3831
+ type Persons = paths['/v0/subjects/{subject_id}/persons']['get']['responses']['200']['content']['application/json'];
3832
+ type Characters = paths['/v0/subjects/{subject_id}/characters']['get']['responses']['200']['content']['application/json'];
3833
+ type RelatedSubjects = paths['/v0/subjects/{subject_id}/subjects']['get']['responses']['200']['content']['application/json'];
3834
+ }
3835
+ //#endregion
3836
+ //#region ../bgmc/src/client.d.ts
3837
+ type SubjectInformation = BGMSubject.Information;
3838
+ //#endregion
3839
+ //#region src/utils/title.d.ts
3840
+ declare function normalizeTitle(t: string): string;
3841
+ declare function getSubjectDisplayName(bgm?: Pick<SubjectInformation, 'name' | 'name_cn'>): any;
3842
+ declare function getSubjectAlias(subject: Pick<SubjectInformation, 'infobox' | 'name' | 'name_cn'>): string[];
3843
+ declare function decodeSubjectTitle(name: string): string;
3844
+ //#endregion
3845
+ //#region src/utils/summary.d.ts
24
3846
  declare function normalizeSummary(text: string): string;
25
-
26
- export { type NormalizeTagsOptions, type Tag, normalizeSummary, normalizeTags, trimSeason };
3847
+ //#endregion
3848
+ export { BasicSubject, FullSubject, NormalizeTagsOptions, SubjectImage, SubjectRating, SubjectSearch, Tag, decodeSubjectTitle, getSubjectAlias, getSubjectDisplayName, normalizeSummary, normalizeTags, normalizeTitle, trimSeason };