narou 1.1.0 → 1.2.0
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/README.md +7 -0
- package/dist/{chunk-RITMMCZE.js → chunk-3A5MHPWL.js} +1 -1
- package/dist/chunk-3A5MHPWL.js.map +1 -0
- package/dist/{chunk-CDOBNSCL.js → chunk-5UDKQCPJ.js} +1 -1
- package/dist/chunk-5UDKQCPJ.js.map +1 -0
- package/dist/{chunk-UN3W2CT3.js → chunk-6BZWV4ZC.js} +6 -3
- package/dist/{chunk-UN3W2CT3.js.map → chunk-6BZWV4ZC.js.map} +1 -1
- package/dist/chunk-BQLSW236.js +117 -0
- package/dist/chunk-BQLSW236.js.map +1 -0
- package/dist/{chunk-K22KVNAH.js → chunk-DEQICAN3.js} +2 -2
- package/dist/chunk-E2H3AJSQ.js +57 -0
- package/dist/chunk-E2H3AJSQ.js.map +1 -0
- package/dist/chunk-HOBLKBZ6.js +452 -0
- package/dist/chunk-HOBLKBZ6.js.map +1 -0
- package/dist/{chunk-XVH2CU2Q.js → chunk-IPDEGCWU.js} +1 -1
- package/dist/chunk-IPDEGCWU.js.map +1 -0
- package/dist/{chunk-AZT2OXBZ.js → chunk-LQLNWSWV.js} +3 -3
- package/dist/{chunk-SNPBEVCY.js → chunk-PLEM2AOH.js} +3 -3
- package/dist/chunk-RNHRR56W.js +25 -0
- package/dist/chunk-RNHRR56W.js.map +1 -0
- package/dist/{chunk-NVMUSXA5.js → chunk-VUZIISP2.js} +1 -1
- package/dist/chunk-VUZIISP2.js.map +1 -0
- package/dist/{chunk-XAUB42TO.js → chunk-VZVUANDN.js} +6 -4
- package/dist/chunk-VZVUANDN.js.map +1 -0
- package/dist/index.browser.cjs +214 -85
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.cts +24 -9
- package/dist/index.browser.d.ts +24 -9
- package/dist/index.browser.js +11 -10
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +214 -85
- package/dist/index.cjs.map +1 -1
- package/dist/index.common.cjs +214 -85
- package/dist/index.common.cjs.map +1 -1
- package/dist/index.common.d.cts +2 -2
- package/dist/index.common.d.ts +2 -2
- package/dist/index.common.js +9 -8
- package/dist/index.d.cts +15 -6
- package/dist/index.d.ts +15 -6
- package/dist/index.js +13 -12
- package/dist/index.js.map +1 -1
- package/dist/narou-DBa12V_l.d.ts +404 -0
- package/dist/narou-DCp4aGfA.d.cts +404 -0
- package/dist/narou-fetch.cjs +4 -1
- package/dist/narou-fetch.cjs.map +1 -1
- package/dist/narou-fetch.d.cts +2 -2
- package/dist/narou-fetch.d.ts +2 -2
- package/dist/narou-fetch.js +4 -4
- package/dist/narou-jsonp.cjs +4 -1
- package/dist/narou-jsonp.cjs.map +1 -1
- package/dist/narou-jsonp.d.cts +2 -2
- package/dist/narou-jsonp.d.ts +2 -2
- package/dist/narou-jsonp.js +4 -4
- package/dist/narou-ranking-results.d.cts +2 -2
- package/dist/narou-ranking-results.d.ts +2 -2
- package/dist/{narou-search-results-DWCJWTC5.d.cts → narou-search-results-C21hWrnL.d.cts} +2 -2
- package/dist/{narou-search-results-D5yqPRZ7.d.ts → narou-search-results-DT0YdaBn.d.ts} +2 -2
- package/dist/narou-search-results.cjs.map +1 -1
- package/dist/narou-search-results.d.cts +1 -1
- package/dist/narou-search-results.d.ts +1 -1
- package/dist/narou-search-results.js +1 -1
- package/dist/narou.cjs +4 -1
- package/dist/narou.cjs.map +1 -1
- package/dist/narou.d.cts +2 -2
- package/dist/narou.d.ts +2 -2
- package/dist/narou.js +2 -2
- package/dist/params.cjs.map +1 -1
- package/dist/params.d.cts +1 -1
- package/dist/params.d.ts +1 -1
- package/dist/params.js +1 -1
- package/dist/ranking-history.cjs +11 -3
- package/dist/ranking-history.cjs.map +1 -1
- package/dist/ranking-history.d.cts +12 -1
- package/dist/ranking-history.d.ts +12 -1
- package/dist/ranking-history.js +2 -1
- package/dist/ranking.cjs +186 -77
- package/dist/ranking.cjs.map +1 -1
- package/dist/ranking.d.cts +69 -8
- package/dist/ranking.d.ts +69 -8
- package/dist/ranking.js +4 -3
- package/dist/search-builder-r18.cjs +118 -59
- package/dist/search-builder-r18.cjs.map +1 -1
- package/dist/search-builder-r18.d.cts +19 -6
- package/dist/search-builder-r18.d.ts +19 -6
- package/dist/search-builder-r18.js +3 -3
- package/dist/search-builder.cjs +135 -69
- package/dist/search-builder.cjs.map +1 -1
- package/dist/search-builder.d.cts +2 -2
- package/dist/search-builder.d.ts +2 -2
- package/dist/search-builder.js +2 -2
- package/dist/user-search.cjs +37 -13
- package/dist/user-search.cjs.map +1 -1
- package/dist/user-search.d.cts +2 -2
- package/dist/user-search.d.ts +2 -2
- package/dist/user-search.js +3 -3
- package/dist/util/date.cjs +51 -0
- package/dist/util/date.cjs.map +1 -0
- package/dist/util/date.d.cts +21 -0
- package/dist/util/date.d.ts +21 -0
- package/dist/util/date.js +11 -0
- package/dist/util/date.js.map +1 -0
- package/dist/util/jsonp.cjs.map +1 -1
- package/dist/util/jsonp.d.cts +36 -0
- package/dist/util/jsonp.d.ts +36 -0
- package/dist/util/jsonp.js +1 -1
- package/dist/util/type.cjs.map +1 -1
- package/dist/util/type.d.cts +23 -0
- package/dist/util/type.d.ts +23 -0
- package/dist/util/unzipp.cjs.map +1 -1
- package/dist/util/unzipp.d.cts +9 -0
- package/dist/util/unzipp.d.ts +9 -0
- package/dist/util/unzipp.js +1 -1
- package/package.json +34 -36
- package/pnpm-lock.yaml +2114 -1991
- package/src/index.browser.ts +21 -5
- package/src/index.ts +11 -2
- package/src/narou-search-results.ts +2 -1
- package/src/narou.ts +4 -1
- package/src/params.ts +1 -1
- package/src/ranking-history.ts +13 -4
- package/src/ranking.ts +79 -15
- package/src/search-builder-r18.ts +17 -4
- package/src/search-builder.ts +176 -73
- package/src/util/date.ts +38 -0
- package/src/util/jsonp.ts +61 -6
- package/src/util/type.ts +23 -0
- package/src/util/unzipp.ts +9 -0
- package/dist/chunk-4VC3246A.js +0 -83
- package/dist/chunk-4VC3246A.js.map +0 -1
- package/dist/chunk-CDOBNSCL.js.map +0 -1
- package/dist/chunk-NVMUSXA5.js.map +0 -1
- package/dist/chunk-P7QOZBII.js +0 -386
- package/dist/chunk-P7QOZBII.js.map +0 -1
- package/dist/chunk-RITMMCZE.js.map +0 -1
- package/dist/chunk-WYSPGQ3S.js +0 -44
- package/dist/chunk-WYSPGQ3S.js.map +0 -1
- package/dist/chunk-XAUB42TO.js.map +0 -1
- package/dist/chunk-XVH2CU2Q.js.map +0 -1
- package/dist/narou-CatW_TC9.d.cts +0 -301
- package/dist/narou-fH9osIoh.d.ts +0 -301
- /package/dist/{chunk-K22KVNAH.js.map → chunk-DEQICAN3.js.map} +0 -0
- /package/dist/{chunk-AZT2OXBZ.js.map → chunk-LQLNWSWV.js.map} +0 -0
- /package/dist/{chunk-SNPBEVCY.js.map → chunk-PLEM2AOH.js.map} +0 -0
package/dist/ranking.cjs
CHANGED
|
@@ -231,14 +231,30 @@ var SearchBuilderBase = class {
|
|
|
231
231
|
/**
|
|
232
232
|
* constructor
|
|
233
233
|
* @private
|
|
234
|
+
* @param params クエリパラメータ
|
|
235
|
+
* @param api NarouNovel インスタンス
|
|
234
236
|
*/
|
|
235
237
|
constructor(params = {}, api) {
|
|
236
238
|
this.params = params;
|
|
237
239
|
this.api = api;
|
|
238
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* 配列から重複を除去する
|
|
243
|
+
* @protected
|
|
244
|
+
* @static
|
|
245
|
+
* @param array 配列
|
|
246
|
+
* @returns 重複を除去した配列
|
|
247
|
+
*/
|
|
239
248
|
static distinct(array) {
|
|
240
249
|
return Array.from(new Set(array));
|
|
241
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* 配列をハイフン区切りの文字列に変換する
|
|
253
|
+
* @protected
|
|
254
|
+
* @static
|
|
255
|
+
* @param n 文字列または数値の配列、あるいは単一の文字列または数値
|
|
256
|
+
* @returns ハイフン区切りの文字列
|
|
257
|
+
*/
|
|
242
258
|
static array2string(n) {
|
|
243
259
|
if (Array.isArray(n)) {
|
|
244
260
|
return this.distinct(n).join("-");
|
|
@@ -247,44 +263,48 @@ var SearchBuilderBase = class {
|
|
|
247
263
|
}
|
|
248
264
|
}
|
|
249
265
|
/**
|
|
250
|
-
*
|
|
251
|
-
* @
|
|
266
|
+
* 取得件数を指定する (lim)
|
|
267
|
+
* @param num 取得件数 (1-500)
|
|
268
|
+
* @return {this}
|
|
252
269
|
*/
|
|
253
270
|
limit(num) {
|
|
254
271
|
this.set({ lim: num });
|
|
255
272
|
return this;
|
|
256
273
|
}
|
|
257
274
|
/**
|
|
258
|
-
*
|
|
259
|
-
* @
|
|
275
|
+
* 取得開始位置を指定する (st)
|
|
276
|
+
* @param num 取得開始位置 (1-)
|
|
277
|
+
* @return {this}
|
|
260
278
|
*/
|
|
261
279
|
start(num) {
|
|
262
280
|
this.set({ st: num });
|
|
263
281
|
return this;
|
|
264
282
|
}
|
|
265
283
|
/**
|
|
266
|
-
*
|
|
267
|
-
* @
|
|
284
|
+
* ページ番号と1ページあたりの件数で取得範囲を指定する
|
|
285
|
+
* @param no ページ番号 (0-)
|
|
286
|
+
* @param count 1ページあたりの件数 (デフォルト: 20)
|
|
287
|
+
* @return {this}
|
|
268
288
|
*/
|
|
269
289
|
page(no, count = 20) {
|
|
270
290
|
return this.limit(count).start(no * count);
|
|
271
291
|
}
|
|
272
292
|
/**
|
|
273
|
-
*
|
|
274
|
-
*
|
|
293
|
+
* 出力順序を指定する (order)
|
|
294
|
+
* 指定しない場合は新着順となります。
|
|
275
295
|
* @param {TOrder} order 出力順序
|
|
276
|
-
* @return {
|
|
296
|
+
* @return {this}
|
|
277
297
|
*/
|
|
278
298
|
order(order) {
|
|
279
299
|
this.set({ order });
|
|
280
300
|
return this;
|
|
281
301
|
}
|
|
282
302
|
/**
|
|
283
|
-
* gzip
|
|
303
|
+
* gzip圧縮レベルを指定する (gzip)
|
|
284
304
|
*
|
|
285
305
|
* 転送量上限を減らすためにも推奨
|
|
286
306
|
* @param {GzipLevel} level gzip圧縮レベル(1~5)
|
|
287
|
-
* @return {
|
|
307
|
+
* @return {this}
|
|
288
308
|
*/
|
|
289
309
|
gzip(level) {
|
|
290
310
|
this.set({ gzip: level });
|
|
@@ -292,8 +312,9 @@ var SearchBuilderBase = class {
|
|
|
292
312
|
}
|
|
293
313
|
/**
|
|
294
314
|
* クエリパラメータをセットする
|
|
295
|
-
* @
|
|
296
|
-
* @
|
|
315
|
+
* @protected
|
|
316
|
+
* @param obj セットするパラメータ
|
|
317
|
+
* @return {this}
|
|
297
318
|
*/
|
|
298
319
|
set(obj) {
|
|
299
320
|
this.params = { ...this.params, ...obj };
|
|
@@ -301,6 +322,9 @@ var SearchBuilderBase = class {
|
|
|
301
322
|
}
|
|
302
323
|
/**
|
|
303
324
|
* クエリパラメータを削除する
|
|
325
|
+
* @protected
|
|
326
|
+
* @param key 削除するパラメータのキー
|
|
327
|
+
* @returns {this}
|
|
304
328
|
*/
|
|
305
329
|
unset(key) {
|
|
306
330
|
delete this.params[key];
|
|
@@ -309,56 +333,65 @@ var SearchBuilderBase = class {
|
|
|
309
333
|
};
|
|
310
334
|
var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilderBase {
|
|
311
335
|
/**
|
|
312
|
-
*
|
|
313
|
-
*
|
|
336
|
+
* 検索語を指定します (word)。
|
|
337
|
+
* 半角または全角スペースで区切るとAND抽出になります。部分一致でHITします。
|
|
338
|
+
* @param word 検索語
|
|
339
|
+
* @return {this}
|
|
314
340
|
*/
|
|
315
341
|
word(word) {
|
|
316
342
|
this.set({ word });
|
|
317
343
|
return this;
|
|
318
344
|
}
|
|
319
345
|
/**
|
|
320
|
-
*
|
|
321
|
-
*
|
|
346
|
+
* 除外したい単語を指定します (notword)。
|
|
347
|
+
* スペースで区切ることにより除外する単語を増やせます。部分一致で除外されます。
|
|
348
|
+
* @param word 除外語
|
|
349
|
+
* @return {this}
|
|
322
350
|
*/
|
|
323
351
|
notWord(word) {
|
|
324
352
|
this.set({ notword: word });
|
|
325
353
|
return this;
|
|
326
354
|
}
|
|
327
355
|
/**
|
|
328
|
-
*
|
|
329
|
-
* @
|
|
356
|
+
* 検索対象を作品名に限定するかどうかを指定します (title)。
|
|
357
|
+
* @param bool trueの場合、作品名を検索対象とする (デフォルト: true)
|
|
358
|
+
* @return {this}
|
|
330
359
|
*/
|
|
331
360
|
byTitle(bool = true) {
|
|
332
361
|
this.set({ title: bool ? BooleanNumber.True : BooleanNumber.False });
|
|
333
362
|
return this;
|
|
334
363
|
}
|
|
335
364
|
/**
|
|
336
|
-
*
|
|
337
|
-
* @
|
|
365
|
+
* 検索対象をあらすじに限定するかどうかを指定します (ex)。
|
|
366
|
+
* @param bool trueの場合、あらすじを検索対象とする (デフォルト: true)
|
|
367
|
+
* @return {this}
|
|
338
368
|
*/
|
|
339
369
|
byOutline(bool = true) {
|
|
340
370
|
this.set({ ex: bool ? BooleanNumber.True : BooleanNumber.False });
|
|
341
371
|
return this;
|
|
342
372
|
}
|
|
343
373
|
/**
|
|
344
|
-
*
|
|
345
|
-
* @
|
|
374
|
+
* 検索対象をキーワードに限定するかどうかを指定します (keyword)。
|
|
375
|
+
* @param bool trueの場合、キーワードを検索対象とする (デフォルト: true)
|
|
376
|
+
* @return {this}
|
|
346
377
|
*/
|
|
347
378
|
byKeyword(bool = true) {
|
|
348
379
|
this.set({ keyword: bool ? BooleanNumber.True : BooleanNumber.False });
|
|
349
380
|
return this;
|
|
350
381
|
}
|
|
351
382
|
/**
|
|
352
|
-
*
|
|
353
|
-
* @
|
|
383
|
+
* 検索対象を作者名に限定するかどうかを指定します (wname)。
|
|
384
|
+
* @param bool trueの場合、作者名を検索対象とする (デフォルト: true)
|
|
385
|
+
* @return {this}
|
|
354
386
|
*/
|
|
355
387
|
byAuthor(bool = true) {
|
|
356
388
|
this.set({ wname: bool ? BooleanNumber.True : BooleanNumber.False });
|
|
357
389
|
return this;
|
|
358
390
|
}
|
|
359
391
|
/**
|
|
360
|
-
*
|
|
361
|
-
* @
|
|
392
|
+
* ボーイズラブ作品を抽出または除外します (isbl/notbl)。
|
|
393
|
+
* @param bool trueの場合、ボーイズラブ作品を抽出する (デフォルト: true)。falseの場合、除外する。
|
|
394
|
+
* @return {this}
|
|
362
395
|
*/
|
|
363
396
|
isBL(bool = true) {
|
|
364
397
|
if (bool) {
|
|
@@ -369,8 +402,9 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
369
402
|
return this;
|
|
370
403
|
}
|
|
371
404
|
/**
|
|
372
|
-
*
|
|
373
|
-
* @
|
|
405
|
+
* ガールズラブ作品を抽出または除外します (isgl/notgl)。
|
|
406
|
+
* @param bool trueの場合、ガールズラブ作品を抽出する (デフォルト: true)。falseの場合、除外する。
|
|
407
|
+
* @return {this}
|
|
374
408
|
*/
|
|
375
409
|
isGL(bool = true) {
|
|
376
410
|
if (bool) {
|
|
@@ -381,8 +415,9 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
381
415
|
return this;
|
|
382
416
|
}
|
|
383
417
|
/**
|
|
384
|
-
*
|
|
385
|
-
* @
|
|
418
|
+
* 残酷な描写あり作品を抽出または除外します (iszankoku/notzankoku)。
|
|
419
|
+
* @param bool trueの場合、残酷な描写あり作品を抽出する (デフォルト: true)。falseの場合、除外する。
|
|
420
|
+
* @return {this}
|
|
386
421
|
*/
|
|
387
422
|
isZankoku(bool = true) {
|
|
388
423
|
if (bool) {
|
|
@@ -393,8 +428,9 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
393
428
|
return this;
|
|
394
429
|
}
|
|
395
430
|
/**
|
|
396
|
-
*
|
|
397
|
-
* @
|
|
431
|
+
* 異世界転生作品を抽出または除外します (istensei/nottensei)。
|
|
432
|
+
* @param bool trueの場合、異世界転生作品を抽出する (デフォルト: true)。falseの場合、除外する。
|
|
433
|
+
* @return {this}
|
|
398
434
|
*/
|
|
399
435
|
isTensei(bool = true) {
|
|
400
436
|
if (bool) {
|
|
@@ -405,8 +441,9 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
405
441
|
return this;
|
|
406
442
|
}
|
|
407
443
|
/**
|
|
408
|
-
*
|
|
409
|
-
* @
|
|
444
|
+
* 異世界転移作品を抽出または除外します (istenni/nottenni)。
|
|
445
|
+
* @param bool trueの場合、異世界転移作品を抽出する (デフォルト: true)。falseの場合、除外する。
|
|
446
|
+
* @return {this}
|
|
410
447
|
*/
|
|
411
448
|
isTenni(bool = true) {
|
|
412
449
|
if (bool) {
|
|
@@ -417,16 +454,18 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
417
454
|
return this;
|
|
418
455
|
}
|
|
419
456
|
/**
|
|
420
|
-
*
|
|
421
|
-
* @return {
|
|
457
|
+
* 異世界転生または異世界転移作品を抽出します (istt)。
|
|
458
|
+
* @return {this}
|
|
422
459
|
*/
|
|
423
460
|
isTT() {
|
|
424
461
|
this.set({ istt: BooleanNumber.True });
|
|
425
462
|
return this;
|
|
426
463
|
}
|
|
427
464
|
/**
|
|
428
|
-
*
|
|
429
|
-
*
|
|
465
|
+
* 抽出する作品の文字数を指定します (length)。
|
|
466
|
+
* 範囲指定する場合は、最小文字数と最大文字数をハイフン(-)記号で区切ってください。
|
|
467
|
+
* @param length 文字数、または[最小文字数, 最大文字数]
|
|
468
|
+
* @return {this}
|
|
430
469
|
*/
|
|
431
470
|
length(length) {
|
|
432
471
|
this.set({ length: _NovelSearchBuilderBase.array2string(length) });
|
|
@@ -443,59 +482,66 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
443
482
|
return this;
|
|
444
483
|
}
|
|
445
484
|
/**
|
|
446
|
-
*
|
|
447
|
-
* @
|
|
485
|
+
* 抽出する作品の挿絵数を指定します (sasie)。
|
|
486
|
+
* @param num 挿絵数、または[最小挿絵数, 最大挿絵数]
|
|
487
|
+
* @return {this}
|
|
448
488
|
*/
|
|
449
489
|
sasie(num) {
|
|
450
490
|
this.set({ sasie: _NovelSearchBuilderBase.array2string(num) });
|
|
451
491
|
return this;
|
|
452
492
|
}
|
|
453
493
|
/**
|
|
454
|
-
*
|
|
455
|
-
* @
|
|
494
|
+
* 抽出する作品の予想読了時間を分単位で指定します (time)。
|
|
495
|
+
* @param num 読了時間(分)、または[最小読了時間, 最大読了時間]
|
|
496
|
+
* @return {this}
|
|
456
497
|
*/
|
|
457
498
|
time(num) {
|
|
458
499
|
this.set({ time: _NovelSearchBuilderBase.array2string(num) });
|
|
459
500
|
return this;
|
|
460
501
|
}
|
|
461
502
|
/**
|
|
462
|
-
*
|
|
463
|
-
* @
|
|
503
|
+
* Nコードを指定して取得します (ncode)。
|
|
504
|
+
* @param ncodes Nコード、またはNコードの配列
|
|
505
|
+
* @return {this}
|
|
464
506
|
*/
|
|
465
507
|
ncode(ncodes) {
|
|
466
508
|
this.set({ ncode: _NovelSearchBuilderBase.array2string(ncodes) });
|
|
467
509
|
return this;
|
|
468
510
|
}
|
|
469
511
|
/**
|
|
470
|
-
*
|
|
471
|
-
* @
|
|
512
|
+
* 抽出する小説タイプを指定します (type)。
|
|
513
|
+
* @param type 小説タイプ (t: 短編, r: 連載中, er: 完結済連載小説, ter: 短編と完結済連載小説, re: 連載中と完結済連載小説)
|
|
514
|
+
* @return {this}
|
|
472
515
|
*/
|
|
473
516
|
type(type) {
|
|
474
517
|
this.set({ type });
|
|
475
518
|
return this;
|
|
476
519
|
}
|
|
477
520
|
/**
|
|
478
|
-
*
|
|
479
|
-
*
|
|
521
|
+
* 抽出する作品の文体を指定します (buntai)。
|
|
522
|
+
* 複数指定する場合はハイフン(-)で区切ってください。
|
|
523
|
+
* @param buntai 文体コード、または文体コードの配列
|
|
524
|
+
* @return {this}
|
|
480
525
|
*/
|
|
481
526
|
buntai(buntai) {
|
|
482
527
|
this.set({ buntai: _NovelSearchBuilderBase.array2string(buntai) });
|
|
483
528
|
return this;
|
|
484
529
|
}
|
|
485
530
|
/**
|
|
486
|
-
*
|
|
487
|
-
* @
|
|
531
|
+
* 連載停止中作品に関する指定をします (stop)。
|
|
532
|
+
* @param bool trueの場合、長期連載停止中のみ取得する (デフォルト: true)。falseの場合、長期連載停止中を除外する。
|
|
533
|
+
* @return {this}
|
|
488
534
|
*/
|
|
489
535
|
isStop(bool = true) {
|
|
490
536
|
this.set({ stop: bool ? StopParam.Stopping : StopParam.NoStopping });
|
|
491
537
|
return this;
|
|
492
538
|
}
|
|
493
539
|
/**
|
|
494
|
-
*
|
|
495
|
-
* @return {
|
|
540
|
+
* ピックアップ作品のみを取得します (ispickup)。
|
|
541
|
+
* @return {this}
|
|
496
542
|
*/
|
|
497
|
-
isPickup(
|
|
498
|
-
this.set({ ispickup:
|
|
543
|
+
isPickup() {
|
|
544
|
+
this.set({ ispickup: BooleanNumber.True });
|
|
499
545
|
return this;
|
|
500
546
|
}
|
|
501
547
|
lastUpdate(x, y) {
|
|
@@ -536,48 +582,59 @@ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilder
|
|
|
536
582
|
};
|
|
537
583
|
var SearchBuilder = class _SearchBuilder extends NovelSearchBuilderBase {
|
|
538
584
|
/**
|
|
539
|
-
*
|
|
540
|
-
*
|
|
585
|
+
* 大ジャンルを指定して取得します (biggenre)。
|
|
586
|
+
* 複数指定する場合はハイフン(-)で区切ってください。
|
|
587
|
+
* @param genre 大ジャンルコード、または大ジャンルコードの配列
|
|
588
|
+
* @return {this}
|
|
541
589
|
*/
|
|
542
590
|
bigGenre(genre) {
|
|
543
591
|
this.set({ biggenre: _SearchBuilder.array2string(genre) });
|
|
544
592
|
return this;
|
|
545
593
|
}
|
|
546
594
|
/**
|
|
547
|
-
*
|
|
548
|
-
*
|
|
595
|
+
* 除外したい大ジャンルを指定します (notbiggenre)。
|
|
596
|
+
* 複数指定する場合はハイフン(-)で区切ってください。
|
|
597
|
+
* @param genre 除外する大ジャンルコード、または大ジャンルコードの配列
|
|
598
|
+
* @return {this}
|
|
549
599
|
*/
|
|
550
600
|
notBigGenre(genre) {
|
|
551
601
|
this.set({ notbiggenre: _SearchBuilder.array2string(genre) });
|
|
552
602
|
return this;
|
|
553
603
|
}
|
|
554
604
|
/**
|
|
555
|
-
*
|
|
556
|
-
*
|
|
605
|
+
* ジャンルを指定して取得します (genre)。
|
|
606
|
+
* 複数指定する場合はハイフン(-)で区切ってください。
|
|
607
|
+
* @param genre ジャンルコード、またはジャンルコードの配列
|
|
608
|
+
* @return {this}
|
|
557
609
|
*/
|
|
558
610
|
genre(genre) {
|
|
559
611
|
this.set({ genre: _SearchBuilder.array2string(genre) });
|
|
560
612
|
return this;
|
|
561
613
|
}
|
|
562
614
|
/**
|
|
563
|
-
*
|
|
564
|
-
*
|
|
615
|
+
* 除外したいジャンルを指定します (notgenre)。
|
|
616
|
+
* 複数指定する場合はハイフン(-)で区切ってください。
|
|
617
|
+
* @param genre 除外するジャンルコード、またはジャンルコードの配列
|
|
618
|
+
* @return {this}
|
|
565
619
|
*/
|
|
566
620
|
notGenre(genre) {
|
|
567
621
|
this.set({ notgenre: _SearchBuilder.array2string(genre) });
|
|
568
622
|
return this;
|
|
569
623
|
}
|
|
570
624
|
/**
|
|
571
|
-
*
|
|
572
|
-
*
|
|
625
|
+
* ユーザIDを指定して取得します (userid)。
|
|
626
|
+
* 複数指定する場合はハイフン(-)で区切ってください。
|
|
627
|
+
* @param ids ユーザID、またはユーザIDの配列
|
|
628
|
+
* @return {this}
|
|
573
629
|
*/
|
|
574
630
|
userId(ids) {
|
|
575
631
|
this.set({ userid: _SearchBuilder.array2string(ids) });
|
|
576
632
|
return this;
|
|
577
633
|
}
|
|
578
634
|
/**
|
|
579
|
-
*
|
|
580
|
-
* @
|
|
635
|
+
* R15作品を抽出または除外します (isr15/notr15)。
|
|
636
|
+
* @param bool trueの場合、R15作品を抽出する (デフォルト: true)。falseの場合、除外する。
|
|
637
|
+
* @return {this}
|
|
581
638
|
*/
|
|
582
639
|
isR15(bool = true) {
|
|
583
640
|
if (bool) {
|
|
@@ -588,37 +645,76 @@ var SearchBuilder = class _SearchBuilder extends NovelSearchBuilderBase {
|
|
|
588
645
|
return this;
|
|
589
646
|
}
|
|
590
647
|
/**
|
|
591
|
-
*
|
|
592
|
-
*
|
|
648
|
+
* 出力する項目を個別に指定します (of)。
|
|
649
|
+
* 未指定時は全項目出力されます。転送量軽減のため、このパラメータの使用が推奨されます。
|
|
650
|
+
* 複数項目を出力する場合はハイフン(-)記号で区切ってください。
|
|
651
|
+
* @param fields 出力するフィールド名、またはフィールド名の配列
|
|
652
|
+
* @return {SearchBuilder<SearchResultFields<TFields>, TOpt>} 型が更新されたビルダー
|
|
593
653
|
*/
|
|
594
654
|
fields(fields) {
|
|
595
655
|
this.set({ of: _SearchBuilder.array2string(fields) });
|
|
596
656
|
return this;
|
|
597
657
|
}
|
|
658
|
+
/**
|
|
659
|
+
* 出力オプション項目を指定します (opt)。
|
|
660
|
+
* 複数項目を出力する場合はハイフン(-)記号で区切ってください。
|
|
661
|
+
* @param option 出力するオプションフィールド名、またはオプションフィールド名の配列
|
|
662
|
+
* @return {SearchBuilder<T, SearchResultOptionalFields<TFields>>} 型が更新されたビルダー
|
|
663
|
+
*/
|
|
598
664
|
opt(option) {
|
|
599
665
|
this.set({ opt: _SearchBuilder.array2string(option) });
|
|
600
666
|
return this;
|
|
601
667
|
}
|
|
602
668
|
};
|
|
603
669
|
|
|
670
|
+
// src/util/date.ts
|
|
671
|
+
function formatDate(date) {
|
|
672
|
+
const year = date.getFullYear();
|
|
673
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
674
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
675
|
+
return `${year}${month}${day}`;
|
|
676
|
+
}
|
|
677
|
+
function addDays(date, days) {
|
|
678
|
+
const result = new Date(date);
|
|
679
|
+
result.setDate(result.getDate() + days);
|
|
680
|
+
return result;
|
|
681
|
+
}
|
|
682
|
+
|
|
604
683
|
// src/ranking.ts
|
|
605
|
-
var import_date_fns = require("date-fns");
|
|
606
|
-
var dateFormat = "yyyyMMdd";
|
|
607
684
|
var RankingBuilder = class {
|
|
608
685
|
/**
|
|
609
686
|
* constructor
|
|
687
|
+
* @param params - 初期クエリパラメータ
|
|
688
|
+
* @param api - API実行クラスのインスタンス
|
|
610
689
|
* @private
|
|
611
690
|
*/
|
|
612
691
|
constructor(params = {}, api) {
|
|
613
692
|
this.params = params;
|
|
614
693
|
this.api = api;
|
|
615
|
-
this.date$ = (
|
|
694
|
+
this.date$ = addDays(/* @__PURE__ */ new Date(), -1);
|
|
616
695
|
this.type$ = RankingType.Daily;
|
|
617
696
|
}
|
|
697
|
+
/**
|
|
698
|
+
* ランキング集計対象の日付を指定します。
|
|
699
|
+
*
|
|
700
|
+
* - 日間: 任意の日付
|
|
701
|
+
* - 週間: 火曜日の日付
|
|
702
|
+
* - 月間・四半期: 1日の日付
|
|
703
|
+
*
|
|
704
|
+
* @param date 集計対象の日付
|
|
705
|
+
* @returns {RankingBuilder} this
|
|
706
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
707
|
+
*/
|
|
618
708
|
date(date) {
|
|
619
709
|
this.date$ = date;
|
|
620
710
|
return this;
|
|
621
711
|
}
|
|
712
|
+
/**
|
|
713
|
+
* ランキング種別を指定します。
|
|
714
|
+
* @param type ランキング種別
|
|
715
|
+
* @returns {RankingBuilder} this
|
|
716
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
717
|
+
*/
|
|
622
718
|
type(type) {
|
|
623
719
|
this.type$ = type;
|
|
624
720
|
return this;
|
|
@@ -635,23 +731,36 @@ var RankingBuilder = class {
|
|
|
635
731
|
return this;
|
|
636
732
|
}
|
|
637
733
|
/**
|
|
638
|
-
*
|
|
734
|
+
* クエリパラメータを内部的にセットします。
|
|
735
|
+
* @param obj - セットするパラメータオブジェクト
|
|
736
|
+
* @returns {RankingBuilder} this
|
|
639
737
|
* @private
|
|
640
|
-
* @return {RankingBuilder} this
|
|
641
738
|
*/
|
|
642
739
|
set(obj) {
|
|
643
740
|
Object.assign(this.params, obj);
|
|
644
741
|
return this;
|
|
645
742
|
}
|
|
646
743
|
/**
|
|
647
|
-
*
|
|
648
|
-
*
|
|
744
|
+
* 設定されたパラメータに基づき、なろう小説ランキングAPIへのリクエストを実行します。
|
|
745
|
+
*
|
|
746
|
+
* 返される結果には、Nコード、ポイント、順位が含まれます。
|
|
747
|
+
* @returns {Promise<NarouRankingResult[]>} ランキング結果の配列
|
|
748
|
+
* @see https://dev.syosetu.com/man/rankapi/#output
|
|
649
749
|
*/
|
|
650
750
|
execute() {
|
|
651
|
-
const date = (
|
|
751
|
+
const date = formatDate(this.date$);
|
|
652
752
|
this.set({ rtype: `${date}-${this.type$}` });
|
|
653
753
|
return this.api.executeRanking(this.params);
|
|
654
754
|
}
|
|
755
|
+
/**
|
|
756
|
+
* ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。
|
|
757
|
+
*
|
|
758
|
+
* @template TFields - 取得する小説情報のフィールド型
|
|
759
|
+
* @template TOpt - オプショナルな取得フィールドの型
|
|
760
|
+
* @param fields - 取得するフィールドの配列 (省略時はデフォルトフィールド)
|
|
761
|
+
* @param opt - オプショナルな取得フィールド (`weekly` など)
|
|
762
|
+
* @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列
|
|
763
|
+
*/
|
|
655
764
|
async executeWithFields(fields = [], opt) {
|
|
656
765
|
const ranking = await this.execute();
|
|
657
766
|
const fields$ = Array.isArray(fields) ? fields.length == 0 ? [] : [...fields, Fields.ncode] : [fields, Fields.ncode];
|