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
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import NarouNovel from \"./narou\";\nimport NarouNovelFetch from \"./narou-fetch\";\nimport NarouNovelJsonp from \"./narou-jsonp\";\nimport RankingBuilder from \"./ranking\";\nimport { formatRankingHistory, RankingHistoryResult } from \"./ranking-history\";\nimport SearchBuilder from \"./search-builder\";\nimport SearchBuilderR18 from \"./search-builder-r18\";\nimport UserSearchBuilder from \"./user-search\";\n\nexport * from \"./index.common\";\nexport { NarouNovelFetch, NarouNovelJsonp };\n\nconst narouNovelFetch = new NarouNovelFetch();\n\n/**\n * なろう小説 API で小説を検索する\n * @param {string} [word] - 検索ワード\n * @returns {SearchBuilder}\n */\nexport function search(\n word = \"\",\n api: NarouNovel = narouNovelFetch\n): SearchBuilder {\n const builder = new SearchBuilder({}, api);\n if (word != \"\") builder.word(word);\n return builder;\n}\n\n/**\n * 18禁小説 API で小説を検索する\n * @param {string} [word] - 検索ワード\n * @returns {SearchBuilder}\n */\nexport function searchR18(\n word = \"\",\n api: NarouNovel = narouNovelFetch\n): SearchBuilderR18 {\n const builder = new SearchBuilderR18({}, api);\n if (word != \"\") builder.word(word);\n return builder;\n}\n\n/**\n * なろうユーザ検索 API でユーザを検索する\n */\nexport function searchUser(word = \"\", api: NarouNovel = narouNovelFetch) {\n const builder = new UserSearchBuilder({}, api);\n if (word != \"\") builder.word(word);\n return builder;\n}\n\n/**\n * なろう小説ランキング API でランキングを取得する\n */\nexport function ranking(api: NarouNovel = narouNovelFetch): RankingBuilder {\n const builder = new RankingBuilder({}, api);\n return builder;\n}\n\n/**\n * なろう殿堂入り API でランキング履歴を取得する\n */\nexport async function rankingHistory(\n ncode: string,\n api: NarouNovel = narouNovelFetch\n): Promise<RankingHistoryResult[]> {\n const result = await api.executeRankingHistory({ ncode });\n if (Array.isArray(result)) {\n return result.map(formatRankingHistory);\n } else {\n throw new Error(result);\n }\n}\n\nexport default {\n search,\n searchR18,\n searchUser,\n ranking,\n rankingHistory,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,kBAAkB,IAAI,gBAAgB;AAOrC,SAAS,OACd,OAAO,IACP,MAAkB,iBACH;AACf,QAAM,UAAU,IAAI,cAAc,CAAC,GAAG,GAAG;AACzC,MAAI,QAAQ;AAAI,YAAQ,KAAK,IAAI;AACjC,SAAO;AACT;AAOO,SAAS,UACd,OAAO,IACP,MAAkB,iBACA;AAClB,QAAM,UAAU,IAAI,iBAAiB,CAAC,GAAG,GAAG;AAC5C,MAAI,QAAQ;AAAI,YAAQ,KAAK,IAAI;AACjC,SAAO;AACT;AAKO,SAAS,WAAW,OAAO,IAAI,MAAkB,iBAAiB;AACvE,QAAM,UAAU,IAAI,kBAAkB,CAAC,GAAG,GAAG;AAC7C,MAAI,QAAQ;AAAI,YAAQ,KAAK,IAAI;AACjC,SAAO;AACT;AAKO,SAAS,QAAQ,MAAkB,iBAAiC;AACzE,QAAM,UAAU,IAAI,eAAe,CAAC,GAAG,GAAG;AAC1C,SAAO;AACT;AAKA,eAAsB,eACpB,OACA,MAAkB,iBACe;AACjC,QAAM,SAAS,MAAM,IAAI,sBAAsB,EAAE,MAAM,CAAC;AACxD,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,OAAO,IAAI,oBAAoB;AAAA,EACxC,OAAO;AACL,UAAM,IAAI,MAAM,MAAM;AAAA,EACxB;AACF;AAEA,IAAO,cAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { r as NarouSearchResult, a as ParamsBaseWithOrder, q as GzipLevel, d as SearchResultFieldNames, S as SearchParams, g as Order, o as NovelTypeParam, m as BuntaiParam, N as NarouSearchResults, j as BigGenre, G as Genre, F as Fields, u as SearchResultFields, O as OptionalFields, v as SearchResultOptionalFields, y as PickedNarouSearchResult, b as RankingParams, c as RankingHistoryParams, U as UserSearchParams, s as UserSearchResult } from './narou-search-results-b7c10db0.js';
|
|
2
|
+
import { RankingHistoryRawResult } from './ranking-history.js';
|
|
3
|
+
import { Join } from './util/type.js';
|
|
4
|
+
|
|
5
|
+
type DefaultSearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "nocgenre" | "xid">;
|
|
6
|
+
declare abstract class SearchBuilderBase<TParams extends ParamsBaseWithOrder<TOrder>, TOrder extends string> {
|
|
7
|
+
protected params: TParams;
|
|
8
|
+
protected api: NarouNovel;
|
|
9
|
+
/**
|
|
10
|
+
* constructor
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
constructor(params: TParams, api: NarouNovel);
|
|
14
|
+
protected static distinct<T>(array: readonly T[]): T[];
|
|
15
|
+
protected static array2string<T extends string | number>(n: T | readonly T[]): Join<T>;
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @return {SearchBuilder} this
|
|
19
|
+
*/
|
|
20
|
+
limit(num: number): this;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @return {SearchBuilder} this
|
|
24
|
+
*/
|
|
25
|
+
start(num: number): this;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @return {SearchBuilder} this
|
|
29
|
+
*/
|
|
30
|
+
page(no: number, count?: number): this;
|
|
31
|
+
/**
|
|
32
|
+
* 出力順序を指定する。指定しない場合は新着順となります。
|
|
33
|
+
* old 古い順
|
|
34
|
+
* @param {TOrder} order 出力順序
|
|
35
|
+
* @return {SearchBuilder} this
|
|
36
|
+
*/
|
|
37
|
+
order(order: TOrder): this;
|
|
38
|
+
/**
|
|
39
|
+
* gzip圧縮する。
|
|
40
|
+
*
|
|
41
|
+
* 転送量上限を減らすためにも推奨
|
|
42
|
+
* @param {GzipLevel} level gzip圧縮レベル(1~5)
|
|
43
|
+
* @return {SearchBuilder} this
|
|
44
|
+
*/
|
|
45
|
+
gzip(level: GzipLevel): this;
|
|
46
|
+
/**
|
|
47
|
+
* クエリパラメータをセットする
|
|
48
|
+
* @private
|
|
49
|
+
* @return {SearchBuilder} this
|
|
50
|
+
*/
|
|
51
|
+
protected set(obj: TParams): this;
|
|
52
|
+
/**
|
|
53
|
+
* クエリパラメータを削除する
|
|
54
|
+
*/
|
|
55
|
+
protected unset(key: keyof TParams): this;
|
|
56
|
+
}
|
|
57
|
+
declare abstract class NovelSearchBuilderBase<T extends SearchResultFieldNames> extends SearchBuilderBase<SearchParams, Order> {
|
|
58
|
+
/**
|
|
59
|
+
* a
|
|
60
|
+
* @return {SearchBuilder} this
|
|
61
|
+
*/
|
|
62
|
+
word(word: string): this;
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
* @return {SearchBuilder} this
|
|
66
|
+
*/
|
|
67
|
+
notWord(word: string): this;
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
* @return {SearchBuilder} this
|
|
71
|
+
*/
|
|
72
|
+
byTitle(bool?: boolean): this;
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* @return {SearchBuilder} this
|
|
76
|
+
*/
|
|
77
|
+
byOutline(bool?: boolean): this;
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
* @return {SearchBuilder} this
|
|
81
|
+
*/
|
|
82
|
+
byKeyword(bool?: boolean): this;
|
|
83
|
+
/**
|
|
84
|
+
*
|
|
85
|
+
* @return {SearchBuilder} this
|
|
86
|
+
*/
|
|
87
|
+
byAuthor(bool?: boolean): this;
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
* @return {SearchBuilder} this
|
|
91
|
+
*/
|
|
92
|
+
isBL(bool?: boolean): this;
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
* @return {SearchBuilder} this
|
|
96
|
+
*/
|
|
97
|
+
isGL(bool?: boolean): this;
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
* @return {SearchBuilder} this
|
|
101
|
+
*/
|
|
102
|
+
isZankoku(bool?: boolean): this;
|
|
103
|
+
/**
|
|
104
|
+
*
|
|
105
|
+
* @return {SearchBuilder} this
|
|
106
|
+
*/
|
|
107
|
+
isTensei(bool?: boolean): this;
|
|
108
|
+
/**
|
|
109
|
+
*
|
|
110
|
+
* @return {SearchBuilder} this
|
|
111
|
+
*/
|
|
112
|
+
isTenni(bool?: boolean): this;
|
|
113
|
+
/**
|
|
114
|
+
*
|
|
115
|
+
* @return {SearchBuilder} this
|
|
116
|
+
*/
|
|
117
|
+
isTT(): this;
|
|
118
|
+
/**
|
|
119
|
+
*
|
|
120
|
+
* @return {SearchBuilder} this
|
|
121
|
+
*/
|
|
122
|
+
length(length: number | readonly number[]): this;
|
|
123
|
+
/**
|
|
124
|
+
*
|
|
125
|
+
* @return {SearchBuilder} this
|
|
126
|
+
*/
|
|
127
|
+
kaiwaritu(num: number): this;
|
|
128
|
+
kaiwaritu(min: number, max: number): this;
|
|
129
|
+
/**
|
|
130
|
+
*
|
|
131
|
+
* @return {SearchBuilder} this
|
|
132
|
+
*/
|
|
133
|
+
sasie(num: number | readonly number[]): this;
|
|
134
|
+
/**
|
|
135
|
+
*
|
|
136
|
+
* @return {SearchBuilder} this
|
|
137
|
+
*/
|
|
138
|
+
time(num: number | readonly number[]): this;
|
|
139
|
+
/**
|
|
140
|
+
*
|
|
141
|
+
* @return {SearchBuilder} this
|
|
142
|
+
*/
|
|
143
|
+
ncode(ncodes: string | readonly string[]): this;
|
|
144
|
+
/**
|
|
145
|
+
*
|
|
146
|
+
* @return {SearchBuilder} this
|
|
147
|
+
*/
|
|
148
|
+
type(type: NovelTypeParam): this;
|
|
149
|
+
/**
|
|
150
|
+
*
|
|
151
|
+
* @return {SearchBuilder} this
|
|
152
|
+
*/
|
|
153
|
+
buntai(buntai: BuntaiParam | readonly BuntaiParam[]): this;
|
|
154
|
+
/**
|
|
155
|
+
*
|
|
156
|
+
* @return {SearchBuilder} this
|
|
157
|
+
*/
|
|
158
|
+
isStop(bool?: boolean): this;
|
|
159
|
+
/**
|
|
160
|
+
*
|
|
161
|
+
* @return {SearchBuilder} this
|
|
162
|
+
*/
|
|
163
|
+
isPickup(bool?: boolean): this;
|
|
164
|
+
/**
|
|
165
|
+
*
|
|
166
|
+
* @return {SearchBuilder} this
|
|
167
|
+
*/
|
|
168
|
+
lastUpdate(date: string): this;
|
|
169
|
+
lastUpdate(from: number, to: number): this;
|
|
170
|
+
lastUpdate(from: Date, to: Date): this;
|
|
171
|
+
/**
|
|
172
|
+
* なろう小説APIへの検索リクエストを実行する
|
|
173
|
+
* @returns {Promise<NarouSearchResults>} 検索結果
|
|
174
|
+
*/
|
|
175
|
+
execute(): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* 検索ヘルパー
|
|
179
|
+
* @class SearchBuilder
|
|
180
|
+
*/
|
|
181
|
+
declare class SearchBuilder<T extends keyof NarouSearchResult = DefaultSearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
|
|
182
|
+
/**
|
|
183
|
+
*
|
|
184
|
+
* @return {SearchBuilder} this
|
|
185
|
+
*/
|
|
186
|
+
bigGenre(genre: BigGenre | readonly BigGenre[]): this;
|
|
187
|
+
/**
|
|
188
|
+
*
|
|
189
|
+
* @return {SearchBuilder} this
|
|
190
|
+
*/
|
|
191
|
+
notBigGenre(genre: BigGenre | readonly BigGenre[]): this;
|
|
192
|
+
/**
|
|
193
|
+
*
|
|
194
|
+
* @return {SearchBuilder} this
|
|
195
|
+
*/
|
|
196
|
+
genre(genre: Genre | readonly Genre[]): this;
|
|
197
|
+
/**
|
|
198
|
+
*
|
|
199
|
+
* @return {SearchBuilder} this
|
|
200
|
+
*/
|
|
201
|
+
notGenre(genre: Genre | readonly Genre[]): this;
|
|
202
|
+
/**
|
|
203
|
+
*
|
|
204
|
+
* @return {SearchBuilder} this
|
|
205
|
+
*/
|
|
206
|
+
userId(ids: number | readonly number[]): this;
|
|
207
|
+
/**
|
|
208
|
+
*
|
|
209
|
+
* @return {SearchBuilder} this
|
|
210
|
+
*/
|
|
211
|
+
isR15(bool?: boolean): this;
|
|
212
|
+
/**
|
|
213
|
+
*
|
|
214
|
+
* @return {SearchBuilder} this
|
|
215
|
+
*/
|
|
216
|
+
fields<TFields extends Fields>(fields: TFields | readonly TFields[]): SearchBuilder<SearchResultFields<TFields>, TOpt>;
|
|
217
|
+
opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilder<T, SearchResultOptionalFields<TFields>>;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* ランキングAPIの結果
|
|
222
|
+
* @see https://dev.syosetu.com/man/rankapi/#output
|
|
223
|
+
*/
|
|
224
|
+
interface NarouRankingResult {
|
|
225
|
+
/** Nコード */
|
|
226
|
+
ncode: string;
|
|
227
|
+
/** 順位 */
|
|
228
|
+
rank: number;
|
|
229
|
+
/** ポイント */
|
|
230
|
+
pt: number;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* ランキングと小説情報をマージした結果
|
|
234
|
+
*/
|
|
235
|
+
type RankingResult<T extends SearchResultFieldNames = DefaultSearchResultFields> = Partial<PickedNarouSearchResult<T>> & NarouRankingResult;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* なろう小説APIへのリクエストパラメータ
|
|
239
|
+
*/
|
|
240
|
+
type NarouParams = SearchParams | RankingParams | RankingHistoryParams | UserSearchParams;
|
|
241
|
+
/**
|
|
242
|
+
* なろう小説APIへのリクエストを実行する
|
|
243
|
+
* @class NarouNovel
|
|
244
|
+
* @private
|
|
245
|
+
*/
|
|
246
|
+
declare abstract class NarouNovel {
|
|
247
|
+
/**
|
|
248
|
+
* なろうAPIへのAPIリクエストを実行する
|
|
249
|
+
* @param params クエリパラメータ
|
|
250
|
+
* @param endpoint APIエンドポイント
|
|
251
|
+
* @returns 実行結果
|
|
252
|
+
*/
|
|
253
|
+
protected abstract execute<T>(params: NarouParams, endpoint: string): Promise<T>;
|
|
254
|
+
/**
|
|
255
|
+
* APIへの検索リクエストを実行する
|
|
256
|
+
* @param params クエリパラメータ
|
|
257
|
+
* @param endpoint APIエンドポイント
|
|
258
|
+
* @returns 検索結果
|
|
259
|
+
*/
|
|
260
|
+
protected executeSearch<T extends keyof NarouSearchResult>(params: SearchParams, endpoint?: string): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
261
|
+
/**
|
|
262
|
+
* 小説APIへの検索リクエストを実行する
|
|
263
|
+
* @param params クエリパラメータ
|
|
264
|
+
* @returns 検索結果
|
|
265
|
+
* @see https://dev.syosetu.com/man/api/
|
|
266
|
+
*/
|
|
267
|
+
executeNovel<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
268
|
+
/**
|
|
269
|
+
* R18小説APIへの検索リクエストを実行する
|
|
270
|
+
* @param params クエリパラメータ
|
|
271
|
+
* @returns 検索結果
|
|
272
|
+
* @see https://dev.syosetu.com/xman/api/
|
|
273
|
+
*/
|
|
274
|
+
executeNovel18<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
275
|
+
/**
|
|
276
|
+
* ランキングAPIへのリクエストを実行する
|
|
277
|
+
* @param params クエリパラメータ
|
|
278
|
+
* @returns ランキング結果
|
|
279
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
280
|
+
*/
|
|
281
|
+
executeRanking(params: RankingParams): Promise<NarouRankingResult[]>;
|
|
282
|
+
/**
|
|
283
|
+
* 殿堂入りAPiへのリクエストを実行する
|
|
284
|
+
* @param params クエリパラメータ
|
|
285
|
+
* @returns ランキング履歴結果
|
|
286
|
+
* @see https://dev.syosetu.com/man/rankinapi/
|
|
287
|
+
*/
|
|
288
|
+
executeRankingHistory(params: RankingHistoryParams): Promise<RankingHistoryRawResult[]>;
|
|
289
|
+
/**
|
|
290
|
+
* ユーザー検索APIへのリクエストを実行する
|
|
291
|
+
* @param params クエリパラメータ
|
|
292
|
+
* @returns 検索結果
|
|
293
|
+
* @see https://dev.syosetu.com/man/userapi/
|
|
294
|
+
*/
|
|
295
|
+
executeUserSearch<T extends keyof UserSearchResult>(params: UserSearchParams): Promise<NarouSearchResults<UserSearchResult, T>>;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export { DefaultSearchResultFields as D, NarouNovel as N, RankingResult as R, SearchBuilder as S, NarouParams as a, NarouRankingResult as b, SearchBuilderBase as c, NovelSearchBuilderBase as d };
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { r as NarouSearchResult, a as ParamsBaseWithOrder, q as GzipLevel, d as SearchResultFieldNames, S as SearchParams, g as Order, o as NovelTypeParam, m as BuntaiParam, N as NarouSearchResults, j as BigGenre, G as Genre, F as Fields, u as SearchResultFields, O as OptionalFields, v as SearchResultOptionalFields, y as PickedNarouSearchResult, b as RankingParams, c as RankingHistoryParams, U as UserSearchParams, s as UserSearchResult } from './narou-search-results-6727b1ce.js';
|
|
2
|
+
import { RankingHistoryRawResult } from './ranking-history.cjs';
|
|
3
|
+
import { Join } from './util/type.cjs';
|
|
4
|
+
|
|
5
|
+
type DefaultSearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "nocgenre" | "xid">;
|
|
6
|
+
declare abstract class SearchBuilderBase<TParams extends ParamsBaseWithOrder<TOrder>, TOrder extends string> {
|
|
7
|
+
protected params: TParams;
|
|
8
|
+
protected api: NarouNovel;
|
|
9
|
+
/**
|
|
10
|
+
* constructor
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
constructor(params: TParams, api: NarouNovel);
|
|
14
|
+
protected static distinct<T>(array: readonly T[]): T[];
|
|
15
|
+
protected static array2string<T extends string | number>(n: T | readonly T[]): Join<T>;
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @return {SearchBuilder} this
|
|
19
|
+
*/
|
|
20
|
+
limit(num: number): this;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @return {SearchBuilder} this
|
|
24
|
+
*/
|
|
25
|
+
start(num: number): this;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @return {SearchBuilder} this
|
|
29
|
+
*/
|
|
30
|
+
page(no: number, count?: number): this;
|
|
31
|
+
/**
|
|
32
|
+
* 出力順序を指定する。指定しない場合は新着順となります。
|
|
33
|
+
* old 古い順
|
|
34
|
+
* @param {TOrder} order 出力順序
|
|
35
|
+
* @return {SearchBuilder} this
|
|
36
|
+
*/
|
|
37
|
+
order(order: TOrder): this;
|
|
38
|
+
/**
|
|
39
|
+
* gzip圧縮する。
|
|
40
|
+
*
|
|
41
|
+
* 転送量上限を減らすためにも推奨
|
|
42
|
+
* @param {GzipLevel} level gzip圧縮レベル(1~5)
|
|
43
|
+
* @return {SearchBuilder} this
|
|
44
|
+
*/
|
|
45
|
+
gzip(level: GzipLevel): this;
|
|
46
|
+
/**
|
|
47
|
+
* クエリパラメータをセットする
|
|
48
|
+
* @private
|
|
49
|
+
* @return {SearchBuilder} this
|
|
50
|
+
*/
|
|
51
|
+
protected set(obj: TParams): this;
|
|
52
|
+
/**
|
|
53
|
+
* クエリパラメータを削除する
|
|
54
|
+
*/
|
|
55
|
+
protected unset(key: keyof TParams): this;
|
|
56
|
+
}
|
|
57
|
+
declare abstract class NovelSearchBuilderBase<T extends SearchResultFieldNames> extends SearchBuilderBase<SearchParams, Order> {
|
|
58
|
+
/**
|
|
59
|
+
* a
|
|
60
|
+
* @return {SearchBuilder} this
|
|
61
|
+
*/
|
|
62
|
+
word(word: string): this;
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
* @return {SearchBuilder} this
|
|
66
|
+
*/
|
|
67
|
+
notWord(word: string): this;
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
* @return {SearchBuilder} this
|
|
71
|
+
*/
|
|
72
|
+
byTitle(bool?: boolean): this;
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* @return {SearchBuilder} this
|
|
76
|
+
*/
|
|
77
|
+
byOutline(bool?: boolean): this;
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
* @return {SearchBuilder} this
|
|
81
|
+
*/
|
|
82
|
+
byKeyword(bool?: boolean): this;
|
|
83
|
+
/**
|
|
84
|
+
*
|
|
85
|
+
* @return {SearchBuilder} this
|
|
86
|
+
*/
|
|
87
|
+
byAuthor(bool?: boolean): this;
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
* @return {SearchBuilder} this
|
|
91
|
+
*/
|
|
92
|
+
isBL(bool?: boolean): this;
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
* @return {SearchBuilder} this
|
|
96
|
+
*/
|
|
97
|
+
isGL(bool?: boolean): this;
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
* @return {SearchBuilder} this
|
|
101
|
+
*/
|
|
102
|
+
isZankoku(bool?: boolean): this;
|
|
103
|
+
/**
|
|
104
|
+
*
|
|
105
|
+
* @return {SearchBuilder} this
|
|
106
|
+
*/
|
|
107
|
+
isTensei(bool?: boolean): this;
|
|
108
|
+
/**
|
|
109
|
+
*
|
|
110
|
+
* @return {SearchBuilder} this
|
|
111
|
+
*/
|
|
112
|
+
isTenni(bool?: boolean): this;
|
|
113
|
+
/**
|
|
114
|
+
*
|
|
115
|
+
* @return {SearchBuilder} this
|
|
116
|
+
*/
|
|
117
|
+
isTT(): this;
|
|
118
|
+
/**
|
|
119
|
+
*
|
|
120
|
+
* @return {SearchBuilder} this
|
|
121
|
+
*/
|
|
122
|
+
length(length: number | readonly number[]): this;
|
|
123
|
+
/**
|
|
124
|
+
*
|
|
125
|
+
* @return {SearchBuilder} this
|
|
126
|
+
*/
|
|
127
|
+
kaiwaritu(num: number): this;
|
|
128
|
+
kaiwaritu(min: number, max: number): this;
|
|
129
|
+
/**
|
|
130
|
+
*
|
|
131
|
+
* @return {SearchBuilder} this
|
|
132
|
+
*/
|
|
133
|
+
sasie(num: number | readonly number[]): this;
|
|
134
|
+
/**
|
|
135
|
+
*
|
|
136
|
+
* @return {SearchBuilder} this
|
|
137
|
+
*/
|
|
138
|
+
time(num: number | readonly number[]): this;
|
|
139
|
+
/**
|
|
140
|
+
*
|
|
141
|
+
* @return {SearchBuilder} this
|
|
142
|
+
*/
|
|
143
|
+
ncode(ncodes: string | readonly string[]): this;
|
|
144
|
+
/**
|
|
145
|
+
*
|
|
146
|
+
* @return {SearchBuilder} this
|
|
147
|
+
*/
|
|
148
|
+
type(type: NovelTypeParam): this;
|
|
149
|
+
/**
|
|
150
|
+
*
|
|
151
|
+
* @return {SearchBuilder} this
|
|
152
|
+
*/
|
|
153
|
+
buntai(buntai: BuntaiParam | readonly BuntaiParam[]): this;
|
|
154
|
+
/**
|
|
155
|
+
*
|
|
156
|
+
* @return {SearchBuilder} this
|
|
157
|
+
*/
|
|
158
|
+
isStop(bool?: boolean): this;
|
|
159
|
+
/**
|
|
160
|
+
*
|
|
161
|
+
* @return {SearchBuilder} this
|
|
162
|
+
*/
|
|
163
|
+
isPickup(bool?: boolean): this;
|
|
164
|
+
/**
|
|
165
|
+
*
|
|
166
|
+
* @return {SearchBuilder} this
|
|
167
|
+
*/
|
|
168
|
+
lastUpdate(date: string): this;
|
|
169
|
+
lastUpdate(from: number, to: number): this;
|
|
170
|
+
lastUpdate(from: Date, to: Date): this;
|
|
171
|
+
/**
|
|
172
|
+
* なろう小説APIへの検索リクエストを実行する
|
|
173
|
+
* @returns {Promise<NarouSearchResults>} 検索結果
|
|
174
|
+
*/
|
|
175
|
+
execute(): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* 検索ヘルパー
|
|
179
|
+
* @class SearchBuilder
|
|
180
|
+
*/
|
|
181
|
+
declare class SearchBuilder<T extends keyof NarouSearchResult = DefaultSearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
|
|
182
|
+
/**
|
|
183
|
+
*
|
|
184
|
+
* @return {SearchBuilder} this
|
|
185
|
+
*/
|
|
186
|
+
bigGenre(genre: BigGenre | readonly BigGenre[]): this;
|
|
187
|
+
/**
|
|
188
|
+
*
|
|
189
|
+
* @return {SearchBuilder} this
|
|
190
|
+
*/
|
|
191
|
+
notBigGenre(genre: BigGenre | readonly BigGenre[]): this;
|
|
192
|
+
/**
|
|
193
|
+
*
|
|
194
|
+
* @return {SearchBuilder} this
|
|
195
|
+
*/
|
|
196
|
+
genre(genre: Genre | readonly Genre[]): this;
|
|
197
|
+
/**
|
|
198
|
+
*
|
|
199
|
+
* @return {SearchBuilder} this
|
|
200
|
+
*/
|
|
201
|
+
notGenre(genre: Genre | readonly Genre[]): this;
|
|
202
|
+
/**
|
|
203
|
+
*
|
|
204
|
+
* @return {SearchBuilder} this
|
|
205
|
+
*/
|
|
206
|
+
userId(ids: number | readonly number[]): this;
|
|
207
|
+
/**
|
|
208
|
+
*
|
|
209
|
+
* @return {SearchBuilder} this
|
|
210
|
+
*/
|
|
211
|
+
isR15(bool?: boolean): this;
|
|
212
|
+
/**
|
|
213
|
+
*
|
|
214
|
+
* @return {SearchBuilder} this
|
|
215
|
+
*/
|
|
216
|
+
fields<TFields extends Fields>(fields: TFields | readonly TFields[]): SearchBuilder<SearchResultFields<TFields>, TOpt>;
|
|
217
|
+
opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilder<T, SearchResultOptionalFields<TFields>>;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* ランキングAPIの結果
|
|
222
|
+
* @see https://dev.syosetu.com/man/rankapi/#output
|
|
223
|
+
*/
|
|
224
|
+
interface NarouRankingResult {
|
|
225
|
+
/** Nコード */
|
|
226
|
+
ncode: string;
|
|
227
|
+
/** 順位 */
|
|
228
|
+
rank: number;
|
|
229
|
+
/** ポイント */
|
|
230
|
+
pt: number;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* ランキングと小説情報をマージした結果
|
|
234
|
+
*/
|
|
235
|
+
type RankingResult<T extends SearchResultFieldNames = DefaultSearchResultFields> = Partial<PickedNarouSearchResult<T>> & NarouRankingResult;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* なろう小説APIへのリクエストパラメータ
|
|
239
|
+
*/
|
|
240
|
+
type NarouParams = SearchParams | RankingParams | RankingHistoryParams | UserSearchParams;
|
|
241
|
+
/**
|
|
242
|
+
* なろう小説APIへのリクエストを実行する
|
|
243
|
+
* @class NarouNovel
|
|
244
|
+
* @private
|
|
245
|
+
*/
|
|
246
|
+
declare abstract class NarouNovel {
|
|
247
|
+
/**
|
|
248
|
+
* なろうAPIへのAPIリクエストを実行する
|
|
249
|
+
* @param params クエリパラメータ
|
|
250
|
+
* @param endpoint APIエンドポイント
|
|
251
|
+
* @returns 実行結果
|
|
252
|
+
*/
|
|
253
|
+
protected abstract execute<T>(params: NarouParams, endpoint: string): Promise<T>;
|
|
254
|
+
/**
|
|
255
|
+
* APIへの検索リクエストを実行する
|
|
256
|
+
* @param params クエリパラメータ
|
|
257
|
+
* @param endpoint APIエンドポイント
|
|
258
|
+
* @returns 検索結果
|
|
259
|
+
*/
|
|
260
|
+
protected executeSearch<T extends keyof NarouSearchResult>(params: SearchParams, endpoint?: string): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
261
|
+
/**
|
|
262
|
+
* 小説APIへの検索リクエストを実行する
|
|
263
|
+
* @param params クエリパラメータ
|
|
264
|
+
* @returns 検索結果
|
|
265
|
+
* @see https://dev.syosetu.com/man/api/
|
|
266
|
+
*/
|
|
267
|
+
executeNovel<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
268
|
+
/**
|
|
269
|
+
* R18小説APIへの検索リクエストを実行する
|
|
270
|
+
* @param params クエリパラメータ
|
|
271
|
+
* @returns 検索結果
|
|
272
|
+
* @see https://dev.syosetu.com/xman/api/
|
|
273
|
+
*/
|
|
274
|
+
executeNovel18<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
|
|
275
|
+
/**
|
|
276
|
+
* ランキングAPIへのリクエストを実行する
|
|
277
|
+
* @param params クエリパラメータ
|
|
278
|
+
* @returns ランキング結果
|
|
279
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
280
|
+
*/
|
|
281
|
+
executeRanking(params: RankingParams): Promise<NarouRankingResult[]>;
|
|
282
|
+
/**
|
|
283
|
+
* 殿堂入りAPiへのリクエストを実行する
|
|
284
|
+
* @param params クエリパラメータ
|
|
285
|
+
* @returns ランキング履歴結果
|
|
286
|
+
* @see https://dev.syosetu.com/man/rankinapi/
|
|
287
|
+
*/
|
|
288
|
+
executeRankingHistory(params: RankingHistoryParams): Promise<RankingHistoryRawResult[]>;
|
|
289
|
+
/**
|
|
290
|
+
* ユーザー検索APIへのリクエストを実行する
|
|
291
|
+
* @param params クエリパラメータ
|
|
292
|
+
* @returns 検索結果
|
|
293
|
+
* @see https://dev.syosetu.com/man/userapi/
|
|
294
|
+
*/
|
|
295
|
+
executeUserSearch<T extends keyof UserSearchResult>(params: UserSearchParams): Promise<NarouSearchResults<UserSearchResult, T>>;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export { DefaultSearchResultFields as D, NarouNovel as N, RankingResult as R, SearchBuilder as S, NarouParams as a, NarouRankingResult as b, SearchBuilderBase as c, NovelSearchBuilderBase as d };
|