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/src/index.browser.ts
CHANGED
|
@@ -12,9 +12,10 @@ export { NarouNovelJsonp };
|
|
|
12
12
|
const narouNovelJsonp = new NarouNovelJsonp();
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param {string} [word]
|
|
15
|
+
* なろう小説 API で小説を検索する
|
|
16
|
+
* @param {string} [word] 検索ワード
|
|
17
17
|
* @returns {SearchBuilder}
|
|
18
|
+
* @see https://dev.syosetu.com/man/api/
|
|
18
19
|
*/
|
|
19
20
|
export function search(
|
|
20
21
|
word = "",
|
|
@@ -26,9 +27,10 @@ export function search(
|
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
|
-
*
|
|
30
|
-
* @param {string} [word]
|
|
30
|
+
* 18禁小説 API で小説を検索する
|
|
31
|
+
* @param {string} [word] 検索ワード
|
|
31
32
|
* @returns {SearchBuilder}
|
|
33
|
+
* @see https://dev.syosetu.com/xman/api/
|
|
32
34
|
*/
|
|
33
35
|
export function searchR18(
|
|
34
36
|
word = "",
|
|
@@ -40,7 +42,10 @@ export function searchR18(
|
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
/**
|
|
43
|
-
*
|
|
45
|
+
* なろうユーザ検索 API でユーザを検索する
|
|
46
|
+
* @param {string} [word] - 検索ワード
|
|
47
|
+
* @returns {UserSearchBuilder}
|
|
48
|
+
* @see https://dev.syosetu.com/man/userapi/
|
|
44
49
|
*/
|
|
45
50
|
export function searchUser(word = "", api: NarouNovel = narouNovelJsonp) {
|
|
46
51
|
const builder = new UserSearchBuilder({}, api);
|
|
@@ -48,11 +53,22 @@ export function searchUser(word = "", api: NarouNovel = narouNovelJsonp) {
|
|
|
48
53
|
return builder;
|
|
49
54
|
}
|
|
50
55
|
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* なろう小説ランキング API でランキングを取得する
|
|
59
|
+
* @returns {RankingBuilder}
|
|
60
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
61
|
+
*/
|
|
51
62
|
export function ranking(api: NarouNovel = narouNovelJsonp): RankingBuilder {
|
|
52
63
|
const builder = new RankingBuilder({}, api);
|
|
53
64
|
return builder;
|
|
54
65
|
}
|
|
55
66
|
|
|
67
|
+
/**
|
|
68
|
+
* なろう殿堂入り API でランキング履歴を取得する
|
|
69
|
+
* @param {string} ncode 小説のNコード
|
|
70
|
+
* @see https://dev.syosetu.com/man/rankinapi/
|
|
71
|
+
*/
|
|
56
72
|
export async function rankingHistory(
|
|
57
73
|
ncode: string,
|
|
58
74
|
api: NarouNovel = narouNovelJsonp
|
package/src/index.ts
CHANGED
|
@@ -14,8 +14,9 @@ const narouNovelFetch = new NarouNovelFetch();
|
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* なろう小説 API で小説を検索する
|
|
17
|
-
* @param {string} [word]
|
|
17
|
+
* @param {string} [word] 検索ワード
|
|
18
18
|
* @returns {SearchBuilder}
|
|
19
|
+
* @see https://dev.syosetu.com/man/api/
|
|
19
20
|
*/
|
|
20
21
|
export function search(
|
|
21
22
|
word = "",
|
|
@@ -28,8 +29,9 @@ export function search(
|
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
31
|
* 18禁小説 API で小説を検索する
|
|
31
|
-
* @param {string} [word]
|
|
32
|
+
* @param {string} [word] 検索ワード
|
|
32
33
|
* @returns {SearchBuilder}
|
|
34
|
+
* @see https://dev.syosetu.com/xman/api/
|
|
33
35
|
*/
|
|
34
36
|
export function searchR18(
|
|
35
37
|
word = "",
|
|
@@ -42,6 +44,9 @@ export function searchR18(
|
|
|
42
44
|
|
|
43
45
|
/**
|
|
44
46
|
* なろうユーザ検索 API でユーザを検索する
|
|
47
|
+
* @param {string} [word] - 検索ワード
|
|
48
|
+
* @returns {UserSearchBuilder}
|
|
49
|
+
* @see https://dev.syosetu.com/man/userapi/
|
|
45
50
|
*/
|
|
46
51
|
export function searchUser(word = "", api: NarouNovel = narouNovelFetch) {
|
|
47
52
|
const builder = new UserSearchBuilder({}, api);
|
|
@@ -51,6 +56,8 @@ export function searchUser(word = "", api: NarouNovel = narouNovelFetch) {
|
|
|
51
56
|
|
|
52
57
|
/**
|
|
53
58
|
* なろう小説ランキング API でランキングを取得する
|
|
59
|
+
* @returns {RankingBuilder}
|
|
60
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
54
61
|
*/
|
|
55
62
|
export function ranking(api: NarouNovel = narouNovelFetch): RankingBuilder {
|
|
56
63
|
const builder = new RankingBuilder({}, api);
|
|
@@ -59,6 +66,8 @@ export function ranking(api: NarouNovel = narouNovelFetch): RankingBuilder {
|
|
|
59
66
|
|
|
60
67
|
/**
|
|
61
68
|
* なろう殿堂入り API でランキング履歴を取得する
|
|
69
|
+
* @param {string} ncode 小説のNコード
|
|
70
|
+
* @see https://dev.syosetu.com/man/rankinapi/
|
|
62
71
|
*/
|
|
63
72
|
export async function rankingHistory(
|
|
64
73
|
ncode: string,
|
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
R18Fields,
|
|
9
9
|
OptionalFields,
|
|
10
10
|
UserFields,
|
|
11
|
+
UserSearchParams,
|
|
11
12
|
} from "./params.js";
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -45,7 +46,7 @@ export default class NarouSearchResults<T, TKey extends keyof T> {
|
|
|
45
46
|
*/
|
|
46
47
|
constructor(
|
|
47
48
|
[header, ...result]: [{ allcount: number }, ...Pick<T, TKey>[]],
|
|
48
|
-
params: SearchParams
|
|
49
|
+
params: SearchParams | UserSearchParams
|
|
49
50
|
) {
|
|
50
51
|
const count = header.allcount;
|
|
51
52
|
const limit = params.lim ?? 20;
|
package/src/narou.ts
CHANGED
|
@@ -112,6 +112,9 @@ export default abstract class NarouNovel {
|
|
|
112
112
|
async executeUserSearch<T extends keyof UserSearchResult>(
|
|
113
113
|
params: UserSearchParams
|
|
114
114
|
): Promise<NarouSearchResults<UserSearchResult, T>> {
|
|
115
|
-
return
|
|
115
|
+
return new NarouSearchResults<UserSearchResult, T>(
|
|
116
|
+
await this.execute(params, "https://api.syosetu.com/userapi/api/"),
|
|
117
|
+
params
|
|
118
|
+
);
|
|
116
119
|
}
|
|
117
120
|
}
|
package/src/params.ts
CHANGED
package/src/ranking-history.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { parse } from "date-fns";
|
|
2
1
|
import type { RankingType } from "./params.js";
|
|
3
|
-
|
|
4
|
-
const dateFormat = "yyyyMMdd";
|
|
2
|
+
import { parseDate } from "./util/date.js";
|
|
5
3
|
|
|
6
4
|
export interface RankingHistoryRawResult {
|
|
7
5
|
rtype: `${string}-${RankingType}`;
|
|
@@ -16,12 +14,23 @@ export interface RankingHistoryResult {
|
|
|
16
14
|
rank: number;
|
|
17
15
|
}
|
|
18
16
|
|
|
17
|
+
/**
|
|
18
|
+
* 生のランキング履歴エントリを構造化された形式にフォーマットします。
|
|
19
|
+
*
|
|
20
|
+
* @param rankin - フォーマットする生のランキング履歴データ
|
|
21
|
+
* @returns 日付とタイプが解析されたフォーマット済みランキング履歴
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const rawData = { rtype: "20230101-daily", pt: 500, rank: 10 };
|
|
25
|
+
* const formattedData = formatRankingHistory(rawData);
|
|
26
|
+
* // 返り値: { type: "daily", date: [Dateオブジェクト], pt: 500, rank: 10 }
|
|
27
|
+
*/
|
|
19
28
|
export function formatRankingHistory(
|
|
20
29
|
rankin: RankingHistoryRawResult
|
|
21
30
|
): RankingHistoryResult {
|
|
22
31
|
const { rtype, pt, rank } = rankin;
|
|
23
32
|
const [_date, _type] = rtype.split("-");
|
|
24
|
-
const date =
|
|
33
|
+
const date = parseDate(_date);
|
|
25
34
|
const type = _type as RankingType;
|
|
26
35
|
|
|
27
36
|
return { type, date, pt, rank };
|
package/src/ranking.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { NarouRankingResult, RankingResult } from "./narou-ranking-results.js";
|
|
2
2
|
import SearchBuilder from "./search-builder.js";
|
|
3
3
|
import type { DefaultSearchResultFields } from "./search-builder.js";
|
|
4
|
-
import { addDays, format } from "date-fns";
|
|
5
4
|
import type {
|
|
6
5
|
GzipLevel,
|
|
7
6
|
OptionalFields,
|
|
@@ -13,19 +12,34 @@ import {
|
|
|
13
12
|
} from "./params.js";
|
|
14
13
|
import type NarouNovel from "./narou.js";
|
|
15
14
|
import type { SearchResultFields } from "./narou-search-results.js";
|
|
16
|
-
|
|
17
|
-
const dateFormat = "yyyyMMdd";
|
|
15
|
+
import { addDays, formatDate } from "./util/date.js";
|
|
18
16
|
|
|
19
17
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* なろう小説ランキングAPIのヘルパークラス。
|
|
19
|
+
*
|
|
20
|
+
* ランキング種別や日付を指定してランキングデータを取得します。
|
|
21
|
+
* また、取得したランキングデータに含まれるNコードを元に、
|
|
22
|
+
* なろう小説APIを利用して詳細な小説情報を取得することも可能です。
|
|
23
|
+
*
|
|
24
|
+
* @class RankingBuilder
|
|
25
|
+
* @see https://dev.syosetu.com/man/rankapi/ なろう小説ランキングAPI仕様
|
|
22
26
|
*/
|
|
23
27
|
export default class RankingBuilder {
|
|
28
|
+
/**
|
|
29
|
+
* ランキング集計対象の日付
|
|
30
|
+
* @protected
|
|
31
|
+
*/
|
|
24
32
|
protected date$: Date;
|
|
33
|
+
/**
|
|
34
|
+
* ランキング種別
|
|
35
|
+
* @protected
|
|
36
|
+
*/
|
|
25
37
|
protected type$: RankingType;
|
|
26
38
|
|
|
27
39
|
/**
|
|
28
40
|
* constructor
|
|
41
|
+
* @param params - 初期クエリパラメータ
|
|
42
|
+
* @param api - API実行クラスのインスタンス
|
|
29
43
|
* @private
|
|
30
44
|
*/
|
|
31
45
|
constructor(
|
|
@@ -36,15 +50,32 @@ export default class RankingBuilder {
|
|
|
36
50
|
* クエリパラメータ
|
|
37
51
|
* @protected
|
|
38
52
|
*/
|
|
39
|
-
this.date$ = addDays(Date
|
|
53
|
+
this.date$ = addDays(new Date(), -1);
|
|
40
54
|
this.type$ = RankingType.Daily;
|
|
41
55
|
}
|
|
42
56
|
|
|
57
|
+
/**
|
|
58
|
+
* ランキング集計対象の日付を指定します。
|
|
59
|
+
*
|
|
60
|
+
* - 日間: 任意の日付
|
|
61
|
+
* - 週間: 火曜日の日付
|
|
62
|
+
* - 月間・四半期: 1日の日付
|
|
63
|
+
*
|
|
64
|
+
* @param date 集計対象の日付
|
|
65
|
+
* @returns {RankingBuilder} this
|
|
66
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
67
|
+
*/
|
|
43
68
|
date(date: Date) {
|
|
44
69
|
this.date$ = date;
|
|
45
70
|
return this;
|
|
46
71
|
}
|
|
47
72
|
|
|
73
|
+
/**
|
|
74
|
+
* ランキング種別を指定します。
|
|
75
|
+
* @param type ランキング種別
|
|
76
|
+
* @returns {RankingBuilder} this
|
|
77
|
+
* @see https://dev.syosetu.com/man/rankapi/
|
|
78
|
+
*/
|
|
48
79
|
type(type: RankingType) {
|
|
49
80
|
this.type$ = type;
|
|
50
81
|
return this;
|
|
@@ -63,9 +94,10 @@ export default class RankingBuilder {
|
|
|
63
94
|
}
|
|
64
95
|
|
|
65
96
|
/**
|
|
66
|
-
*
|
|
97
|
+
* クエリパラメータを内部的にセットします。
|
|
98
|
+
* @param obj - セットするパラメータオブジェクト
|
|
99
|
+
* @returns {RankingBuilder} this
|
|
67
100
|
* @private
|
|
68
|
-
* @return {RankingBuilder} this
|
|
69
101
|
*/
|
|
70
102
|
protected set(obj: Partial<RankingParams>) {
|
|
71
103
|
Object.assign(this.params, obj);
|
|
@@ -73,33 +105,65 @@ export default class RankingBuilder {
|
|
|
73
105
|
}
|
|
74
106
|
|
|
75
107
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
108
|
+
* 設定されたパラメータに基づき、なろう小説ランキングAPIへのリクエストを実行します。
|
|
109
|
+
*
|
|
110
|
+
* 返される結果には、Nコード、ポイント、順位が含まれます。
|
|
111
|
+
* @returns {Promise<NarouRankingResult[]>} ランキング結果の配列
|
|
112
|
+
* @see https://dev.syosetu.com/man/rankapi/#output
|
|
78
113
|
*/
|
|
79
114
|
execute(): Promise<NarouRankingResult[]> {
|
|
80
|
-
const date =
|
|
115
|
+
const date = formatDate(this.date$);
|
|
81
116
|
this.set({ rtype: `${date}-${this.type$}` });
|
|
82
117
|
return this.api.executeRanking(this.params as RankingParams);
|
|
83
118
|
}
|
|
84
119
|
|
|
120
|
+
/**
|
|
121
|
+
* ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。
|
|
122
|
+
*/
|
|
85
123
|
async executeWithFields(): Promise<
|
|
86
124
|
RankingResult<DefaultSearchResultFields>[]
|
|
87
125
|
>;
|
|
88
|
-
|
|
126
|
+
/**
|
|
127
|
+
* ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。
|
|
128
|
+
*
|
|
129
|
+
* @template TFields - 取得する小説情報のフィールド型
|
|
130
|
+
* @param fields - 取得するフィールドの配列
|
|
131
|
+
* @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列
|
|
132
|
+
*/
|
|
89
133
|
async executeWithFields<TFields extends Fields>(
|
|
90
134
|
fields: TFields | TFields[]
|
|
91
135
|
): Promise<RankingResult<SearchResultFields<TFields>>[]>;
|
|
92
|
-
|
|
136
|
+
/**
|
|
137
|
+
* ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。
|
|
138
|
+
*
|
|
139
|
+
* @param opt - オプショナルな取得フィールド (`weekly` など)
|
|
140
|
+
* @returns {Promise<RankingResult<DefaultSearchResultFields | "weekly_unique">[]>} 詳細情報を含むランキング結果の配列
|
|
141
|
+
*/
|
|
93
142
|
async executeWithFields(
|
|
94
143
|
fields: never[],
|
|
95
144
|
opt: OptionalFields | OptionalFields[]
|
|
96
145
|
): Promise<RankingResult<DefaultSearchResultFields | "weekly_unique">[]>;
|
|
97
|
-
|
|
146
|
+
/**
|
|
147
|
+
* ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。
|
|
148
|
+
*
|
|
149
|
+
* @template TFields - 取得する小説情報のフィールド型
|
|
150
|
+
* @param fields - 取得するフィールドの配列
|
|
151
|
+
* @param opt - オプショナルな取得フィールド (`weekly` など)
|
|
152
|
+
* @returns {Promise<RankingResult<SearchResultFields<TFields> | "weekly_unique">[]>} 詳細情報を含むランキング結果の配列
|
|
153
|
+
*/
|
|
98
154
|
async executeWithFields<TFields extends Fields>(
|
|
99
155
|
fields: TFields | TFields[],
|
|
100
156
|
opt: OptionalFields | OptionalFields[]
|
|
101
157
|
): Promise<RankingResult<SearchResultFields<TFields> | "weekly_unique">[]>;
|
|
102
|
-
|
|
158
|
+
/**
|
|
159
|
+
* ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。
|
|
160
|
+
*
|
|
161
|
+
* @template TFields - 取得する小説情報のフィールド型
|
|
162
|
+
* @template TOpt - オプショナルな取得フィールドの型
|
|
163
|
+
* @param fields - 取得するフィールドの配列 (省略時はデフォルトフィールド)
|
|
164
|
+
* @param opt - オプショナルな取得フィールド (`weekly` など)
|
|
165
|
+
* @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列
|
|
166
|
+
*/
|
|
103
167
|
async executeWithFields<
|
|
104
168
|
TFields extends Fields,
|
|
105
169
|
TOpt extends OptionalFields | undefined = undefined
|
|
@@ -34,14 +34,20 @@ export default class SearchBuilderR18<
|
|
|
34
34
|
return this.api.executeNovel18(this.params);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* 抽出するR18サイトを指定します (nocgenre)。
|
|
39
|
+
* @param sites R18サイトコード、またはR18サイトコードの配列 (1: ノクターンノベルズ, 2: ムーンライトノベルズ(男性向け), 3: ムーンライトノベルズ(BL), 4: ミッドナイトノベルズ)
|
|
40
|
+
* @return {this}
|
|
41
|
+
*/
|
|
37
42
|
r18Site(sites: R18Site | readonly R18Site[]) {
|
|
38
43
|
this.set({ nocgenre: NovelSearchBuilderBase.array2string(sites) });
|
|
39
44
|
return this;
|
|
40
45
|
}
|
|
41
46
|
|
|
42
47
|
/**
|
|
43
|
-
*
|
|
44
|
-
* @
|
|
48
|
+
* X-IDを指定して取得します (xid)。
|
|
49
|
+
* @param ids X-ID、またはX-IDの配列
|
|
50
|
+
* @return {this}
|
|
45
51
|
*/
|
|
46
52
|
xid(ids: number | readonly number[]) {
|
|
47
53
|
this.set({ xid: NovelSearchBuilderBase.array2string(ids) });
|
|
@@ -49,8 +55,10 @@ export default class SearchBuilderR18<
|
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
58
|
+
* 出力する項目を個別に指定します (of)。
|
|
59
|
+
* 未指定時は全項目出力されます。転送量軽減のため、このパラメータの使用が推奨されます。
|
|
60
|
+
* @param fields 出力するR18フィールド名、またはR18フィールド名の配列
|
|
61
|
+
* @return {SearchBuilderR18<SearchResultR18Fields<R18Fields>>} 型が更新されたビルダー
|
|
54
62
|
*/
|
|
55
63
|
fields<TFields extends R18Fields>(
|
|
56
64
|
fields: TFields | readonly TFields[]
|
|
@@ -60,6 +68,11 @@ export default class SearchBuilderR18<
|
|
|
60
68
|
return this as any;
|
|
61
69
|
}
|
|
62
70
|
|
|
71
|
+
/**
|
|
72
|
+
* 出力オプション項目を指定します (opt)。
|
|
73
|
+
* @param option 出力するオプションフィールド名、またはオプションフィールド名の配列
|
|
74
|
+
* @return {SearchBuilderR18<T, SearchResultOptionalFields<TFields>>} 型が更新されたビルダー
|
|
75
|
+
*/
|
|
63
76
|
opt<TFields extends OptionalFields>(
|
|
64
77
|
option: TFields | readonly TFields[]
|
|
65
78
|
): SearchBuilderR18<T, SearchResultOptionalFields<TFields>> {
|