narou 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.d.ts +35 -35
- package/dist/index.browser.js +82 -82
- package/dist/index.common.d.ts +14 -14
- package/dist/index.common.js +34 -34
- package/dist/index.d.ts +42 -42
- package/dist/index.js +90 -90
- package/dist/narou-fetch.d.ts +12 -12
- package/dist/narou-fetch.js +45 -45
- package/dist/narou-jsonp.d.ts +9 -9
- package/dist/narou-jsonp.js +23 -23
- package/dist/narou-ranking-results.d.ts +9 -9
- package/dist/narou-ranking-results.js +2 -2
- package/dist/narou-search-results.d.ts +130 -130
- package/dist/narou-search-results.js +62 -62
- package/dist/narou.d.ts +25 -25
- package/dist/narou.js +29 -29
- package/dist/params.d.ts +323 -323
- package/dist/params.js +246 -246
- package/dist/ranking-history.d.ts +13 -13
- package/dist/ranking-history.js +13 -13
- package/dist/ranking.d.ts +45 -45
- package/dist/ranking.js +86 -86
- package/dist/search-builder-r18.d.ts +28 -28
- package/dist/search-builder-r18.js +44 -44
- package/dist/search-builder.d.ts +219 -219
- package/dist/search-builder.js +380 -380
- package/dist/user-search.d.ts +62 -62
- package/dist/user-search.js +93 -93
- package/dist/util/jsonp.d.ts +16 -16
- package/dist/util/jsonp.js +45 -45
- package/dist/util/type.d.ts +3 -3
- package/dist/util/type.js +2 -2
- package/dist/util/unzipp.d.ts +3 -3
- package/dist/util/unzipp.js +11 -11
- package/dist.esm/index.browser.js +86 -0
- package/dist.esm/index.browser.js.map +1 -0
- package/dist.esm/index.common.js +38 -0
- package/dist.esm/index.common.js.map +1 -0
- package/dist.esm/index.js +94 -0
- package/dist.esm/index.js.map +1 -0
- package/dist.esm/narou-fetch.js +49 -0
- package/dist.esm/narou-fetch.js.map +1 -0
- package/dist.esm/narou-jsonp.js +27 -0
- package/dist.esm/narou-jsonp.js.map +1 -0
- package/dist.esm/narou-ranking-results.js +3 -0
- package/dist.esm/narou-ranking-results.js.map +1 -0
- package/dist.esm/narou-search-results.js +63 -0
- package/dist.esm/narou-search-results.js.map +1 -0
- package/dist.esm/narou.js +33 -0
- package/dist.esm/narou.js.map +1 -0
- package/dist.esm/params.js +247 -0
- package/dist.esm/params.js.map +1 -0
- package/dist.esm/ranking-history.js +14 -0
- package/dist.esm/ranking-history.js.map +1 -0
- package/dist.esm/ranking.js +90 -0
- package/dist.esm/ranking.js.map +1 -0
- package/dist.esm/search-builder-r18.js +45 -0
- package/dist.esm/search-builder-r18.js.map +1 -0
- package/dist.esm/search-builder.js +381 -0
- package/dist.esm/search-builder.js.map +1 -0
- package/dist.esm/user-search.js +94 -0
- package/dist.esm/user-search.js.map +1 -0
- package/dist.esm/util/jsonp.js +46 -0
- package/dist.esm/util/jsonp.js.map +1 -0
- package/dist.esm/util/type.js +3 -0
- package/dist.esm/util/type.js.map +1 -0
- package/dist.esm/util/unzipp.js +12 -0
- package/dist.esm/util/unzipp.js.map +1 -0
- package/package.json +1 -1
- package/src/user-search.ts +109 -109
package/dist/ranking.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const search_builder_1 = require("./search-builder");
|
|
4
|
-
const date_fns_1 = require("date-fns");
|
|
5
|
-
const params_1 = require("./params");
|
|
6
|
-
const dateFormat = "yyyyMMdd";
|
|
7
|
-
/**
|
|
8
|
-
* ランキングヘルパー
|
|
9
|
-
* @class Ranking
|
|
10
|
-
*/
|
|
11
|
-
class RankingBuilder {
|
|
12
|
-
/**
|
|
13
|
-
* constructor
|
|
14
|
-
* @private
|
|
15
|
-
*/
|
|
16
|
-
constructor(params = {}, api) {
|
|
17
|
-
this.params = params;
|
|
18
|
-
this.api = api;
|
|
19
|
-
/**
|
|
20
|
-
* クエリパラメータ
|
|
21
|
-
* @protected
|
|
22
|
-
*/
|
|
23
|
-
this.date$ = (0, date_fns_1.addDays)(Date.now(), -1);
|
|
24
|
-
this.type$ = params_1.RankingType.Daily;
|
|
25
|
-
}
|
|
26
|
-
date(date) {
|
|
27
|
-
this.date$ = date;
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
type(type) {
|
|
31
|
-
this.type$ = type;
|
|
32
|
-
return this;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* gzip圧縮する。
|
|
36
|
-
*
|
|
37
|
-
* 転送量上限を減らすためにも推奨
|
|
38
|
-
* @param {GzipLevel} level gzip圧縮レベル(1~5)
|
|
39
|
-
* @return {RankingBuilder} this
|
|
40
|
-
*/
|
|
41
|
-
gzip(level) {
|
|
42
|
-
this.set({ gzip: level });
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* クエリパラメータをセットする
|
|
47
|
-
* @private
|
|
48
|
-
* @return {RankingBuilder} this
|
|
49
|
-
*/
|
|
50
|
-
set(obj) {
|
|
51
|
-
Object.assign(this.params, obj);
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* なろう小説APIへのリクエストを実行する
|
|
56
|
-
* @returns ランキング
|
|
57
|
-
*/
|
|
58
|
-
execute() {
|
|
59
|
-
const date = (0, date_fns_1.format)(this.date$, dateFormat);
|
|
60
|
-
this.set({ rtype: `${date}-${this.type$}` });
|
|
61
|
-
return this.api.executeRanking(this.params);
|
|
62
|
-
}
|
|
63
|
-
async executeWithFields(fields = [], opt) {
|
|
64
|
-
const ranking = await this.execute();
|
|
65
|
-
const fields$ = Array.isArray(fields)
|
|
66
|
-
? fields.length == 0
|
|
67
|
-
? []
|
|
68
|
-
: [...fields, params_1.Fields.ncode]
|
|
69
|
-
: [fields, params_1.Fields.ncode];
|
|
70
|
-
const rankingNcodes = ranking.map(({ ncode }) => ncode);
|
|
71
|
-
const builder = new search_builder_1.default({}, this.api);
|
|
72
|
-
builder.fields(fields$);
|
|
73
|
-
if (opt) {
|
|
74
|
-
builder.opt(opt);
|
|
75
|
-
}
|
|
76
|
-
builder.ncode(rankingNcodes);
|
|
77
|
-
builder.limit(ranking.length);
|
|
78
|
-
const result = await builder.execute();
|
|
79
|
-
return ranking.map((r) => ({
|
|
80
|
-
...r,
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
-
...result.values.find((novel) => novel.ncode == r.ncode),
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
exports.default = RankingBuilder;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const search_builder_1 = require("./search-builder");
|
|
4
|
+
const date_fns_1 = require("date-fns");
|
|
5
|
+
const params_1 = require("./params");
|
|
6
|
+
const dateFormat = "yyyyMMdd";
|
|
7
|
+
/**
|
|
8
|
+
* ランキングヘルパー
|
|
9
|
+
* @class Ranking
|
|
10
|
+
*/
|
|
11
|
+
class RankingBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* constructor
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
constructor(params = {}, api) {
|
|
17
|
+
this.params = params;
|
|
18
|
+
this.api = api;
|
|
19
|
+
/**
|
|
20
|
+
* クエリパラメータ
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
23
|
+
this.date$ = (0, date_fns_1.addDays)(Date.now(), -1);
|
|
24
|
+
this.type$ = params_1.RankingType.Daily;
|
|
25
|
+
}
|
|
26
|
+
date(date) {
|
|
27
|
+
this.date$ = date;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
type(type) {
|
|
31
|
+
this.type$ = type;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* gzip圧縮する。
|
|
36
|
+
*
|
|
37
|
+
* 転送量上限を減らすためにも推奨
|
|
38
|
+
* @param {GzipLevel} level gzip圧縮レベル(1~5)
|
|
39
|
+
* @return {RankingBuilder} this
|
|
40
|
+
*/
|
|
41
|
+
gzip(level) {
|
|
42
|
+
this.set({ gzip: level });
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* クエリパラメータをセットする
|
|
47
|
+
* @private
|
|
48
|
+
* @return {RankingBuilder} this
|
|
49
|
+
*/
|
|
50
|
+
set(obj) {
|
|
51
|
+
Object.assign(this.params, obj);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* なろう小説APIへのリクエストを実行する
|
|
56
|
+
* @returns ランキング
|
|
57
|
+
*/
|
|
58
|
+
execute() {
|
|
59
|
+
const date = (0, date_fns_1.format)(this.date$, dateFormat);
|
|
60
|
+
this.set({ rtype: `${date}-${this.type$}` });
|
|
61
|
+
return this.api.executeRanking(this.params);
|
|
62
|
+
}
|
|
63
|
+
async executeWithFields(fields = [], opt) {
|
|
64
|
+
const ranking = await this.execute();
|
|
65
|
+
const fields$ = Array.isArray(fields)
|
|
66
|
+
? fields.length == 0
|
|
67
|
+
? []
|
|
68
|
+
: [...fields, params_1.Fields.ncode]
|
|
69
|
+
: [fields, params_1.Fields.ncode];
|
|
70
|
+
const rankingNcodes = ranking.map(({ ncode }) => ncode);
|
|
71
|
+
const builder = new search_builder_1.default({}, this.api);
|
|
72
|
+
builder.fields(fields$);
|
|
73
|
+
if (opt) {
|
|
74
|
+
builder.opt(opt);
|
|
75
|
+
}
|
|
76
|
+
builder.ncode(rankingNcodes);
|
|
77
|
+
builder.limit(ranking.length);
|
|
78
|
+
const result = await builder.execute();
|
|
79
|
+
return ranking.map((r) => ({
|
|
80
|
+
...r,
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
+
...result.values.find((novel) => novel.ncode == r.ncode),
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.default = RankingBuilder;
|
|
87
87
|
//# sourceMappingURL=ranking.js.map
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { NovelSearchBuilderBase } from "./search-builder";
|
|
2
|
-
import NarouSearchResults, { NarouSearchResult, SearchResultR18Fields, SearchResultOptionalFields } from "./narou-search-results";
|
|
3
|
-
import { R18Site, SearchResultFieldNames, R18Fields, OptionalFields } from "./params";
|
|
4
|
-
export declare type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
|
|
5
|
-
/**
|
|
6
|
-
* 18禁API検索ヘルパー
|
|
7
|
-
* @class SearchBuilderR18
|
|
8
|
-
*/
|
|
9
|
-
export default class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
|
|
10
|
-
/**
|
|
11
|
-
* なろう小説APIへの検索リクエストを実行する
|
|
12
|
-
* @override
|
|
13
|
-
* @returns {Promise<NarouSearchResults>} 検索結果
|
|
14
|
-
*/
|
|
15
|
-
execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
|
|
16
|
-
r18Site(sites: R18Site | readonly R18Site[]): this;
|
|
17
|
-
/**
|
|
18
|
-
*
|
|
19
|
-
* @return {SearchBuilder} this
|
|
20
|
-
*/
|
|
21
|
-
xid(ids: number | readonly number[]): this;
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @return {SearchBuilder} this
|
|
25
|
-
*/
|
|
26
|
-
fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
|
|
27
|
-
opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
|
|
28
|
-
}
|
|
1
|
+
import { NovelSearchBuilderBase } from "./search-builder";
|
|
2
|
+
import NarouSearchResults, { NarouSearchResult, SearchResultR18Fields, SearchResultOptionalFields } from "./narou-search-results";
|
|
3
|
+
import { R18Site, SearchResultFieldNames, R18Fields, OptionalFields } from "./params";
|
|
4
|
+
export declare type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
|
|
5
|
+
/**
|
|
6
|
+
* 18禁API検索ヘルパー
|
|
7
|
+
* @class SearchBuilderR18
|
|
8
|
+
*/
|
|
9
|
+
export default class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
|
|
10
|
+
/**
|
|
11
|
+
* なろう小説APIへの検索リクエストを実行する
|
|
12
|
+
* @override
|
|
13
|
+
* @returns {Promise<NarouSearchResults>} 検索結果
|
|
14
|
+
*/
|
|
15
|
+
execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
|
|
16
|
+
r18Site(sites: R18Site | readonly R18Site[]): this;
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @return {SearchBuilder} this
|
|
20
|
+
*/
|
|
21
|
+
xid(ids: number | readonly number[]): this;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @return {SearchBuilder} this
|
|
25
|
+
*/
|
|
26
|
+
fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
|
|
27
|
+
opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
|
|
28
|
+
}
|
|
29
29
|
//# sourceMappingURL=search-builder-r18.d.ts.map
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const search_builder_1 = require("./search-builder");
|
|
4
|
-
/**
|
|
5
|
-
* 18禁API検索ヘルパー
|
|
6
|
-
* @class SearchBuilderR18
|
|
7
|
-
*/
|
|
8
|
-
class SearchBuilderR18 extends search_builder_1.NovelSearchBuilderBase {
|
|
9
|
-
/**
|
|
10
|
-
* なろう小説APIへの検索リクエストを実行する
|
|
11
|
-
* @override
|
|
12
|
-
* @returns {Promise<NarouSearchResults>} 検索結果
|
|
13
|
-
*/
|
|
14
|
-
execute() {
|
|
15
|
-
return this.api.executeNovel18(this.params);
|
|
16
|
-
}
|
|
17
|
-
r18Site(sites) {
|
|
18
|
-
this.set({ nocgenre: search_builder_1.NovelSearchBuilderBase.array2string(sites) });
|
|
19
|
-
return this;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* @return {SearchBuilder} this
|
|
24
|
-
*/
|
|
25
|
-
xid(ids) {
|
|
26
|
-
this.set({ xid: search_builder_1.NovelSearchBuilderBase.array2string(ids) });
|
|
27
|
-
return this;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
*
|
|
31
|
-
* @return {SearchBuilder} this
|
|
32
|
-
*/
|
|
33
|
-
fields(fields) {
|
|
34
|
-
this.set({ of: search_builder_1.NovelSearchBuilderBase.array2string(fields) });
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
opt(option) {
|
|
39
|
-
this.set({ opt: search_builder_1.NovelSearchBuilderBase.array2string(option) });
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
-
return this;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.default = SearchBuilderR18;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const search_builder_1 = require("./search-builder");
|
|
4
|
+
/**
|
|
5
|
+
* 18禁API検索ヘルパー
|
|
6
|
+
* @class SearchBuilderR18
|
|
7
|
+
*/
|
|
8
|
+
class SearchBuilderR18 extends search_builder_1.NovelSearchBuilderBase {
|
|
9
|
+
/**
|
|
10
|
+
* なろう小説APIへの検索リクエストを実行する
|
|
11
|
+
* @override
|
|
12
|
+
* @returns {Promise<NarouSearchResults>} 検索結果
|
|
13
|
+
*/
|
|
14
|
+
execute() {
|
|
15
|
+
return this.api.executeNovel18(this.params);
|
|
16
|
+
}
|
|
17
|
+
r18Site(sites) {
|
|
18
|
+
this.set({ nocgenre: search_builder_1.NovelSearchBuilderBase.array2string(sites) });
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @return {SearchBuilder} this
|
|
24
|
+
*/
|
|
25
|
+
xid(ids) {
|
|
26
|
+
this.set({ xid: search_builder_1.NovelSearchBuilderBase.array2string(ids) });
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* @return {SearchBuilder} this
|
|
32
|
+
*/
|
|
33
|
+
fields(fields) {
|
|
34
|
+
this.set({ of: search_builder_1.NovelSearchBuilderBase.array2string(fields) });
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
opt(option) {
|
|
39
|
+
this.set({ opt: search_builder_1.NovelSearchBuilderBase.array2string(option) });
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.default = SearchBuilderR18;
|
|
45
45
|
//# sourceMappingURL=search-builder-r18.js.map
|