narou 0.8.1 → 0.9.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/chunk-3L6BVCEQ.js +3065 -0
- package/dist/chunk-3L6BVCEQ.js.map +1 -0
- package/dist/chunk-5M7JXPW3.js +1 -0
- package/dist/chunk-5M7JXPW3.js.map +1 -0
- package/dist/chunk-AUZ3RYOM.js +50 -0
- package/dist/chunk-AUZ3RYOM.js.map +1 -0
- package/dist/chunk-ELL5TDE4.js +94 -0
- package/dist/chunk-ELL5TDE4.js.map +1 -0
- package/dist/chunk-H4TVIA56.js +83 -0
- package/dist/chunk-H4TVIA56.js.map +1 -0
- package/dist/chunk-JMTNQTNC.js +24 -0
- package/dist/chunk-JMTNQTNC.js.map +1 -0
- package/dist/chunk-M2JOQXK7.js +15 -0
- package/dist/chunk-M2JOQXK7.js.map +1 -0
- package/dist/chunk-M5TG4H6A.js +1 -0
- package/dist/chunk-M5TG4H6A.js.map +1 -0
- package/dist/chunk-PH7RAXIZ.js +397 -0
- package/dist/chunk-PH7RAXIZ.js.map +1 -0
- package/dist/chunk-SKRVT2TT.js +44 -0
- package/dist/chunk-SKRVT2TT.js.map +1 -0
- package/dist/chunk-SUVA6EFY.js +26 -0
- package/dist/chunk-SUVA6EFY.js.map +1 -0
- package/dist/chunk-TNDGN3EF.js +39 -0
- package/dist/chunk-TNDGN3EF.js.map +1 -0
- package/dist/chunk-TZ3HVU6L.js +72 -0
- package/dist/chunk-TZ3HVU6L.js.map +1 -0
- package/dist/chunk-VHDE4QIZ.js +37 -0
- package/dist/chunk-VHDE4QIZ.js.map +1 -0
- package/dist/chunk-VHXJSFYZ.js +372 -0
- package/dist/chunk-VHXJSFYZ.js.map +1 -0
- package/dist/index.browser.cjs +1222 -0
- package/dist/index.browser.cjs.map +1 -0
- package/dist/index.browser.d.cts +40 -0
- package/dist/index.browser.d.ts +20 -16
- package/dist/index.browser.js +116 -71
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +4306 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.common.cjs +1033 -0
- package/dist/index.common.cjs.map +1 -0
- package/dist/index.common.d.cts +6 -0
- package/dist/index.common.d.ts +6 -15
- package/dist/index.common.js +73 -33
- package/dist/index.common.js.map +1 -1
- package/dist/index.d.cts +47 -0
- package/dist/index.d.ts +21 -17
- package/dist/index.js +121 -79
- package/dist/index.js.map +1 -1
- package/dist/narou-61329eea.d.ts +298 -0
- package/dist/narou-98ededc8.d.ts +298 -0
- package/dist/narou-fetch.cjs +3191 -0
- package/dist/narou-fetch.cjs.map +1 -0
- package/dist/narou-fetch.d.cts +16 -0
- package/dist/narou-fetch.d.ts +10 -7
- package/dist/narou-fetch.js +10 -45
- package/dist/narou-fetch.js.map +1 -1
- package/dist/narou-jsonp.cjs +159 -0
- package/dist/narou-jsonp.cjs.map +1 -0
- package/dist/narou-jsonp.d.cts +13 -0
- package/dist/narou-jsonp.d.ts +8 -5
- package/dist/narou-jsonp.js +10 -23
- package/dist/narou-jsonp.js.map +1 -1
- package/dist/narou-ranking-results.cjs +19 -0
- package/dist/narou-ranking-results.cjs.map +1 -0
- package/dist/narou-ranking-results.d.cts +4 -0
- package/dist/narou-ranking-results.d.ts +4 -10
- package/dist/narou-ranking-results.js +1 -2
- package/dist/narou-ranking-results.js.map +1 -1
- package/dist/narou-search-results-6727b1ce.d.ts +716 -0
- package/dist/narou-search-results-b7c10db0.d.ts +716 -0
- package/dist/narou-search-results.cjs +62 -0
- package/dist/narou-search-results.cjs.map +1 -0
- package/dist/narou-search-results.d.cts +2 -0
- package/dist/narou-search-results.d.ts +2 -131
- package/dist/narou-search-results.js +10 -61
- package/dist/narou-search-results.js.map +1 -1
- package/dist/narou.cjs +109 -0
- package/dist/narou.cjs.map +1 -0
- package/dist/narou.d.cts +4 -0
- package/dist/narou.d.ts +4 -26
- package/dist/narou.js +8 -29
- package/dist/narou.js.map +1 -1
- package/dist/params.cjs +437 -0
- package/dist/params.cjs.map +1 -0
- package/dist/params.d.cts +2 -0
- package/dist/params.d.ts +2 -324
- package/dist/params.js +38 -245
- package/dist/params.js.map +1 -1
- package/dist/ranking-history.cjs +39 -0
- package/dist/ranking-history.cjs.map +1 -0
- package/dist/ranking-history.d.cts +17 -0
- package/dist/ranking-history.d.ts +8 -5
- package/dist/ranking-history.js +7 -13
- package/dist/ranking-history.js.map +1 -1
- package/dist/ranking.cjs +660 -0
- package/dist/ranking.cjs.map +1 -0
- package/dist/ranking.d.cts +47 -0
- package/dist/ranking.d.ts +8 -7
- package/dist/ranking.js +9 -86
- package/dist/ranking.js.map +1 -1
- package/dist/search-builder-r18.cjs +474 -0
- package/dist/search-builder-r18.cjs.map +1 -0
- package/dist/search-builder-r18.d.cts +32 -0
- package/dist/search-builder-r18.d.ts +9 -6
- package/dist/search-builder-r18.js +9 -44
- package/dist/search-builder-r18.js.map +1 -1
- package/dist/search-builder.cjs +511 -0
- package/dist/search-builder.cjs.map +1 -0
- package/dist/search-builder.d.cts +4 -0
- package/dist/search-builder.d.ts +4 -220
- package/dist/search-builder.js +12 -380
- package/dist/search-builder.js.map +1 -1
- package/dist/user-search.cjs +301 -0
- package/dist/user-search.cjs.map +1 -0
- package/{dist.esm/user-search.js → dist/user-search.d.cts} +18 -46
- package/dist/user-search.d.ts +8 -5
- package/dist/user-search.js +9 -93
- package/dist/user-search.js.map +1 -1
- package/dist/util/jsonp.cjs +63 -0
- package/dist/util/jsonp.cjs.map +1 -0
- package/dist/util/jsonp.d.cts +13 -0
- package/dist/util/jsonp.d.ts +4 -8
- package/dist/util/jsonp.js +7 -45
- package/dist/util/jsonp.js.map +1 -1
- package/dist/util/type.cjs +19 -0
- package/dist/util/type.cjs.map +1 -0
- package/dist/util/type.d.cts +4 -0
- package/dist/util/type.d.ts +4 -4
- package/dist/util/type.js +0 -2
- package/dist/util/type.js.map +1 -1
- package/dist/util/unzipp.cjs +48 -0
- package/dist/util/unzipp.cjs.map +1 -0
- package/dist/util/unzipp.d.cts +3 -0
- package/dist/util/unzipp.d.ts +3 -4
- package/dist/util/unzipp.js +7 -11
- package/dist/util/unzipp.js.map +1 -1
- package/package.json +38 -36
- package/src/narou-fetch.ts +6 -16
- package/src/narou-jsonp.ts +0 -2
- package/src/narou-ranking-results.ts +10 -0
- package/src/narou-search-results.ts +118 -63
- package/src/narou.ts +42 -3
- package/src/params.ts +220 -61
- package/src/util/unzipp.ts +13 -3
- package/dist/index.browser.d.ts.map +0 -1
- package/dist/index.common.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/narou-fetch.d.ts.map +0 -1
- package/dist/narou-jsonp.d.ts.map +0 -1
- package/dist/narou-ranking-results.d.ts.map +0 -1
- package/dist/narou-search-results.d.ts.map +0 -1
- package/dist/narou.d.ts.map +0 -1
- package/dist/params.d.ts.map +0 -1
- package/dist/ranking-history.d.ts.map +0 -1
- package/dist/ranking.d.ts.map +0 -1
- package/dist/search-builder-r18.d.ts.map +0 -1
- package/dist/search-builder.d.ts.map +0 -1
- package/dist/user-search.d.ts.map +0 -1
- package/dist/util/jsonp.d.ts.map +0 -1
- package/dist/util/type.d.ts.map +0 -1
- package/dist/util/unzipp.d.ts.map +0 -1
- package/dist.esm/index.browser.js +0 -86
- package/dist.esm/index.browser.js.map +0 -1
- package/dist.esm/index.common.js +0 -38
- package/dist.esm/index.common.js.map +0 -1
- package/dist.esm/index.js +0 -94
- package/dist.esm/index.js.map +0 -1
- package/dist.esm/narou-fetch.js +0 -49
- package/dist.esm/narou-fetch.js.map +0 -1
- package/dist.esm/narou-jsonp.js +0 -27
- package/dist.esm/narou-jsonp.js.map +0 -1
- package/dist.esm/narou-ranking-results.js +0 -3
- package/dist.esm/narou-ranking-results.js.map +0 -1
- package/dist.esm/narou-search-results.js +0 -63
- package/dist.esm/narou-search-results.js.map +0 -1
- package/dist.esm/narou.js +0 -33
- package/dist.esm/narou.js.map +0 -1
- package/dist.esm/params.js +0 -247
- package/dist.esm/params.js.map +0 -1
- package/dist.esm/ranking-history.js +0 -14
- package/dist.esm/ranking-history.js.map +0 -1
- package/dist.esm/ranking.js +0 -90
- package/dist.esm/ranking.js.map +0 -1
- package/dist.esm/search-builder-r18.js +0 -45
- package/dist.esm/search-builder-r18.js.map +0 -1
- package/dist.esm/search-builder.js +0 -381
- package/dist.esm/search-builder.js.map +0 -1
- package/dist.esm/user-search.js.map +0 -1
- package/dist.esm/util/jsonp.js +0 -46
- package/dist.esm/util/jsonp.js.map +0 -1
- package/dist.esm/util/type.js +0 -3
- package/dist.esm/util/type.js.map +0 -1
- package/dist.esm/util/unzipp.js +0 -12
- package/dist.esm/util/unzipp.js.map +0 -1
|
@@ -12,14 +12,31 @@ import {
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* なろう小説API検索結果
|
|
15
|
-
* @class NarouSearchResults
|
|
16
15
|
*/
|
|
17
16
|
export default class NarouSearchResults<T, TKey extends keyof T> {
|
|
17
|
+
/**
|
|
18
|
+
* 検索結果数
|
|
19
|
+
*/
|
|
18
20
|
allcount: number;
|
|
21
|
+
/**
|
|
22
|
+
* 結果表示上限数
|
|
23
|
+
*/
|
|
19
24
|
limit: number;
|
|
25
|
+
/**
|
|
26
|
+
* 結果表示開始数
|
|
27
|
+
*/
|
|
20
28
|
start: number;
|
|
29
|
+
/**
|
|
30
|
+
* 結果表示の現在ページ(=start/limit)
|
|
31
|
+
*/
|
|
21
32
|
page: number;
|
|
33
|
+
/**
|
|
34
|
+
* 今回取得できた検索結果の数
|
|
35
|
+
*/
|
|
22
36
|
length: number;
|
|
37
|
+
/**
|
|
38
|
+
* 検索結果
|
|
39
|
+
*/
|
|
23
40
|
values: readonly Pick<T, TKey>[];
|
|
24
41
|
|
|
25
42
|
/**
|
|
@@ -34,138 +51,176 @@ export default class NarouSearchResults<T, TKey extends keyof T> {
|
|
|
34
51
|
const limit = params.lim ?? 20;
|
|
35
52
|
const start = params.st ?? 0;
|
|
36
53
|
|
|
37
|
-
/**
|
|
38
|
-
* 検索結果数
|
|
39
|
-
* @type {number}
|
|
40
|
-
*/
|
|
41
54
|
this.allcount = count;
|
|
42
|
-
/**
|
|
43
|
-
* 結果表示上限数
|
|
44
|
-
* @type {number}
|
|
45
|
-
*/
|
|
46
55
|
this.limit = limit;
|
|
47
|
-
/**
|
|
48
|
-
* 結果表示開始数
|
|
49
|
-
* @type {number}
|
|
50
|
-
*/
|
|
51
56
|
this.start = start;
|
|
52
|
-
/**
|
|
53
|
-
* 結果表示ページ数
|
|
54
|
-
* @type {number}
|
|
55
|
-
*/
|
|
56
57
|
this.page = start / limit;
|
|
57
|
-
/**
|
|
58
|
-
* 結果数
|
|
59
|
-
* @type {number}
|
|
60
|
-
*/
|
|
61
58
|
this.length = result.length;
|
|
62
|
-
/**
|
|
63
|
-
* 検索結果
|
|
64
|
-
* @type {PickedNarouSearchResult<T>[]}
|
|
65
|
-
*/
|
|
66
59
|
this.values = result;
|
|
67
60
|
}
|
|
68
61
|
}
|
|
69
62
|
|
|
70
63
|
/**
|
|
71
|
-
*
|
|
72
|
-
* @
|
|
73
|
-
* @
|
|
74
|
-
* @property {number} userid 作者のユーザID(数値)
|
|
75
|
-
* @property {string} writer 作者名
|
|
76
|
-
* @property {string} story 小説のあらすじ
|
|
77
|
-
* @property {number} genre ジャンル
|
|
78
|
-
* @property {string} keyword キーワード
|
|
79
|
-
* @property {string} general_firstup 初回掲載日 YYYY-MM-DD HH:MM:SSの形式
|
|
80
|
-
* @property {string} general_lastup 最終掲載日 YYYY-MM-DD HH:MM:SSの形式
|
|
81
|
-
* @property {number} noveltype 連載の場合は1、短編の場合は2
|
|
82
|
-
* @property {number} end 短編小説と完結済小説は0となっています。連載中は1です。
|
|
83
|
-
* @property {number} general_all_no 全掲載話数です。短編の場合は1です。
|
|
84
|
-
* @property {number} length 全掲載話数です。短編の場合は1です。
|
|
85
|
-
* @property {number} time 読了時間(分単位)です。読了時間は小説文字数÷500を切り上げした数値です。
|
|
86
|
-
* @property {number} isstop 長期連載中は1、それ以外は0です。
|
|
87
|
-
* @property {number} pc_or_k 1はケータイのみ、2はPCのみ、3はPCとケータイで投稿された作品です。対象は投稿と次話投稿時のみで、どの端末で執筆されたかを表すものではありません。
|
|
88
|
-
* @property {number} global_point 総合得点(=(ブックマーク数×2)+評価点)
|
|
89
|
-
* @property {number} fav_novel_cnt ブックマーク数
|
|
90
|
-
* @property {number} review_cnt レビュー数
|
|
91
|
-
* @property {number} all_point 評価点
|
|
92
|
-
* @property {number} all_hyoka_cnt 評価者数
|
|
93
|
-
* @property {number} sasie_cnt 挿絵の数
|
|
94
|
-
* @property {number} kaiwaritu 会話率
|
|
95
|
-
* @property {number} novelupdated_at 小説の更新日時
|
|
96
|
-
* @property {number} updated_at 最終更新日時(注意:システム用で小説更新時とは関係ありません)
|
|
64
|
+
* 小説情報
|
|
65
|
+
* @see https://dev.syosetu.com/man/api/#output
|
|
66
|
+
* @see https://dev.syosetu.com/xman/api/#output
|
|
97
67
|
*/
|
|
98
|
-
|
|
99
68
|
export interface NarouSearchResult {
|
|
69
|
+
/** 小説名 */
|
|
100
70
|
title: string;
|
|
71
|
+
/** Nコード */
|
|
101
72
|
ncode: string;
|
|
73
|
+
/** 作者のユーザID(数値) */
|
|
102
74
|
userid: number;
|
|
75
|
+
/** 作者名 */
|
|
103
76
|
writer: string;
|
|
77
|
+
/** 小説のあらすじ */
|
|
104
78
|
story: string;
|
|
79
|
+
/** 掲載サイト */
|
|
105
80
|
nocgenre: R18Site;
|
|
81
|
+
/** 大ジャンル */
|
|
106
82
|
biggenre: BigGenre;
|
|
83
|
+
/** ジャンル */
|
|
107
84
|
genre: Genre;
|
|
85
|
+
/** キーワード */
|
|
108
86
|
keyword: string;
|
|
87
|
+
/** 初回掲載日 YYYY-MM-DD HH:MM:SSの形式 */
|
|
109
88
|
general_firstup: string;
|
|
89
|
+
/** 最終掲載日 YYYY-MM-DD HH:MM:SSの形式 */
|
|
110
90
|
general_lastup: string;
|
|
111
|
-
|
|
91
|
+
/** 連載の場合は1、短編の場合は2 */
|
|
92
|
+
novel_type: NovelType;
|
|
93
|
+
/** 連載の場合は1、短編の場合は2 */
|
|
112
94
|
noveltype: NovelType;
|
|
95
|
+
/** 短編小説と完結済小説は0となっています。連載中は1です。 */
|
|
113
96
|
end: End;
|
|
97
|
+
/** 全掲載話数です。短編の場合は1です。 */
|
|
114
98
|
general_all_no: number;
|
|
99
|
+
/** 小説文字数です。スペースや改行は文字数としてカウントしません。 */
|
|
115
100
|
length: number;
|
|
101
|
+
/** 読了時間(分単位)です。読了時間は小説文字数÷500を切り上げした数値です。 */
|
|
116
102
|
time: number;
|
|
103
|
+
/** 長期連載中は1、それ以外は0です。 */
|
|
117
104
|
isstop: BooleanNumber;
|
|
105
|
+
/** 登録必須キーワードに「R15」が含まれる場合は1、それ以外は0です。 */
|
|
118
106
|
isr15: BooleanNumber;
|
|
107
|
+
/** 登録必須キーワードに「ボーイズラブ」が含まれる場合は1、それ以外は0です。 */
|
|
119
108
|
isbl: BooleanNumber;
|
|
109
|
+
/** 登録必須キーワードに「ガールズラブ」が含まれる場合は1、それ以外は0です。 */
|
|
120
110
|
isgl: BooleanNumber;
|
|
111
|
+
/** 登録必須キーワードに「残酷な描写あり」が含まれる場合は1、それ以外は0です。 */
|
|
121
112
|
iszankoku: BooleanNumber;
|
|
113
|
+
/** 登録必須キーワードに「異世界転生」が含まれる場合は1、それ以外は0です。 */
|
|
122
114
|
istensei: BooleanNumber;
|
|
115
|
+
/** 登録必須キーワードに「異世界転移」が含まれる場合は1、それ以外は0です。 */
|
|
123
116
|
istenni: BooleanNumber;
|
|
124
|
-
|
|
117
|
+
/** 総合得点(=(ブックマーク数×2)+評価点) */
|
|
125
118
|
global_point: number;
|
|
119
|
+
/**
|
|
120
|
+
* 日間ポイント
|
|
121
|
+
* ランキング集計時点から過去24時間以内で新たに登録されたブックマークや評価が対象
|
|
122
|
+
*/
|
|
126
123
|
daily_point: number;
|
|
124
|
+
/**
|
|
125
|
+
* 週間ポイント
|
|
126
|
+
* ランキング集計時点から過去7日以内で新たに登録されたブックマークや評価が対象
|
|
127
|
+
*/
|
|
127
128
|
weekly_point: number;
|
|
129
|
+
/**
|
|
130
|
+
* 月間ポイント
|
|
131
|
+
* ランキング集計時点から過去30日以内で新たに登録されたブックマークや評価が対象
|
|
132
|
+
*/
|
|
128
133
|
monthly_point: number;
|
|
134
|
+
/**
|
|
135
|
+
* 四半期ポイント
|
|
136
|
+
* ランキング集計時点から過去90日以内で新たに登録されたブックマークや評価が対象
|
|
137
|
+
*/
|
|
129
138
|
quarter_point: number;
|
|
139
|
+
/**
|
|
140
|
+
* 年間ポイント
|
|
141
|
+
* ランキング集計時点から過去365日以内で新たに登録されたブックマークや評価が対象
|
|
142
|
+
*/
|
|
130
143
|
yearly_point: number;
|
|
144
|
+
/** ブックマーク数 */
|
|
131
145
|
fav_novel_cnt: number;
|
|
146
|
+
/** 感想数 */
|
|
132
147
|
impression_cnt: number;
|
|
148
|
+
/** レビュー数 */
|
|
133
149
|
review_cnt: number;
|
|
150
|
+
/** 評価ポイント */
|
|
134
151
|
all_point: number;
|
|
152
|
+
/** 評価者数 */
|
|
135
153
|
all_hyoka_cnt: number;
|
|
154
|
+
/** 挿絵の数 */
|
|
136
155
|
sasie_cnt: number;
|
|
156
|
+
/**
|
|
157
|
+
* 会話率
|
|
158
|
+
* @see https://dev.syosetu.com/man/kaiwa/
|
|
159
|
+
*/
|
|
137
160
|
kaiwaritu: number;
|
|
161
|
+
/**
|
|
162
|
+
* 小説の更新日時
|
|
163
|
+
*/
|
|
138
164
|
novelupdated_at: string;
|
|
165
|
+
/**
|
|
166
|
+
* 最終更新日時
|
|
167
|
+
* システム用で小説更新時とは関係ありません
|
|
168
|
+
*/
|
|
139
169
|
updated_at: string;
|
|
170
|
+
/** 週間ユニークユーザー数 */
|
|
140
171
|
weekly_unique: number;
|
|
141
172
|
}
|
|
142
173
|
|
|
174
|
+
/**
|
|
175
|
+
* ユーザ情報
|
|
176
|
+
* @see https://dev.syosetu.com/man/userapi/#output
|
|
177
|
+
*/
|
|
143
178
|
export interface UserSearchResult {
|
|
179
|
+
/** ユーザID */
|
|
144
180
|
userid: number;
|
|
181
|
+
/** ユーザ名 */
|
|
145
182
|
name: string;
|
|
183
|
+
/** ユーザ名のフリガナ */
|
|
146
184
|
yomikata: string;
|
|
185
|
+
/**
|
|
186
|
+
* ユーザ名のフリガナの頭文字
|
|
187
|
+
* ひらがな以外の場合はnullまたは空文字となります。
|
|
188
|
+
*/
|
|
147
189
|
name1st: string;
|
|
190
|
+
/** 小説投稿数 */
|
|
148
191
|
novel_cnt: number;
|
|
192
|
+
/** レビュー投稿数 */
|
|
149
193
|
review_cnt: number;
|
|
194
|
+
/**
|
|
195
|
+
* 小説累計文字数
|
|
196
|
+
* スペースや改行は文字数としてカウントしません。
|
|
197
|
+
*/
|
|
150
198
|
novel_length: number;
|
|
199
|
+
/**
|
|
200
|
+
* 総合評価ポイントの合計
|
|
201
|
+
* 投稿済小説でそれぞれ獲得した総合評価ポイントの合計です。
|
|
202
|
+
*/
|
|
151
203
|
sum_global_point: number;
|
|
152
204
|
}
|
|
153
205
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
PcAndKetai: 3,
|
|
158
|
-
} as const;
|
|
159
|
-
export type PcOrK = typeof PcOrK[keyof typeof PcOrK];
|
|
160
|
-
|
|
206
|
+
/**
|
|
207
|
+
* noveltype/novel_typeの値ヘルパー
|
|
208
|
+
*/
|
|
161
209
|
export const NovelType = {
|
|
210
|
+
/** 連載 */
|
|
162
211
|
Rensai: 1,
|
|
212
|
+
/** 短編 */
|
|
163
213
|
Tanpen: 2,
|
|
164
214
|
} as const;
|
|
165
215
|
export type NovelType = typeof NovelType[keyof typeof NovelType];
|
|
166
216
|
|
|
217
|
+
/**
|
|
218
|
+
* endの値ヘルパー
|
|
219
|
+
*/
|
|
167
220
|
export const End = {
|
|
221
|
+
/** 短編小説と完結済小説 */
|
|
168
222
|
KanketsuOrTanpen: 0,
|
|
223
|
+
/** 連載中 */
|
|
169
224
|
Rensai: 1,
|
|
170
225
|
} as const;
|
|
171
226
|
export type End = typeof End[keyof typeof End];
|
|
@@ -176,8 +231,8 @@ export type SearchResultFields<T extends Fields> = {
|
|
|
176
231
|
|
|
177
232
|
export type SearchResultOptionalFields<T extends OptionalFields> = {
|
|
178
233
|
[K in keyof typeof OptionalFields]: typeof OptionalFields[K] extends T
|
|
179
|
-
|
|
180
|
-
|
|
234
|
+
? K
|
|
235
|
+
: never;
|
|
181
236
|
}[keyof typeof OptionalFields];
|
|
182
237
|
|
|
183
238
|
export type SearchResultR18Fields<T extends R18Fields> = {
|
package/src/narou.ts
CHANGED
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
} from "./params";
|
|
12
12
|
import { RankingHistoryRawResult } from "./ranking-history";
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* なろう小説APIへのリクエストパラメータ
|
|
16
|
+
*/
|
|
14
17
|
export type NarouParams =
|
|
15
18
|
| SearchParams
|
|
16
19
|
| RankingParams
|
|
@@ -24,23 +27,35 @@ export type NarouParams =
|
|
|
24
27
|
*/
|
|
25
28
|
export default abstract class NarouNovel {
|
|
26
29
|
/**
|
|
27
|
-
*
|
|
30
|
+
* なろうAPIへのAPIリクエストを実行する
|
|
28
31
|
* @param params クエリパラメータ
|
|
29
32
|
* @param endpoint APIエンドポイント
|
|
30
|
-
* @returns
|
|
33
|
+
* @returns 実行結果
|
|
31
34
|
*/
|
|
32
35
|
protected abstract execute<T>(
|
|
33
36
|
params: NarouParams,
|
|
34
37
|
endpoint: string
|
|
35
38
|
): Promise<T>;
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
/**
|
|
41
|
+
* APIへの検索リクエストを実行する
|
|
42
|
+
* @param params クエリパラメータ
|
|
43
|
+
* @param endpoint APIエンドポイント
|
|
44
|
+
* @returns 検索結果
|
|
45
|
+
*/
|
|
46
|
+
protected async executeSearch<T extends keyof NarouSearchResult>(
|
|
38
47
|
params: SearchParams,
|
|
39
48
|
endpoint = "https://api.syosetu.com/novelapi/api/"
|
|
40
49
|
): Promise<NarouSearchResults<NarouSearchResult, T>> {
|
|
41
50
|
return new NarouSearchResults(await this.execute(params, endpoint), params);
|
|
42
51
|
}
|
|
43
52
|
|
|
53
|
+
/**
|
|
54
|
+
* 小説APIへの検索リクエストを実行する
|
|
55
|
+
* @param params クエリパラメータ
|
|
56
|
+
* @returns 検索結果
|
|
57
|
+
* @see https://dev.syosetu.com/man/api/
|
|
58
|
+
*/
|
|
44
59
|
async executeNovel<T extends keyof NarouSearchResult>(
|
|
45
60
|
params: SearchParams
|
|
46
61
|
): Promise<NarouSearchResults<NarouSearchResult, T>> {
|
|
@@ -50,6 +65,12 @@ export default abstract class NarouNovel {
|
|
|
50
65
|
);
|
|
51
66
|
}
|
|
52
67
|
|
|
68
|
+
/**
|
|
69
|
+
* R18小説APIへの検索リクエストを実行する
|
|
70
|
+
* @param params クエリパラメータ
|
|
71
|
+
* @returns 検索結果
|
|
72
|
+
* @see https://dev.syosetu.com/xman/api/
|
|
73
|
+
*/
|
|
53
74
|
async executeNovel18<T extends keyof NarouSearchResult>(
|
|
54
75
|
params: SearchParams
|
|
55
76
|
): Promise<NarouSearchResults<NarouSearchResult, T>> {
|
|
@@ -59,16 +80,34 @@ export default abstract class NarouNovel {
|
|
|
59
80
|
);
|
|
60
81
|
}
|
|
61
82
|
|
|
83
|
+
/**
|
|
84
|
+
* ランキングAPIへのリクエストを実行する
|
|
85
|
+
* @param params クエリパラメータ
|
|
86
|
+
* @returns ランキング結果
|
|
87
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
88
|
+
*/
|
|
62
89
|
async executeRanking(params: RankingParams): Promise<NarouRankingResult[]> {
|
|
63
90
|
return await this.execute(params, "https://api.syosetu.com/rank/rankget/");
|
|
64
91
|
}
|
|
65
92
|
|
|
93
|
+
/**
|
|
94
|
+
* 殿堂入りAPiへのリクエストを実行する
|
|
95
|
+
* @param params クエリパラメータ
|
|
96
|
+
* @returns ランキング履歴結果
|
|
97
|
+
* @see https://dev.syosetu.com/man/rankinapi/
|
|
98
|
+
*/
|
|
66
99
|
async executeRankingHistory(
|
|
67
100
|
params: RankingHistoryParams
|
|
68
101
|
): Promise<RankingHistoryRawResult[]> {
|
|
69
102
|
return await this.execute(params, "https://api.syosetu.com/rank/rankin/");
|
|
70
103
|
}
|
|
71
104
|
|
|
105
|
+
/**
|
|
106
|
+
* ユーザー検索APIへのリクエストを実行する
|
|
107
|
+
* @param params クエリパラメータ
|
|
108
|
+
* @returns 検索結果
|
|
109
|
+
* @see https://dev.syosetu.com/man/userapi/
|
|
110
|
+
*/
|
|
72
111
|
async executeUserSearch<T extends keyof UserSearchResult>(
|
|
73
112
|
params: UserSearchParams
|
|
74
113
|
): Promise<NarouSearchResults<UserSearchResult, T>> {
|