@ikenxuan/amagi 4.5.2 → 5.0.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/dist/default/cjs/index.cjs +560 -576
- package/dist/default/esm/index.mjs +514 -567
- package/dist/default/index.d.ts +16486 -117
- package/package.json +1 -6
- package/dist/default/cjs/v5.cjs +0 -3105
- package/dist/default/esm/v5.mjs +0 -3020
- package/dist/default/index-2b526zmm.d.ts +0 -15752
- package/dist/default/v5.d.ts +0 -766
|
@@ -27,7 +27,7 @@ var express__default = /*#__PURE__*/_interopDefault(express);
|
|
|
27
27
|
* GPL-3.0 Licensed
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
// node_modules/.pnpm/tsup@8.5.0_@swc+core@1.12.
|
|
30
|
+
// node_modules/.pnpm/tsup@8.5.0_@swc+core@1.12.14_tsx@4.20.3_typescript@5.8.3/node_modules/tsup/assets/cjs_shims.js
|
|
31
31
|
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
32
32
|
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
33
33
|
var getPackageLogsPath = () => {
|
|
@@ -167,142 +167,49 @@ var logMiddleware = (pathsToLog) => {
|
|
|
167
167
|
next();
|
|
168
168
|
};
|
|
169
169
|
};
|
|
170
|
-
var
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
axiosInstance;
|
|
177
|
-
isGetResult;
|
|
178
|
-
timeout;
|
|
179
|
-
timer;
|
|
180
|
-
data;
|
|
181
|
-
constructor(data2) {
|
|
182
|
-
this.headers = data2.headers ?? {};
|
|
183
|
-
this.url = data2.url ?? "";
|
|
184
|
-
this.type = data2.responseType ?? "json";
|
|
185
|
-
this.method = data2.method ?? "GET";
|
|
186
|
-
this.body = data2.body ?? null;
|
|
187
|
-
this.data = {};
|
|
188
|
-
this.timeout = data2.timeout ?? 15e3;
|
|
189
|
-
this.isGetResult = false;
|
|
190
|
-
this.timer = void 0;
|
|
191
|
-
this.axiosInstance = axios__default.default.create({
|
|
192
|
-
timeout: this.timeout,
|
|
193
|
-
headers: this.headers,
|
|
194
|
-
maxRedirects: 5,
|
|
195
|
-
validateStatus: (status) => {
|
|
196
|
-
return status >= 200 && status < 600;
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
get config() {
|
|
201
|
-
let config = {
|
|
202
|
-
url: this.url,
|
|
203
|
-
method: this.method,
|
|
204
|
-
headers: this.headers
|
|
205
|
-
};
|
|
206
|
-
if (this.method === "POST" && this.body) {
|
|
207
|
-
config.data = this.body;
|
|
208
|
-
}
|
|
209
|
-
return config;
|
|
210
|
-
}
|
|
211
|
-
async getfetch() {
|
|
212
|
-
try {
|
|
213
|
-
const result = await this.returnResult();
|
|
214
|
-
if (result.status === 504) {
|
|
215
|
-
return result;
|
|
216
|
-
}
|
|
217
|
-
this.isGetResult = true;
|
|
218
|
-
return result;
|
|
219
|
-
} catch (error) {
|
|
220
|
-
logger.info(error);
|
|
221
|
-
return false;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
async returnResult() {
|
|
225
|
-
return await this.axiosInstance(this.config);
|
|
226
|
-
}
|
|
227
|
-
/** 最终地址(跟随重定向) */
|
|
228
|
-
async getLongLink() {
|
|
229
|
-
try {
|
|
230
|
-
const response = await this.axiosInstance({
|
|
231
|
-
method: "GET",
|
|
232
|
-
url: this.url
|
|
233
|
-
});
|
|
234
|
-
return response.request.res.responseUrl;
|
|
235
|
-
} catch (error) {
|
|
236
|
-
if (error instanceof axios.AxiosError) {
|
|
237
|
-
throw new Error(error.stack);
|
|
238
|
-
}
|
|
239
|
-
return "";
|
|
170
|
+
var fetchData = async (config) => {
|
|
171
|
+
try {
|
|
172
|
+
const response = await axios__default.default(config);
|
|
173
|
+
if (response.status === 429) {
|
|
174
|
+
logger.error("HTTP \u54CD\u5E94\u72B6\u6001\u7801: 429");
|
|
175
|
+
throw new Error("ratelimit triggered, \u89E6\u53D1\u901F\u7387\u9650\u5236\uFF01");
|
|
240
176
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
method: "GET",
|
|
247
|
-
url: this.url,
|
|
248
|
-
maxRedirects: 0,
|
|
249
|
-
// 禁止跟随重定向
|
|
250
|
-
validateStatus: (status) => status >= 300 && status < 400
|
|
251
|
-
// 仅处理3xx响应
|
|
252
|
-
});
|
|
253
|
-
return response.headers["location"];
|
|
254
|
-
} catch (error) {
|
|
255
|
-
if (error instanceof axios.AxiosError) {
|
|
256
|
-
throw new Error(error.stack);
|
|
257
|
-
}
|
|
258
|
-
return "";
|
|
177
|
+
return response.data;
|
|
178
|
+
} catch (error) {
|
|
179
|
+
if (error instanceof axios.AxiosError) {
|
|
180
|
+
logger.error("\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25:", error.message);
|
|
181
|
+
throw error;
|
|
259
182
|
}
|
|
183
|
+
throw error;
|
|
260
184
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
269
|
-
if (result.status === 429) {
|
|
270
|
-
logger.error("HTTP \u54CD\u5E94\u72B6\u6001\u7801: 429");
|
|
271
|
-
throw new Error("ratelimit triggered, \u89E6\u53D1 https://www.douyin.com/ \u7684\u901F\u7387\u9650\u5236\uFF01\uFF01\uFF01");
|
|
272
|
-
}
|
|
273
|
-
this.axiosInstance = result;
|
|
274
|
-
this.isGetResult = true;
|
|
275
|
-
} else {
|
|
276
|
-
this.axiosInstance = new_fetch;
|
|
277
|
-
}
|
|
278
|
-
return this.axiosInstance.data;
|
|
279
|
-
} catch (error) {
|
|
280
|
-
if (error instanceof axios.AxiosError) {
|
|
281
|
-
throw new Error(error.stack);
|
|
282
|
-
}
|
|
283
|
-
return false;
|
|
185
|
+
};
|
|
186
|
+
var fetchResponse = async (config) => {
|
|
187
|
+
try {
|
|
188
|
+
return await axios__default.default(config);
|
|
189
|
+
} catch (error) {
|
|
190
|
+
if (error instanceof axios.AxiosError) {
|
|
191
|
+
throw error;
|
|
284
192
|
}
|
|
193
|
+
throw new Error("\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25");
|
|
285
194
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
return { headers: null, data: null };
|
|
298
|
-
}
|
|
195
|
+
};
|
|
196
|
+
var getHeadersAndData = async (config) => {
|
|
197
|
+
try {
|
|
198
|
+
const response = await fetchResponse(config);
|
|
199
|
+
return {
|
|
200
|
+
headers: response.headers,
|
|
201
|
+
data: response.data
|
|
202
|
+
};
|
|
203
|
+
} catch (error) {
|
|
204
|
+
logger.error("\u83B7\u53D6\u54CD\u5E94\u5934\u548C\u6570\u636E\u5931\u8D25:", error);
|
|
205
|
+
return { headers: {}, data: {} };
|
|
299
206
|
}
|
|
300
207
|
};
|
|
301
208
|
|
|
302
209
|
// src/platform/bilibili/qtparam.ts
|
|
303
210
|
var qtparam = async (BASEURL, cookie) => {
|
|
304
211
|
if (cookie === "") return { QUERY: "&platform=html5", STATUS: "!isLogin" };
|
|
305
|
-
const logininfo = await
|
|
212
|
+
const logininfo = await fetchData({ url: bilibiliApiUrls.\u767B\u5F55\u57FA\u672C\u4FE1\u606F(), headers: { Cookie: cookie } });
|
|
306
213
|
const sign = await wbi_sign(BASEURL, cookie);
|
|
307
214
|
const qn = [6, 16, 32, 64, 74, 80, 112, 116, 120, 125, 126, 127];
|
|
308
215
|
let isvip;
|
|
@@ -529,43 +436,117 @@ var wbi_sign = async (BASEURL, cookie) => {
|
|
|
529
436
|
return query;
|
|
530
437
|
};
|
|
531
438
|
|
|
439
|
+
// src/platform/defaultConfigs.ts
|
|
440
|
+
var generateSecChUa = (userAgent) => {
|
|
441
|
+
const chromeMatch = userAgent.match(/Chrome\/(\d+)/);
|
|
442
|
+
const chromeVersion = chromeMatch ? chromeMatch[1] : "125";
|
|
443
|
+
return `"Not)A;Brand";v="8", "Chromium";v="${chromeVersion}", "Google Chrome";v="${chromeVersion}"`;
|
|
444
|
+
};
|
|
445
|
+
var getDouyinDefaultConfig = (cookie, requestConfig) => {
|
|
446
|
+
var _a;
|
|
447
|
+
const finalUserAgent = ((_a = void 0 ) == null ? void 0 : _a["User-Agent"]) || "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36";
|
|
448
|
+
const defHeaders = {
|
|
449
|
+
Accept: "application/json, text/plain, */*",
|
|
450
|
+
"Accept-Encoding": "gzip, deflate, br, zstd",
|
|
451
|
+
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
452
|
+
Cookie: cookie ? cookie.replace(/\s+/g, "") : "",
|
|
453
|
+
Priority: "u=1, i",
|
|
454
|
+
Referer: "https://www.douyin.com/",
|
|
455
|
+
"Sec-Ch-Ua": generateSecChUa(finalUserAgent),
|
|
456
|
+
"Sec-Ch-Ua-Mobile": "?0",
|
|
457
|
+
"Sec-Ch-Ua-Platform": '"Windows"',
|
|
458
|
+
"Sec-Fetch-Dest": "empty",
|
|
459
|
+
"Sec-Fetch-Mode": "cors",
|
|
460
|
+
"Sec-Fetch-Site": "same-origin",
|
|
461
|
+
"User-Agent": finalUserAgent
|
|
462
|
+
};
|
|
463
|
+
return {
|
|
464
|
+
method: "GET",
|
|
465
|
+
timeout: 1e4,
|
|
466
|
+
...requestConfig,
|
|
467
|
+
headers: {
|
|
468
|
+
...defHeaders,
|
|
469
|
+
...{}
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
};
|
|
473
|
+
var getBilibiliDefaultConfig = (cookie, requestConfig) => {
|
|
474
|
+
const defHeaders = {
|
|
475
|
+
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
|
476
|
+
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
477
|
+
"Cache-Control": "max-age=0",
|
|
478
|
+
Priority: "u=0, i",
|
|
479
|
+
"Sec-Ch-Ua": '"Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
|
|
480
|
+
"Sec-Ch-Ua-Mobile": "?0",
|
|
481
|
+
"Sec-Ch-Ua-Platform": '"Windows"',
|
|
482
|
+
"Sec-Fetch-Dest": "document",
|
|
483
|
+
"Sec-Fetch-Mode": "navigate",
|
|
484
|
+
"Sec-Fetch-Site": "none",
|
|
485
|
+
"Sec-Fetch-User": "?1",
|
|
486
|
+
"Upgrade-Insecure-Requests": "1",
|
|
487
|
+
Referer: "https://www.bilibili.com/",
|
|
488
|
+
Cookie: cookie ? cookie.replace(/\s+/g, "") : ""
|
|
489
|
+
};
|
|
490
|
+
return {
|
|
491
|
+
method: "GET",
|
|
492
|
+
timeout: 1e4,
|
|
493
|
+
...requestConfig,
|
|
494
|
+
headers: {
|
|
495
|
+
...defHeaders,
|
|
496
|
+
...{}
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
};
|
|
500
|
+
var getKuaishouDefaultConfig = (cookie, requestConfig) => {
|
|
501
|
+
const defHeaders = {
|
|
502
|
+
Referer: "https://www.kuaishou.com/new-reco",
|
|
503
|
+
Origin: "https://www.kuaishou.com",
|
|
504
|
+
Accept: "application/json, text/plain, */*",
|
|
505
|
+
"Accept-Encoding": "gzip, deflate, br, zstd",
|
|
506
|
+
"Content-Type": "application/json",
|
|
507
|
+
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
|
|
508
|
+
Priority: "u=0, i",
|
|
509
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0",
|
|
510
|
+
Cookie: cookie ? cookie.replace(/\s+/g, "") : ""
|
|
511
|
+
};
|
|
512
|
+
return {
|
|
513
|
+
method: "POST",
|
|
514
|
+
timeout: 1e4,
|
|
515
|
+
...requestConfig,
|
|
516
|
+
headers: {
|
|
517
|
+
...defHeaders,
|
|
518
|
+
...{}
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
};
|
|
522
|
+
|
|
532
523
|
// src/platform/bilibili/getdata.ts
|
|
533
|
-
var
|
|
534
|
-
|
|
535
|
-
"
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
"sec-fetch-user": "?1",
|
|
545
|
-
"upgrade-insecure-requests": "1",
|
|
546
|
-
referer: "https://www.bilibili.com/"
|
|
547
|
-
};
|
|
548
|
-
var fetchBilibili = async (data2, cookie) => {
|
|
549
|
-
var _a, _b, _c;
|
|
550
|
-
const headers2 = {
|
|
551
|
-
...defheaders,
|
|
552
|
-
cookie: cookie ? cookie.replace(/\s+/g, "") : ""
|
|
524
|
+
var fetchBilibili = async (data2, cookie, requestConfig) => {
|
|
525
|
+
var _a, _b, _c, _d, _e, _f;
|
|
526
|
+
const defHeaders = getBilibiliDefaultConfig(cookie)["headers"];
|
|
527
|
+
const baseRequestConfig = {
|
|
528
|
+
method: "GET",
|
|
529
|
+
timeout: 1e4,
|
|
530
|
+
...requestConfig,
|
|
531
|
+
headers: {
|
|
532
|
+
...defHeaders,
|
|
533
|
+
...{}
|
|
534
|
+
}
|
|
553
535
|
};
|
|
554
536
|
switch (data2.methodType) {
|
|
555
537
|
case "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E": {
|
|
556
|
-
const INFODATA = await GlobalGetData({
|
|
557
|
-
|
|
558
|
-
|
|
538
|
+
const INFODATA = await GlobalGetData(data2.methodType, {
|
|
539
|
+
...baseRequestConfig,
|
|
540
|
+
url: bilibiliApiUrls.\u89C6\u9891\u8BE6\u7EC6\u4FE1\u606F({ bvid: data2.bvid })
|
|
559
541
|
});
|
|
560
542
|
return INFODATA;
|
|
561
543
|
}
|
|
562
544
|
case "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E": {
|
|
563
545
|
const BASEURL = bilibiliApiUrls.\u89C6\u9891\u6D41\u4FE1\u606F({ avid: data2.avid, cid: data2.cid });
|
|
564
|
-
const SIGN = await qtparam(BASEURL,
|
|
565
|
-
const DATA = await GlobalGetData({
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
...data2
|
|
546
|
+
const SIGN = await qtparam(BASEURL, (_a = baseRequestConfig.headers) == null ? void 0 : _a.cookie);
|
|
547
|
+
const DATA = await GlobalGetData(data2.methodType, {
|
|
548
|
+
...baseRequestConfig,
|
|
549
|
+
url: bilibiliApiUrls.\u89C6\u9891\u6D41\u4FE1\u606F({ avid: data2.avid, cid: data2.cid }) + SIGN.QUERY
|
|
569
550
|
});
|
|
570
551
|
return DATA;
|
|
571
552
|
}
|
|
@@ -578,10 +559,9 @@ var fetchBilibili = async (data2, cookie) => {
|
|
|
578
559
|
let nextPaginationStr = pagination_str;
|
|
579
560
|
let isEnd = false;
|
|
580
561
|
const checkStatusUrl = bilibiliApiUrls.\u8BC4\u8BBA\u533A\u72B6\u6001({ oid, type });
|
|
581
|
-
const checkStatusRes = await GlobalGetData({
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
...data2
|
|
562
|
+
const checkStatusRes = await GlobalGetData(data2.methodType, {
|
|
563
|
+
...baseRequestConfig,
|
|
564
|
+
url: checkStatusUrl
|
|
585
565
|
});
|
|
586
566
|
if (checkStatusRes.data === null) {
|
|
587
567
|
logger.error("\u8BC4\u8BBA\u533A\u672A\u5F00\u653E");
|
|
@@ -601,18 +581,17 @@ var fetchBilibili = async (data2, cookie) => {
|
|
|
601
581
|
seek_rpid,
|
|
602
582
|
web_location: web_location ?? "1315875"
|
|
603
583
|
});
|
|
604
|
-
const wbiSignQuery = await wbi_sign(baseUrl,
|
|
584
|
+
const wbiSignQuery = await wbi_sign(baseUrl, (_b = baseRequestConfig.headers) == null ? void 0 : _b.cookie);
|
|
605
585
|
const finalUrl = baseUrl + wbiSignQuery;
|
|
606
|
-
const response = await GlobalGetData({
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
...data2
|
|
586
|
+
const response = await GlobalGetData(data2.methodType, {
|
|
587
|
+
...baseRequestConfig,
|
|
588
|
+
url: finalUrl
|
|
610
589
|
});
|
|
611
590
|
tmpresp = response;
|
|
612
|
-
const currentComments = ((
|
|
591
|
+
const currentComments = ((_c = response.data) == null ? void 0 : _c.replies) || [];
|
|
613
592
|
fetchedComments.push(...currentComments);
|
|
614
|
-
if ((
|
|
615
|
-
nextPaginationStr = (
|
|
593
|
+
if ((_d = response.data) == null ? void 0 : _d.cursor) {
|
|
594
|
+
nextPaginationStr = (_e = response.data.cursor.pagination_reply) == null ? void 0 : _e.next_offset;
|
|
616
595
|
isEnd = response.data.cursor.is_end;
|
|
617
596
|
} else {
|
|
618
597
|
isEnd = true;
|
|
@@ -634,9 +613,9 @@ var fetchBilibili = async (data2, cookie) => {
|
|
|
634
613
|
return finalResponse;
|
|
635
614
|
}
|
|
636
615
|
case "Emoji\u6570\u636E": {
|
|
637
|
-
return await GlobalGetData({
|
|
638
|
-
|
|
639
|
-
|
|
616
|
+
return await GlobalGetData(data2.methodType, {
|
|
617
|
+
...baseRequestConfig,
|
|
618
|
+
url: bilibiliApiUrls.\u8868\u60C5\u5217\u8868()
|
|
640
619
|
});
|
|
641
620
|
}
|
|
642
621
|
case "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E": {
|
|
@@ -646,106 +625,121 @@ var fetchBilibili = async (data2, cookie) => {
|
|
|
646
625
|
}
|
|
647
626
|
const idType = id ? id.startsWith("ep") ? "ep_id" : "season_id" : "ep_id";
|
|
648
627
|
const newId = idType === "ep_id" ? id.replace("ep", "") : id.replace("ss", "");
|
|
649
|
-
const INFO = await GlobalGetData({
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
...data2
|
|
628
|
+
const INFO = await GlobalGetData(data2.methodType, {
|
|
629
|
+
...baseRequestConfig,
|
|
630
|
+
url: bilibiliApiUrls.\u756A\u5267\u660E\u7EC6({ [idType]: newId })
|
|
653
631
|
});
|
|
654
632
|
return INFO;
|
|
655
633
|
}
|
|
656
634
|
case "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E": {
|
|
657
635
|
const BASEURL = bilibiliApiUrls.\u756A\u5267\u89C6\u9891\u6D41\u4FE1\u606F({ cid: data2.cid, ep_id: data2.ep_id.replace("ep", "") });
|
|
658
|
-
const SIGN = await qtparam(BASEURL,
|
|
659
|
-
const DATA = await GlobalGetData({
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
...data2
|
|
636
|
+
const SIGN = await qtparam(BASEURL, (_f = baseRequestConfig.headers) == null ? void 0 : _f.cookie);
|
|
637
|
+
const DATA = await GlobalGetData(data2.methodType, {
|
|
638
|
+
...baseRequestConfig,
|
|
639
|
+
url: bilibiliApiUrls.\u756A\u5267\u89C6\u9891\u6D41\u4FE1\u606F({ cid: data2.cid, ep_id: data2.ep_id.replace("ep", "") }) + SIGN.QUERY
|
|
663
640
|
});
|
|
664
641
|
return DATA;
|
|
665
642
|
}
|
|
666
643
|
case "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E": {
|
|
667
|
-
|
|
644
|
+
const customConfig = {
|
|
645
|
+
...baseRequestConfig,
|
|
646
|
+
headers: {
|
|
647
|
+
...baseRequestConfig.headers,
|
|
648
|
+
// 只有在外部配置没有referer时才删除内部的referer
|
|
649
|
+
...{
|
|
650
|
+
referer: void 0
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
};
|
|
668
654
|
const { host_mid } = data2;
|
|
669
|
-
const result = await GlobalGetData({
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
...data2
|
|
655
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
656
|
+
...customConfig,
|
|
657
|
+
url: bilibiliApiUrls.\u7528\u6237\u7A7A\u95F4\u52A8\u6001({ host_mid })
|
|
673
658
|
});
|
|
674
659
|
return result;
|
|
675
660
|
}
|
|
676
661
|
case "\u52A8\u6001\u8BE6\u60C5\u6570\u636E": {
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
662
|
+
const customConfig = {
|
|
663
|
+
...baseRequestConfig,
|
|
664
|
+
headers: {
|
|
665
|
+
...baseRequestConfig.headers,
|
|
666
|
+
// 只有在外部配置没有referer时才删除内部的referer
|
|
667
|
+
...{
|
|
668
|
+
referer: void 0
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
};
|
|
672
|
+
const dynamicINFO = await GlobalGetData(data2.methodType, {
|
|
673
|
+
...customConfig,
|
|
674
|
+
url: bilibiliApiUrls.\u52A8\u6001\u8BE6\u60C5({ dynamic_id: data2.dynamic_id })
|
|
682
675
|
});
|
|
683
676
|
return dynamicINFO;
|
|
684
677
|
}
|
|
685
678
|
case "\u52A8\u6001\u5361\u7247\u6570\u636E": {
|
|
686
|
-
|
|
679
|
+
const customConfig = {
|
|
680
|
+
...baseRequestConfig,
|
|
681
|
+
headers: {
|
|
682
|
+
...baseRequestConfig.headers,
|
|
683
|
+
// 只有在外部配置没有referer时才删除内部的referer
|
|
684
|
+
...{
|
|
685
|
+
referer: void 0
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
};
|
|
687
689
|
const { dynamic_id } = data2;
|
|
688
|
-
const dynamicINFO_CARD = await GlobalGetData({
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
...data2
|
|
690
|
+
const dynamicINFO_CARD = await GlobalGetData(data2.methodType, {
|
|
691
|
+
...customConfig,
|
|
692
|
+
url: bilibiliApiUrls.\u52A8\u6001\u5361\u7247\u4FE1\u606F({ dynamic_id })
|
|
692
693
|
});
|
|
693
694
|
return dynamicINFO_CARD;
|
|
694
695
|
}
|
|
695
696
|
case "\u7528\u6237\u4E3B\u9875\u6570\u636E": {
|
|
696
697
|
const { host_mid } = data2;
|
|
697
|
-
const result = await GlobalGetData({
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
...data2
|
|
698
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
699
|
+
...baseRequestConfig,
|
|
700
|
+
url: bilibiliApiUrls.\u7528\u6237\u540D\u7247\u4FE1\u606F({ host_mid })
|
|
701
701
|
});
|
|
702
702
|
return result;
|
|
703
703
|
}
|
|
704
704
|
case "\u76F4\u64AD\u95F4\u4FE1\u606F": {
|
|
705
|
-
const result = await GlobalGetData({
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
...data2
|
|
705
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
706
|
+
...baseRequestConfig,
|
|
707
|
+
url: bilibiliApiUrls.\u76F4\u64AD\u95F4\u4FE1\u606F({ room_id: data2.room_id })
|
|
709
708
|
});
|
|
710
709
|
return result;
|
|
711
710
|
}
|
|
712
711
|
case "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F": {
|
|
713
|
-
const result = await GlobalGetData({
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
...data2
|
|
712
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
713
|
+
...baseRequestConfig,
|
|
714
|
+
url: bilibiliApiUrls.\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F({ room_id: data2.room_id })
|
|
717
715
|
});
|
|
718
716
|
return result;
|
|
719
717
|
}
|
|
720
718
|
case "\u7533\u8BF7\u4E8C\u7EF4\u7801": {
|
|
721
|
-
const result = await GlobalGetData({
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
...data2
|
|
719
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
720
|
+
...baseRequestConfig,
|
|
721
|
+
url: bilibiliApiUrls.\u7533\u8BF7\u4E8C\u7EF4\u7801()
|
|
725
722
|
});
|
|
726
723
|
return result;
|
|
727
724
|
}
|
|
728
725
|
case "\u4E8C\u7EF4\u7801\u72B6\u6001": {
|
|
729
|
-
const result = await
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
}).getHeadersAndData();
|
|
726
|
+
const result = await getHeadersAndData({
|
|
727
|
+
...baseRequestConfig,
|
|
728
|
+
url: bilibiliApiUrls.\u4E8C\u7EF4\u7801\u72B6\u6001({ qrcode_key: data2.qrcode_key })
|
|
729
|
+
});
|
|
734
730
|
return result;
|
|
735
731
|
}
|
|
736
732
|
case "\u767B\u5F55\u57FA\u672C\u4FE1\u606F": {
|
|
737
|
-
const result = await GlobalGetData({
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
...data2
|
|
733
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
734
|
+
...baseRequestConfig,
|
|
735
|
+
url: bilibiliApiUrls.\u767B\u5F55\u57FA\u672C\u4FE1\u606F()
|
|
741
736
|
});
|
|
742
737
|
return result;
|
|
743
738
|
}
|
|
744
739
|
case "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF": {
|
|
745
|
-
const result = await GlobalGetData({
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
...data2
|
|
740
|
+
const result = await GlobalGetData(data2.methodType, {
|
|
741
|
+
...baseRequestConfig,
|
|
742
|
+
url: bilibiliApiUrls.\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF({ host_mid: data2.host_mid })
|
|
749
743
|
});
|
|
750
744
|
return result;
|
|
751
745
|
}
|
|
@@ -774,19 +768,19 @@ var fetchBilibili = async (data2, cookie) => {
|
|
|
774
768
|
return null;
|
|
775
769
|
}
|
|
776
770
|
};
|
|
777
|
-
var GlobalGetData = async (options) => {
|
|
771
|
+
var GlobalGetData = async (type, options) => {
|
|
778
772
|
let warningMessage = "";
|
|
779
773
|
try {
|
|
780
|
-
const result = await
|
|
774
|
+
const result = await fetchData(options);
|
|
781
775
|
if (!result || result === "") {
|
|
782
776
|
const Err = {
|
|
783
777
|
errorDescription: "\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u4F60\u7684B\u7AD9ck\u53EF\u80FD\u5DF2\u7ECF\u5931\u6548\uFF01",
|
|
784
|
-
requestType:
|
|
778
|
+
requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
|
|
785
779
|
requestUrl: options.url
|
|
786
780
|
};
|
|
787
781
|
warningMessage = `
|
|
788
782
|
\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow("\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u4F60\u7684B\u7AD9ck\u53EF\u80FD\u5DF2\u7ECF\u5931\u6548\uFF01")}
|
|
789
|
-
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${
|
|
783
|
+
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
|
|
790
784
|
\u8BF7\u6C42URL\uFF1A${options.url}
|
|
791
785
|
`;
|
|
792
786
|
logger.warn(warningMessage);
|
|
@@ -800,13 +794,13 @@ var GlobalGetData = async (options) => {
|
|
|
800
794
|
const errorMessage = bilibiliErrorCodeMap[result.code] || result.message || "\u672A\u77E5\u9519\u8BEF";
|
|
801
795
|
const Err = {
|
|
802
796
|
errorDescription: `\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${errorMessage}\uFF01`,
|
|
803
|
-
requestType:
|
|
797
|
+
requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
|
|
804
798
|
requestUrl: options.url
|
|
805
799
|
};
|
|
806
800
|
warningMessage = `
|
|
807
801
|
\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow(errorMessage)}
|
|
808
802
|
\u9519\u8BEF\u4EE3\u7801\uFF1A${result.code}
|
|
809
|
-
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${
|
|
803
|
+
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
|
|
810
804
|
\u8BF7\u6C42URL\uFF1A${options.url}
|
|
811
805
|
`;
|
|
812
806
|
logger.warn(warningMessage);
|
|
@@ -827,7 +821,7 @@ var GlobalGetData = async (options) => {
|
|
|
827
821
|
data: error.data,
|
|
828
822
|
amagiError: {
|
|
829
823
|
errorDescription: "\u672A\u77E5\u9519\u8BEF",
|
|
830
|
-
requestType:
|
|
824
|
+
requestType: type,
|
|
831
825
|
requestUrl: options.url
|
|
832
826
|
},
|
|
833
827
|
amagiMessage: warningMessage
|
|
@@ -1350,21 +1344,17 @@ var DouyinAPI = class {
|
|
|
1350
1344
|
var douyinApiUrls = new DouyinAPI();
|
|
1351
1345
|
|
|
1352
1346
|
// src/platform/douyin/getdata.ts
|
|
1353
|
-
var
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
|
-
var _a, _b;
|
|
1365
|
-
const headers2 = {
|
|
1366
|
-
...defheaders2,
|
|
1367
|
-
cookie: cookie ? cookie.replace(/\s+/g, "") : ""
|
|
1347
|
+
var DouyinData = async (data2, cookie, requestConfig) => {
|
|
1348
|
+
var _a, _b, _c, _d;
|
|
1349
|
+
const defHeaders = getDouyinDefaultConfig(cookie)["headers"];
|
|
1350
|
+
const baseRequestConfig = {
|
|
1351
|
+
method: "GET",
|
|
1352
|
+
timeout: 1e4,
|
|
1353
|
+
...requestConfig,
|
|
1354
|
+
headers: {
|
|
1355
|
+
...defHeaders,
|
|
1356
|
+
...(requestConfig == null ? void 0 : requestConfig.headers) || {}
|
|
1357
|
+
}
|
|
1368
1358
|
};
|
|
1369
1359
|
switch (data2.methodType) {
|
|
1370
1360
|
case "\u805A\u5408\u89E3\u6790":
|
|
@@ -1372,73 +1362,101 @@ var DouyinData = async (data2, cookie) => {
|
|
|
1372
1362
|
case "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E":
|
|
1373
1363
|
case "\u5408\u8F91\u4F5C\u54C1\u6570\u636E": {
|
|
1374
1364
|
const url = douyinApiUrls.\u89C6\u9891\u6216\u56FE\u96C6({ aweme_id: data2.aweme_id });
|
|
1375
|
-
const VideoData = await GlobalGetData2({
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
...data2
|
|
1365
|
+
const VideoData = await GlobalGetData2(data2.methodType, {
|
|
1366
|
+
...baseRequestConfig,
|
|
1367
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1379
1368
|
});
|
|
1380
1369
|
return VideoData;
|
|
1381
1370
|
}
|
|
1382
1371
|
case "\u8BC4\u8BBA\u6570\u636E": {
|
|
1383
1372
|
const urlGenerator = (params) => douyinApiUrls.\u8BC4\u8BBA(params);
|
|
1384
|
-
const response = await fetchPaginatedData(
|
|
1373
|
+
const response = await fetchPaginatedData(
|
|
1374
|
+
data2.methodType,
|
|
1375
|
+
urlGenerator,
|
|
1376
|
+
data2,
|
|
1377
|
+
50,
|
|
1378
|
+
baseRequestConfig
|
|
1379
|
+
);
|
|
1385
1380
|
return response;
|
|
1386
1381
|
}
|
|
1387
1382
|
case "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E": {
|
|
1388
1383
|
const urlGenerator = (params) => douyinApiUrls.\u4E8C\u7EA7\u8BC4\u8BBA(params);
|
|
1384
|
+
const customConfig = {
|
|
1385
|
+
...baseRequestConfig,
|
|
1386
|
+
headers: {
|
|
1387
|
+
...baseRequestConfig.headers,
|
|
1388
|
+
// 只有在外部配置没有referer时才设置内部的referer
|
|
1389
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("referer" in requestConfig.headers)) && {
|
|
1390
|
+
referer: `https://www.douyin.com/note/${data2.aweme_id}`
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
};
|
|
1389
1394
|
const response = await fetchPaginatedData(
|
|
1395
|
+
data2.methodType,
|
|
1390
1396
|
urlGenerator,
|
|
1391
1397
|
data2,
|
|
1392
1398
|
3,
|
|
1393
|
-
|
|
1394
|
-
...headers2,
|
|
1395
|
-
referer: `https://www.douyin.com/note/${data2.aweme_id}`
|
|
1396
|
-
}
|
|
1399
|
+
customConfig
|
|
1397
1400
|
);
|
|
1398
1401
|
return response;
|
|
1399
1402
|
}
|
|
1400
1403
|
case "\u7528\u6237\u4E3B\u9875\u6570\u636E": {
|
|
1401
1404
|
const url = douyinApiUrls.\u7528\u6237\u4E3B\u9875\u4FE1\u606F({ sec_uid: data2.sec_uid });
|
|
1402
|
-
const
|
|
1403
|
-
|
|
1405
|
+
const customConfig = {
|
|
1406
|
+
...baseRequestConfig,
|
|
1404
1407
|
headers: {
|
|
1405
|
-
...
|
|
1406
|
-
Referer
|
|
1407
|
-
|
|
1408
|
-
|
|
1408
|
+
...baseRequestConfig.headers,
|
|
1409
|
+
// 只有在外部配置没有Referer时才设置内部的Referer
|
|
1410
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
|
|
1411
|
+
Referer: `https://www.douyin.com/user/${data2.sec_uid}`
|
|
1412
|
+
}
|
|
1413
|
+
}
|
|
1414
|
+
};
|
|
1415
|
+
const UserInfoData = await GlobalGetData2(data2.methodType, {
|
|
1416
|
+
...customConfig,
|
|
1417
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1409
1418
|
});
|
|
1410
1419
|
return UserInfoData;
|
|
1411
1420
|
}
|
|
1412
1421
|
case "Emoji\u6570\u636E": {
|
|
1413
1422
|
const url = douyinApiUrls.\u8868\u60C5();
|
|
1414
|
-
const EmojiData = await GlobalGetData2({
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
...data2
|
|
1423
|
+
const EmojiData = await GlobalGetData2(data2.methodType, {
|
|
1424
|
+
...baseRequestConfig,
|
|
1425
|
+
url
|
|
1418
1426
|
});
|
|
1419
1427
|
return EmojiData;
|
|
1420
1428
|
}
|
|
1421
1429
|
case "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E": {
|
|
1422
1430
|
const url = douyinApiUrls.\u7528\u6237\u4E3B\u9875\u89C6\u9891({ sec_uid: data2.sec_uid });
|
|
1423
|
-
const
|
|
1424
|
-
|
|
1431
|
+
const customConfig = {
|
|
1432
|
+
...baseRequestConfig,
|
|
1425
1433
|
headers: {
|
|
1426
|
-
...
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1434
|
+
...baseRequestConfig.headers,
|
|
1435
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
|
|
1436
|
+
Referer: `https://www.douyin.com/user/${data2.sec_uid}`
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
};
|
|
1440
|
+
const UserVideoListData = await GlobalGetData2(data2.methodType, {
|
|
1441
|
+
...customConfig,
|
|
1442
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1430
1443
|
});
|
|
1431
1444
|
return UserVideoListData;
|
|
1432
1445
|
}
|
|
1433
1446
|
case "\u70ED\u70B9\u8BCD\u6570\u636E": {
|
|
1434
1447
|
const url = douyinApiUrls.\u70ED\u70B9\u8BCD({ query: data2.query, number: data2.number ?? 10 });
|
|
1435
|
-
const
|
|
1436
|
-
|
|
1448
|
+
const customConfig = {
|
|
1449
|
+
...baseRequestConfig,
|
|
1437
1450
|
headers: {
|
|
1438
|
-
...
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1451
|
+
...baseRequestConfig.headers,
|
|
1452
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
|
|
1453
|
+
Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
};
|
|
1457
|
+
const SuggestWordsData = await GlobalGetData2(data2.methodType, {
|
|
1458
|
+
...customConfig,
|
|
1459
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1442
1460
|
});
|
|
1443
1461
|
return SuggestWordsData;
|
|
1444
1462
|
}
|
|
@@ -1447,6 +1465,15 @@ var DouyinData = async (data2, cookie) => {
|
|
|
1447
1465
|
const maxPageSize = 15;
|
|
1448
1466
|
let fetchedSearchList = [];
|
|
1449
1467
|
let tmpresp = {};
|
|
1468
|
+
const customConfig = {
|
|
1469
|
+
...baseRequestConfig,
|
|
1470
|
+
headers: {
|
|
1471
|
+
...baseRequestConfig.headers,
|
|
1472
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
|
|
1473
|
+
Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
};
|
|
1450
1477
|
while (fetchedSearchList.length < Number(data2.number ?? 10)) {
|
|
1451
1478
|
const requestCount = Math.min(Number(data2.number ?? 50) - fetchedSearchList.length, maxPageSize);
|
|
1452
1479
|
const url = douyinApiUrls.\u641C\u7D22({
|
|
@@ -1454,15 +1481,11 @@ var DouyinData = async (data2, cookie) => {
|
|
|
1454
1481
|
number: requestCount,
|
|
1455
1482
|
search_id: search_id === "" ? void 0 : search_id
|
|
1456
1483
|
});
|
|
1457
|
-
const response = await GlobalGetData2({
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
...headers2,
|
|
1461
|
-
Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
|
|
1462
|
-
},
|
|
1463
|
-
...data2
|
|
1484
|
+
const response = await GlobalGetData2(data2.methodType, {
|
|
1485
|
+
...customConfig,
|
|
1486
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1464
1487
|
});
|
|
1465
|
-
if (response.data.length === 0) {
|
|
1488
|
+
if (((_a = response.data) == null ? void 0 : _a.length) === 0) {
|
|
1466
1489
|
logger.warn("\u83B7\u53D6\u641C\u7D22\u6570\u636E\u5931\u8D25\uFF01\u8BF7\u6C42\u6210\u529F\u4F46\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\n\u4F60\u7684\u6296\u97F3ck\u53EF\u80FD\u5DF2\u7ECF\u5931\u6548\uFF01\n\u8BF7\u6C42\u7C7B\u578B\uFF1A" + data2.methodType);
|
|
1467
1490
|
return false;
|
|
1468
1491
|
}
|
|
@@ -1471,7 +1494,7 @@ var DouyinData = async (data2, cookie) => {
|
|
|
1471
1494
|
}
|
|
1472
1495
|
fetchedSearchList.push(...response.data);
|
|
1473
1496
|
tmpresp = response;
|
|
1474
|
-
search_id = response.log_pb.impr_id;
|
|
1497
|
+
search_id = (_b = response.log_pb) == null ? void 0 : _b.impr_id;
|
|
1475
1498
|
}
|
|
1476
1499
|
const finalResponse = {
|
|
1477
1500
|
...tmpresp,
|
|
@@ -1481,35 +1504,38 @@ var DouyinData = async (data2, cookie) => {
|
|
|
1481
1504
|
}
|
|
1482
1505
|
case "\u52A8\u6001\u8868\u60C5\u6570\u636E": {
|
|
1483
1506
|
const url = douyinApiUrls.\u4E92\u52A8\u8868\u60C5();
|
|
1484
|
-
const ExpressionPlusData = await GlobalGetData2({
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
...data2
|
|
1507
|
+
const ExpressionPlusData = await GlobalGetData2(data2.methodType, {
|
|
1508
|
+
...baseRequestConfig,
|
|
1509
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1488
1510
|
});
|
|
1489
1511
|
return ExpressionPlusData;
|
|
1490
1512
|
}
|
|
1491
1513
|
case "\u97F3\u4E50\u6570\u636E": {
|
|
1492
1514
|
const url = douyinApiUrls.\u80CC\u666F\u97F3\u4E50({ music_id: data2.music_id });
|
|
1493
|
-
const MusicData = await GlobalGetData2({
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
...data2
|
|
1515
|
+
const MusicData = await GlobalGetData2(data2.methodType, {
|
|
1516
|
+
...baseRequestConfig,
|
|
1517
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1497
1518
|
});
|
|
1498
1519
|
return MusicData;
|
|
1499
1520
|
}
|
|
1500
1521
|
case "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E": {
|
|
1501
1522
|
let url = douyinApiUrls.\u7528\u6237\u4E3B\u9875\u4FE1\u606F({ sec_uid: data2.sec_uid });
|
|
1502
1523
|
const fetchUrl = `${url}&a_bogus=${douyinSign.AB(url)}`;
|
|
1503
|
-
const
|
|
1504
|
-
|
|
1524
|
+
const customConfig = {
|
|
1525
|
+
...baseRequestConfig,
|
|
1505
1526
|
headers: {
|
|
1506
|
-
...
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1527
|
+
...baseRequestConfig.headers,
|
|
1528
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
|
|
1529
|
+
Referer: `https://www.douyin.com/user/${data2.sec_uid}`
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
};
|
|
1533
|
+
const UserInfoData = await GlobalGetData2(data2.methodType, {
|
|
1534
|
+
...customConfig,
|
|
1535
|
+
url: fetchUrl
|
|
1510
1536
|
});
|
|
1511
|
-
if (!((
|
|
1512
|
-
logger.error((((
|
|
1537
|
+
if (!((_c = UserInfoData == null ? void 0 : UserInfoData.user) == null ? void 0 : _c.live_status) || UserInfoData.user.live_status !== 1) {
|
|
1538
|
+
logger.error((((_d = UserInfoData == null ? void 0 : UserInfoData.user) == null ? void 0 : _d.nickname) || "\u7528\u6237") + "\u5F53\u524D\u672A\u5728\u76F4\u64AD");
|
|
1513
1539
|
const Err = {
|
|
1514
1540
|
errorDescription: "\u68C0\u67E5\u5931\u8D25\uFF01\u8BE5\u7528\u6237\u5F53\u524D\u672A\u5728\u76F4\u64AD\uFF01 TypeError: Cannot read properties of undefined (reading 'live_status')",
|
|
1515
1541
|
requestType: data2.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
|
|
@@ -1532,31 +1558,36 @@ var DouyinData = async (data2, cookie) => {
|
|
|
1532
1558
|
}
|
|
1533
1559
|
const room_data = JSON.parse(UserInfoData.user.room_data);
|
|
1534
1560
|
url = douyinApiUrls.\u76F4\u64AD\u95F4\u4FE1\u606F({ room_id: UserInfoData.user.room_id_str, web_rid: room_data.owner.web_rid });
|
|
1535
|
-
const
|
|
1536
|
-
|
|
1561
|
+
const liveCustomConfig = {
|
|
1562
|
+
...baseRequestConfig,
|
|
1537
1563
|
headers: {
|
|
1538
|
-
...
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1564
|
+
...baseRequestConfig.headers,
|
|
1565
|
+
...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
|
|
1566
|
+
Referer: `https://live.douyin.com/${room_data.owner.web_rid}`
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
};
|
|
1570
|
+
const LiveRoomData = await GlobalGetData2(data2.methodType, {
|
|
1571
|
+
...liveCustomConfig,
|
|
1572
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1542
1573
|
});
|
|
1543
1574
|
return LiveRoomData;
|
|
1544
1575
|
}
|
|
1545
1576
|
case "\u7533\u8BF7\u4E8C\u7EF4\u7801\u6570\u636E": {
|
|
1546
1577
|
const url = douyinApiUrls.\u7533\u8BF7\u4E8C\u7EF4\u7801({ verify_fp: data2.verify_fp });
|
|
1547
|
-
const LoginQrcodeStatusData = await GlobalGetData2({
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
...data2
|
|
1578
|
+
const LoginQrcodeStatusData = await GlobalGetData2(data2.methodType, {
|
|
1579
|
+
...baseRequestConfig,
|
|
1580
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1551
1581
|
});
|
|
1552
1582
|
return LoginQrcodeStatusData;
|
|
1553
1583
|
}
|
|
1554
|
-
default:
|
|
1555
|
-
logger.warn(`\u672A\u77E5\
|
|
1584
|
+
default: {
|
|
1585
|
+
logger.warn(`\u672A\u77E5\u7684\u6296\u97F3\u6570\u636E\u63A5\u53E3\uFF1A\u300C${logger.red(data2.methodType)}\u300D`);
|
|
1556
1586
|
return null;
|
|
1587
|
+
}
|
|
1557
1588
|
}
|
|
1558
1589
|
};
|
|
1559
|
-
var fetchPaginatedData = async (apiUrlGenerator, params, maxPageSize,
|
|
1590
|
+
var fetchPaginatedData = async (type, apiUrlGenerator, params, maxPageSize, requestConfig) => {
|
|
1560
1591
|
let cursor = params.cursor ?? 0;
|
|
1561
1592
|
let fetchedData = [];
|
|
1562
1593
|
let tmpresp = {};
|
|
@@ -1567,10 +1598,9 @@ var fetchPaginatedData = async (apiUrlGenerator, params, maxPageSize, headers2)
|
|
|
1567
1598
|
number: requestCount,
|
|
1568
1599
|
cursor
|
|
1569
1600
|
});
|
|
1570
|
-
const response = await GlobalGetData2({
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
...params
|
|
1601
|
+
const response = await GlobalGetData2(type, {
|
|
1602
|
+
...requestConfig,
|
|
1603
|
+
url: `${url}&a_bogus=${douyinSign.AB(url)}`
|
|
1574
1604
|
});
|
|
1575
1605
|
fetchedData.push(...response.comments || response.data || []);
|
|
1576
1606
|
tmpresp = response;
|
|
@@ -1586,20 +1616,20 @@ var fetchPaginatedData = async (apiUrlGenerator, params, maxPageSize, headers2)
|
|
|
1586
1616
|
};
|
|
1587
1617
|
return finalResponse;
|
|
1588
1618
|
};
|
|
1589
|
-
var GlobalGetData2 = async (
|
|
1619
|
+
var GlobalGetData2 = async (type, config) => {
|
|
1590
1620
|
let warningMessage = "";
|
|
1591
1621
|
try {
|
|
1592
|
-
const result = await
|
|
1622
|
+
const result = await fetchData(config);
|
|
1593
1623
|
if (!result || result === "") {
|
|
1594
1624
|
const Err = {
|
|
1595
1625
|
errorDescription: "\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u4F60\u7684\u6296\u97F3ck\u53EF\u80FD\u5DF2\u7ECF\u5931\u6548\uFF01",
|
|
1596
|
-
requestType:
|
|
1597
|
-
requestUrl:
|
|
1626
|
+
requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
|
|
1627
|
+
requestUrl: config.url
|
|
1598
1628
|
};
|
|
1599
1629
|
warningMessage = `
|
|
1600
1630
|
\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow("\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u4F60\u7684\u6296\u97F3ck\u53EF\u80FD\u5DF2\u7ECF\u5931\u6548\uFF01")}
|
|
1601
|
-
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${
|
|
1602
|
-
\u8BF7\u6C42URL\uFF1A${
|
|
1631
|
+
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
|
|
1632
|
+
\u8BF7\u6C42URL\uFF1A${config.url}
|
|
1603
1633
|
`;
|
|
1604
1634
|
logger.warn(warningMessage);
|
|
1605
1635
|
throw {
|
|
@@ -1612,13 +1642,13 @@ var GlobalGetData2 = async (options) => {
|
|
|
1612
1642
|
const filterReason = result.filter_detail.filter_reason;
|
|
1613
1643
|
const Err = {
|
|
1614
1644
|
errorDescription: `\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${filterReason}\uFF01`,
|
|
1615
|
-
requestType:
|
|
1616
|
-
requestUrl:
|
|
1645
|
+
requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
|
|
1646
|
+
requestUrl: config.url
|
|
1617
1647
|
};
|
|
1618
1648
|
warningMessage = `
|
|
1619
1649
|
\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow(filterReason)}
|
|
1620
|
-
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${
|
|
1621
|
-
\u8BF7\u6C42URL\uFF1A${
|
|
1650
|
+
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
|
|
1651
|
+
\u8BF7\u6C42URL\uFF1A${config.url}
|
|
1622
1652
|
`;
|
|
1623
1653
|
logger.warn(warningMessage);
|
|
1624
1654
|
throw {
|
|
@@ -1638,8 +1668,8 @@ var GlobalGetData2 = async (options) => {
|
|
|
1638
1668
|
data: null,
|
|
1639
1669
|
amagiError: {
|
|
1640
1670
|
errorDescription: "\u672A\u77E5\u9519\u8BEF",
|
|
1641
|
-
requestType:
|
|
1642
|
-
requestUrl:
|
|
1671
|
+
requestType: type,
|
|
1672
|
+
requestUrl: config.url
|
|
1643
1673
|
},
|
|
1644
1674
|
amagiMessage: warningMessage
|
|
1645
1675
|
};
|
|
@@ -1696,50 +1726,42 @@ var API = class {
|
|
|
1696
1726
|
var kuaishouApiUrls = new API();
|
|
1697
1727
|
|
|
1698
1728
|
// src/platform/kuaishou/getdata.ts
|
|
1699
|
-
var
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
...defheaders3,
|
|
1710
|
-
cookie: cookie ? cookie.replace(/\s+/g, "") : ""
|
|
1729
|
+
var KuaishouData = async (data2, cookie, requestConfig) => {
|
|
1730
|
+
const defHeaders = getKuaishouDefaultConfig(cookie)["headers"];
|
|
1731
|
+
const baseRequestConfig = {
|
|
1732
|
+
method: "POST",
|
|
1733
|
+
timeout: 1e4,
|
|
1734
|
+
...requestConfig,
|
|
1735
|
+
headers: {
|
|
1736
|
+
...defHeaders,
|
|
1737
|
+
...{}
|
|
1738
|
+
}
|
|
1711
1739
|
};
|
|
1712
1740
|
switch (data2.methodType) {
|
|
1713
1741
|
case "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E": {
|
|
1714
1742
|
const body = kuaishouApiUrls.\u5355\u4E2A\u4F5C\u54C1\u4FE1\u606F({ photoId: data2.photoId });
|
|
1715
|
-
const VideoData = await GlobalGetData3({
|
|
1743
|
+
const VideoData = await GlobalGetData3(data2.methodType, {
|
|
1744
|
+
...baseRequestConfig,
|
|
1716
1745
|
url: body.url,
|
|
1717
|
-
|
|
1718
|
-
headers: headers2,
|
|
1719
|
-
body: body.body,
|
|
1720
|
-
...data2
|
|
1746
|
+
data: body.body
|
|
1721
1747
|
});
|
|
1722
1748
|
return VideoData;
|
|
1723
1749
|
}
|
|
1724
1750
|
case "\u8BC4\u8BBA\u6570\u636E": {
|
|
1725
1751
|
const body = kuaishouApiUrls.\u4F5C\u54C1\u8BC4\u8BBA\u4FE1\u606F({ photoId: data2.photoId });
|
|
1726
|
-
const VideoData = await GlobalGetData3({
|
|
1752
|
+
const VideoData = await GlobalGetData3(data2.methodType, {
|
|
1753
|
+
...baseRequestConfig,
|
|
1727
1754
|
url: body.url,
|
|
1728
|
-
|
|
1729
|
-
headers: headers2,
|
|
1730
|
-
body: body.body,
|
|
1731
|
-
...data2
|
|
1755
|
+
data: body.body
|
|
1732
1756
|
});
|
|
1733
1757
|
return VideoData;
|
|
1734
1758
|
}
|
|
1735
1759
|
case "Emoji\u6570\u636E": {
|
|
1736
1760
|
const body = kuaishouApiUrls.\u8868\u60C5();
|
|
1737
|
-
const EmojiData = await GlobalGetData3({
|
|
1761
|
+
const EmojiData = await GlobalGetData3(data2.methodType, {
|
|
1762
|
+
...baseRequestConfig,
|
|
1738
1763
|
url: body.url,
|
|
1739
|
-
|
|
1740
|
-
headers: headers2,
|
|
1741
|
-
body: body.body,
|
|
1742
|
-
...data2
|
|
1764
|
+
data: body.body
|
|
1743
1765
|
});
|
|
1744
1766
|
return EmojiData;
|
|
1745
1767
|
}
|
|
@@ -1748,22 +1770,22 @@ var KuaishouData = async (data2, cookie) => {
|
|
|
1748
1770
|
return null;
|
|
1749
1771
|
}
|
|
1750
1772
|
};
|
|
1751
|
-
var GlobalGetData3 = async (options) => {
|
|
1773
|
+
var GlobalGetData3 = async (type, options) => {
|
|
1752
1774
|
let warningMessage = "";
|
|
1753
1775
|
try {
|
|
1754
|
-
const result = await
|
|
1776
|
+
const result = await fetchData(options);
|
|
1755
1777
|
if (result === "" || !result || result.result === 2) {
|
|
1756
1778
|
const Err = {
|
|
1757
1779
|
errorDescription: `\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF01`,
|
|
1758
|
-
requestType:
|
|
1780
|
+
requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
|
|
1759
1781
|
requestUrl: options.url,
|
|
1760
|
-
requestBody: JSON.stringify(options.
|
|
1782
|
+
requestBody: JSON.stringify(options.data)
|
|
1761
1783
|
};
|
|
1762
1784
|
warningMessage = `
|
|
1763
1785
|
\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow("\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u4F60\u7684\u5FEB\u624Bck\u53EF\u80FD\u5DF2\u7ECF\u5931\u6548\uFF01")}
|
|
1764
|
-
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${
|
|
1786
|
+
\u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
|
|
1765
1787
|
\u8BF7\u6C42URL\uFF1A${options.url}
|
|
1766
|
-
\u8BF7\u6C42\u53C2\u6570\uFF1A${JSON.stringify(options.
|
|
1788
|
+
\u8BF7\u6C42\u53C2\u6570\uFF1A${JSON.stringify(options.data, null, 2)}
|
|
1767
1789
|
`;
|
|
1768
1790
|
logger.warn(warningMessage);
|
|
1769
1791
|
throw {
|
|
@@ -1783,7 +1805,7 @@ var GlobalGetData3 = async (options) => {
|
|
|
1783
1805
|
data: null,
|
|
1784
1806
|
amagiError: {
|
|
1785
1807
|
errorDescription: "\u672A\u77E5\u9519\u8BEF",
|
|
1786
|
-
requestType:
|
|
1808
|
+
requestType: type,
|
|
1787
1809
|
requestUrl: options.url
|
|
1788
1810
|
},
|
|
1789
1811
|
amagiMessage: warningMessage
|
|
@@ -2007,23 +2029,26 @@ var createErrorResponse = (error, message, code = 500) => {
|
|
|
2007
2029
|
};
|
|
2008
2030
|
|
|
2009
2031
|
// src/model/DataFetchers.ts
|
|
2010
|
-
async function getDouyinData(methodType, optionsOrCookie, cookieOrOptions) {
|
|
2032
|
+
async function getDouyinData(methodType, optionsOrCookie, cookieOrOptions, requestConfig) {
|
|
2011
2033
|
try {
|
|
2012
2034
|
let options;
|
|
2013
2035
|
let cookie;
|
|
2036
|
+
let config;
|
|
2014
2037
|
if (typeof optionsOrCookie === "string") {
|
|
2015
2038
|
cookie = optionsOrCookie;
|
|
2016
2039
|
options = cookieOrOptions;
|
|
2040
|
+
config = requestConfig;
|
|
2017
2041
|
} else {
|
|
2018
2042
|
options = optionsOrCookie;
|
|
2019
2043
|
cookie = cookieOrOptions;
|
|
2044
|
+
config = requestConfig;
|
|
2020
2045
|
}
|
|
2021
2046
|
const { typeMode: _, ...validationOptions } = options || {};
|
|
2022
2047
|
const validatedParams = validateDouyinParams(methodType, validationOptions);
|
|
2023
2048
|
const apiParams = {
|
|
2024
2049
|
...validatedParams
|
|
2025
2050
|
};
|
|
2026
|
-
const rawData = await DouyinData(apiParams, cookie);
|
|
2051
|
+
const rawData = await DouyinData(apiParams, cookie, config);
|
|
2027
2052
|
if (rawData.data === "") {
|
|
2028
2053
|
return createErrorResponse(rawData.amagiError, "\u6296\u97F3\u6570\u636E\u83B7\u53D6\u5931\u8D25");
|
|
2029
2054
|
}
|
|
@@ -2033,7 +2058,7 @@ async function getDouyinData(methodType, optionsOrCookie, cookieOrOptions) {
|
|
|
2033
2058
|
throw new Error(`\u6296\u97F3\u6570\u636E\u83B7\u53D6\u5931\u8D25: ${errorMessage}`);
|
|
2034
2059
|
}
|
|
2035
2060
|
}
|
|
2036
|
-
async function getBilibiliData(methodType, optionsOrCookie, cookieOrOptions) {
|
|
2061
|
+
async function getBilibiliData(methodType, optionsOrCookie, cookieOrOptions, requestConfig) {
|
|
2037
2062
|
try {
|
|
2038
2063
|
let options;
|
|
2039
2064
|
let cookie;
|
|
@@ -2059,7 +2084,7 @@ async function getBilibiliData(methodType, optionsOrCookie, cookieOrOptions) {
|
|
|
2059
2084
|
throw new Error(`B\u7AD9\u6570\u636E\u83B7\u53D6\u5931\u8D25: ${errorMessage}`);
|
|
2060
2085
|
}
|
|
2061
2086
|
}
|
|
2062
|
-
async function getKuaishouData(methodType, optionsOrCookie, cookieOrOptions) {
|
|
2087
|
+
async function getKuaishouData(methodType, optionsOrCookie, cookieOrOptions, requestConfig) {
|
|
2063
2088
|
try {
|
|
2064
2089
|
let options;
|
|
2065
2090
|
let cookie;
|
|
@@ -2225,7 +2250,7 @@ var bilibili = {
|
|
|
2225
2250
|
*/
|
|
2226
2251
|
convertBvToAv: createBilibiliApiMethod("BV\u8F6CAV")
|
|
2227
2252
|
};
|
|
2228
|
-
var createBoundBilibiliApi = (cookie) => {
|
|
2253
|
+
var createBoundBilibiliApi = (cookie, requestConfig) => {
|
|
2229
2254
|
return {
|
|
2230
2255
|
/**
|
|
2231
2256
|
* 获取单个视频作品数据
|
|
@@ -2431,10 +2456,10 @@ var createValidationMiddleware = (validateFn, methodType) => {
|
|
|
2431
2456
|
var createDouyinValidationMiddleware = (methodType) => createValidationMiddleware(validateDouyinParams, methodType);
|
|
2432
2457
|
var createBilibiliValidationMiddleware = (methodType) => createValidationMiddleware(validateBilibiliParams, methodType);
|
|
2433
2458
|
var createKuaishouValidationMiddleware = (methodType) => createValidationMiddleware(validateKuaishouParams, methodType);
|
|
2434
|
-
var createBilibiliRouteHandler = (dataFetcher, methodType, cookie) => {
|
|
2459
|
+
var createBilibiliRouteHandler = (dataFetcher, methodType, cookie, requestConfig = getBilibiliDefaultConfig(cookie)) => {
|
|
2435
2460
|
return async (req, res) => {
|
|
2436
2461
|
try {
|
|
2437
|
-
const result = await dataFetcher(methodType, req.validatedParams, cookie);
|
|
2462
|
+
const result = await dataFetcher(methodType, req.validatedParams, cookie, requestConfig);
|
|
2438
2463
|
res.json({
|
|
2439
2464
|
...result,
|
|
2440
2465
|
requestPath: req.originalUrl
|
|
@@ -2448,97 +2473,97 @@ var createBilibiliRouteHandler = (dataFetcher, methodType, cookie) => {
|
|
|
2448
2473
|
}
|
|
2449
2474
|
};
|
|
2450
2475
|
};
|
|
2451
|
-
var createBilibiliRoutes = (cookie) => {
|
|
2476
|
+
var createBilibiliRoutes = (cookie, requestConfig = getBilibiliDefaultConfig(cookie)) => {
|
|
2452
2477
|
const router = express.Router();
|
|
2453
2478
|
router.get(
|
|
2454
2479
|
"/fetch_one_video",
|
|
2455
2480
|
createBilibiliValidationMiddleware("\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E"),
|
|
2456
|
-
createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie)
|
|
2481
|
+
createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
|
|
2457
2482
|
);
|
|
2458
2483
|
router.get(
|
|
2459
2484
|
"/fetch_video_playurl",
|
|
2460
2485
|
createBilibiliValidationMiddleware("\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E"),
|
|
2461
|
-
createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie)
|
|
2486
|
+
createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
|
|
2462
2487
|
);
|
|
2463
2488
|
router.get(
|
|
2464
2489
|
"/fetch_work_comments",
|
|
2465
2490
|
createBilibiliValidationMiddleware("\u8BC4\u8BBA\u6570\u636E"),
|
|
2466
|
-
createBilibiliRouteHandler(getBilibiliData, "\u8BC4\u8BBA\u6570\u636E", cookie)
|
|
2491
|
+
createBilibiliRouteHandler(getBilibiliData, "\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig)
|
|
2467
2492
|
);
|
|
2468
2493
|
router.get(
|
|
2469
2494
|
"/fetch_user_profile",
|
|
2470
2495
|
createBilibiliValidationMiddleware("\u7528\u6237\u4E3B\u9875\u6570\u636E"),
|
|
2471
|
-
createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie)
|
|
2496
|
+
createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie, requestConfig)
|
|
2472
2497
|
);
|
|
2473
2498
|
router.get(
|
|
2474
2499
|
"/fetch_user_dynamic",
|
|
2475
2500
|
createBilibiliValidationMiddleware("\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E"),
|
|
2476
|
-
createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E", cookie)
|
|
2501
|
+
createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E", cookie, requestConfig)
|
|
2477
2502
|
);
|
|
2478
2503
|
router.get(
|
|
2479
2504
|
"/fetch_emoji_list",
|
|
2480
2505
|
createBilibiliValidationMiddleware("Emoji\u6570\u636E"),
|
|
2481
|
-
createBilibiliRouteHandler(getBilibiliData, "Emoji\u6570\u636E", cookie)
|
|
2506
|
+
createBilibiliRouteHandler(getBilibiliData, "Emoji\u6570\u636E", cookie, requestConfig)
|
|
2482
2507
|
);
|
|
2483
2508
|
router.get(
|
|
2484
2509
|
"/fetch_bangumi_video_info",
|
|
2485
2510
|
createBilibiliValidationMiddleware("\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E"),
|
|
2486
|
-
createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E", cookie)
|
|
2511
|
+
createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
|
|
2487
2512
|
);
|
|
2488
2513
|
router.get(
|
|
2489
2514
|
"/fetch_bangumi_video_playurl",
|
|
2490
2515
|
createBilibiliValidationMiddleware("\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E"),
|
|
2491
|
-
createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie)
|
|
2516
|
+
createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
|
|
2492
2517
|
);
|
|
2493
2518
|
router.get(
|
|
2494
2519
|
"/fetch_dynamic_info",
|
|
2495
2520
|
createBilibiliValidationMiddleware("\u52A8\u6001\u8BE6\u60C5\u6570\u636E"),
|
|
2496
|
-
createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u8BE6\u60C5\u6570\u636E", cookie)
|
|
2521
|
+
createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u8BE6\u60C5\u6570\u636E", cookie, requestConfig)
|
|
2497
2522
|
);
|
|
2498
2523
|
router.get(
|
|
2499
2524
|
"/fetch_dynamic_card",
|
|
2500
2525
|
createBilibiliValidationMiddleware("\u52A8\u6001\u5361\u7247\u6570\u636E"),
|
|
2501
|
-
createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u5361\u7247\u6570\u636E", cookie)
|
|
2526
|
+
createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u5361\u7247\u6570\u636E", cookie, requestConfig)
|
|
2502
2527
|
);
|
|
2503
2528
|
router.get(
|
|
2504
2529
|
"/fetch_live_room_detail",
|
|
2505
2530
|
createBilibiliValidationMiddleware("\u76F4\u64AD\u95F4\u4FE1\u606F"),
|
|
2506
|
-
createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u4FE1\u606F", cookie)
|
|
2531
|
+
createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u4FE1\u606F", cookie, requestConfig)
|
|
2507
2532
|
);
|
|
2508
2533
|
router.get(
|
|
2509
2534
|
"/fetch_liveroom_def",
|
|
2510
2535
|
createBilibiliValidationMiddleware("\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F"),
|
|
2511
|
-
createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F", cookie)
|
|
2536
|
+
createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F", cookie, requestConfig)
|
|
2512
2537
|
);
|
|
2513
2538
|
router.get(
|
|
2514
2539
|
"/login_basic_info",
|
|
2515
2540
|
createBilibiliValidationMiddleware("\u767B\u5F55\u57FA\u672C\u4FE1\u606F"),
|
|
2516
|
-
createBilibiliRouteHandler(getBilibiliData, "\u767B\u5F55\u57FA\u672C\u4FE1\u606F", cookie)
|
|
2541
|
+
createBilibiliRouteHandler(getBilibiliData, "\u767B\u5F55\u57FA\u672C\u4FE1\u606F", cookie, requestConfig)
|
|
2517
2542
|
);
|
|
2518
2543
|
router.get(
|
|
2519
2544
|
"/new_login_qrcode",
|
|
2520
2545
|
createBilibiliValidationMiddleware("\u7533\u8BF7\u4E8C\u7EF4\u7801"),
|
|
2521
|
-
createBilibiliRouteHandler(getBilibiliData, "\u7533\u8BF7\u4E8C\u7EF4\u7801", cookie)
|
|
2546
|
+
createBilibiliRouteHandler(getBilibiliData, "\u7533\u8BF7\u4E8C\u7EF4\u7801", cookie, requestConfig)
|
|
2522
2547
|
);
|
|
2523
2548
|
router.get(
|
|
2524
2549
|
"/check_qrcode",
|
|
2525
2550
|
createBilibiliValidationMiddleware("\u4E8C\u7EF4\u7801\u72B6\u6001"),
|
|
2526
|
-
createBilibiliRouteHandler(getBilibiliData, "\u4E8C\u7EF4\u7801\u72B6\u6001", cookie)
|
|
2551
|
+
createBilibiliRouteHandler(getBilibiliData, "\u4E8C\u7EF4\u7801\u72B6\u6001", cookie, requestConfig)
|
|
2527
2552
|
);
|
|
2528
2553
|
router.get(
|
|
2529
2554
|
"/fetch_user_full_view",
|
|
2530
2555
|
createBilibiliValidationMiddleware("\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF"),
|
|
2531
|
-
createBilibiliRouteHandler(getBilibiliData, "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF", cookie)
|
|
2556
|
+
createBilibiliRouteHandler(getBilibiliData, "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF", cookie, requestConfig)
|
|
2532
2557
|
);
|
|
2533
2558
|
router.get(
|
|
2534
2559
|
"/av_to_bv",
|
|
2535
2560
|
createBilibiliValidationMiddleware("AV\u8F6CBV"),
|
|
2536
|
-
createBilibiliRouteHandler(getBilibiliData, "AV\u8F6CBV", cookie)
|
|
2561
|
+
createBilibiliRouteHandler(getBilibiliData, "AV\u8F6CBV", cookie, requestConfig)
|
|
2537
2562
|
);
|
|
2538
2563
|
router.get(
|
|
2539
2564
|
"/bv_to_av",
|
|
2540
2565
|
createBilibiliValidationMiddleware("BV\u8F6CAV"),
|
|
2541
|
-
createBilibiliRouteHandler(getBilibiliData, "BV\u8F6CAV", cookie)
|
|
2566
|
+
createBilibiliRouteHandler(getBilibiliData, "BV\u8F6CAV", cookie, requestConfig)
|
|
2542
2567
|
);
|
|
2543
2568
|
return router;
|
|
2544
2569
|
};
|
|
@@ -2556,13 +2581,13 @@ var bilibiliUtils = {
|
|
|
2556
2581
|
|
|
2557
2582
|
// src/platform/douyin/DouyinApi.ts
|
|
2558
2583
|
var createDouyinApiMethod = (methodType) => {
|
|
2559
|
-
return async (options, cookie) => {
|
|
2560
|
-
return await getDouyinData(methodType, options, cookie);
|
|
2584
|
+
return async (options, cookie, requestConfig) => {
|
|
2585
|
+
return await getDouyinData(methodType, options, cookie, requestConfig);
|
|
2561
2586
|
};
|
|
2562
2587
|
};
|
|
2563
|
-
var createBoundDouyinApiMethod = (methodType, cookie) => {
|
|
2588
|
+
var createBoundDouyinApiMethod = (methodType, cookie, requestConfig) => {
|
|
2564
2589
|
return async (options) => {
|
|
2565
|
-
return await getDouyinData(methodType, options, cookie);
|
|
2590
|
+
return await getDouyinData(methodType, options, cookie, requestConfig);
|
|
2566
2591
|
};
|
|
2567
2592
|
};
|
|
2568
2593
|
var douyin = {
|
|
@@ -2665,98 +2690,98 @@ var douyin = {
|
|
|
2665
2690
|
*/
|
|
2666
2691
|
getLiveRoomInfo: createDouyinApiMethod("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E")
|
|
2667
2692
|
};
|
|
2668
|
-
var createBoundDouyinApi = (cookie) => {
|
|
2693
|
+
var createBoundDouyinApi = (cookie, requestConfig) => {
|
|
2669
2694
|
return {
|
|
2670
2695
|
/**
|
|
2671
2696
|
* 聚合解析 (视频/图集/合辑)
|
|
2672
2697
|
* @param options 请求参数,包含 aweme_id 和可选的 typeMode
|
|
2673
2698
|
* @returns 统一格式的API响应,包含视频、图集或合辑数据
|
|
2674
2699
|
*/
|
|
2675
|
-
getWorkInfo: createBoundDouyinApiMethod("\u805A\u5408\u89E3\u6790", cookie),
|
|
2700
|
+
getWorkInfo: createBoundDouyinApiMethod("\u805A\u5408\u89E3\u6790", cookie, requestConfig),
|
|
2676
2701
|
/**
|
|
2677
2702
|
* 获取视频作品数据
|
|
2678
2703
|
* @param options 请求参数,包含 aweme_id 和可选的 typeMode
|
|
2679
2704
|
* @returns 统一格式的API响应,包含视频作品详细信息
|
|
2680
2705
|
*/
|
|
2681
|
-
getVideoWorkInfo: createBoundDouyinApiMethod("\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie),
|
|
2706
|
+
getVideoWorkInfo: createBoundDouyinApiMethod("\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
|
|
2682
2707
|
/**
|
|
2683
2708
|
* 获取图集作品数据
|
|
2684
2709
|
* @param options 请求参数,包含 aweme_id 和可选的 typeMode
|
|
2685
2710
|
* @returns 统一格式的API响应,包含图集作品详细信息
|
|
2686
2711
|
*/
|
|
2687
|
-
getImageAlbumWorkInfo: createBoundDouyinApiMethod("\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie),
|
|
2712
|
+
getImageAlbumWorkInfo: createBoundDouyinApiMethod("\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
|
|
2688
2713
|
/**
|
|
2689
2714
|
* 获取合辑作品数据
|
|
2690
2715
|
* @param options 请求参数,包含 aweme_id 和可选的 typeMode
|
|
2691
2716
|
* @returns 统一格式的API响应,包含合辑作品详细信息
|
|
2692
2717
|
*/
|
|
2693
|
-
getSlidesWorkInfo: createBoundDouyinApiMethod("\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie),
|
|
2718
|
+
getSlidesWorkInfo: createBoundDouyinApiMethod("\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
|
|
2694
2719
|
/**
|
|
2695
2720
|
* 获取评论数据
|
|
2696
2721
|
* @param options 请求参数,包含 aweme_id, 可选的 number, cursor 和 typeMode
|
|
2697
2722
|
* @returns 统一格式的API响应,包含评论列表数据
|
|
2698
2723
|
*/
|
|
2699
|
-
getComments: createBoundDouyinApiMethod("\u8BC4\u8BBA\u6570\u636E", cookie),
|
|
2724
|
+
getComments: createBoundDouyinApiMethod("\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig),
|
|
2700
2725
|
/**
|
|
2701
2726
|
* 获取指定评论回复数据
|
|
2702
2727
|
* @param options 请求参数,包含 aweme_id, comment_id, 可选的 number, cursor 和 typeMode
|
|
2703
2728
|
* @returns 统一格式的API响应,包含评论回复数据
|
|
2704
2729
|
*/
|
|
2705
|
-
getCommentReplies: createBoundDouyinApiMethod("\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie),
|
|
2730
|
+
getCommentReplies: createBoundDouyinApiMethod("\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie, requestConfig),
|
|
2706
2731
|
/**
|
|
2707
2732
|
* 获取用户主页数据
|
|
2708
2733
|
* @param options 请求参数,包含 sec_uid 和可选的 typeMode
|
|
2709
2734
|
* @returns 统一格式的API响应,包含用户详细信息
|
|
2710
2735
|
*/
|
|
2711
|
-
getUserProfile: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie),
|
|
2736
|
+
getUserProfile: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie, requestConfig),
|
|
2712
2737
|
/**
|
|
2713
2738
|
* 获取 Emoji 数据
|
|
2714
2739
|
* @param options 可选的请求参数 (主要用于 typeMode)
|
|
2715
2740
|
* @returns 统一格式的API响应,包含Emoji列表数据
|
|
2716
2741
|
*/
|
|
2717
|
-
getEmojiList: createBoundDouyinApiMethod("Emoji\u6570\u636E", cookie),
|
|
2742
|
+
getEmojiList: createBoundDouyinApiMethod("Emoji\u6570\u636E", cookie, requestConfig),
|
|
2718
2743
|
/**
|
|
2719
2744
|
* 获取动态表情数据
|
|
2720
2745
|
* @param options 可选的请求参数 (主要用于 typeMode)
|
|
2721
2746
|
* @returns 统一格式的API响应,包含动态表情数据
|
|
2722
2747
|
*/
|
|
2723
|
-
getEmojiProList: createBoundDouyinApiMethod("\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie),
|
|
2748
|
+
getEmojiProList: createBoundDouyinApiMethod("\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie, requestConfig),
|
|
2724
2749
|
/**
|
|
2725
2750
|
* 获取用户主页视频列表数据
|
|
2726
2751
|
* @param options 请求参数,包含 sec_uid, 可选的 number, max_cursor 和 typeMode
|
|
2727
2752
|
* @returns 统一格式的API响应,包含用户发布的视频列表
|
|
2728
2753
|
*/
|
|
2729
|
-
getUserVideos: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie),
|
|
2754
|
+
getUserVideos: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie, requestConfig),
|
|
2730
2755
|
/**
|
|
2731
2756
|
* 获取音乐数据
|
|
2732
2757
|
* @param options 请求参数,包含 music_id 和可选的 typeMode
|
|
2733
2758
|
* @returns 统一格式的API响应,包含音乐详细信息
|
|
2734
2759
|
*/
|
|
2735
|
-
getMusicInfo: createBoundDouyinApiMethod("\u97F3\u4E50\u6570\u636E", cookie),
|
|
2760
|
+
getMusicInfo: createBoundDouyinApiMethod("\u97F3\u4E50\u6570\u636E", cookie, requestConfig),
|
|
2736
2761
|
/**
|
|
2737
2762
|
* 获取热点词数据
|
|
2738
2763
|
* @param options 请求参数,包含 query, 可选的 number 和 typeMode
|
|
2739
2764
|
* @returns 统一格式的API响应,包含热点搜索词列表
|
|
2740
2765
|
*/
|
|
2741
|
-
getSuggestWords: createBoundDouyinApiMethod("\u70ED\u70B9\u8BCD\u6570\u636E", cookie),
|
|
2766
|
+
getSuggestWords: createBoundDouyinApiMethod("\u70ED\u70B9\u8BCD\u6570\u636E", cookie, requestConfig),
|
|
2742
2767
|
/**
|
|
2743
2768
|
* 获取搜索数据
|
|
2744
2769
|
* @param options 请求参数,包含 query, 可选的 number, search_id, cursor 和 typeMode
|
|
2745
2770
|
* @returns 统一格式的API响应,包含搜索结果数据
|
|
2746
2771
|
*/
|
|
2747
|
-
search: createBoundDouyinApiMethod("\u641C\u7D22\u6570\u636E", cookie),
|
|
2772
|
+
search: createBoundDouyinApiMethod("\u641C\u7D22\u6570\u636E", cookie, requestConfig),
|
|
2748
2773
|
/**
|
|
2749
2774
|
* 获取直播间信息
|
|
2750
2775
|
* @param options 请求参数,包含 sec_uid 和可选的 typeMode
|
|
2751
2776
|
* @returns 统一格式的API响应,包含直播间详细信息
|
|
2752
2777
|
*/
|
|
2753
|
-
getLiveRoomInfo: createBoundDouyinApiMethod("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie)
|
|
2778
|
+
getLiveRoomInfo: createBoundDouyinApiMethod("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
|
|
2754
2779
|
};
|
|
2755
2780
|
};
|
|
2756
|
-
var createDouyinRouteHandler = (dataFetcher, methodType, cookie) => {
|
|
2781
|
+
var createDouyinRouteHandler = (dataFetcher, methodType, cookie, requestConfig = getDouyinDefaultConfig(cookie)) => {
|
|
2757
2782
|
return async (req, res) => {
|
|
2758
2783
|
try {
|
|
2759
|
-
const result = await dataFetcher(methodType, req.validatedParams, cookie);
|
|
2784
|
+
const result = await dataFetcher(methodType, req.validatedParams, cookie, requestConfig);
|
|
2760
2785
|
res.json({
|
|
2761
2786
|
...result,
|
|
2762
2787
|
requestPath: req.originalUrl
|
|
@@ -2770,77 +2795,77 @@ var createDouyinRouteHandler = (dataFetcher, methodType, cookie) => {
|
|
|
2770
2795
|
}
|
|
2771
2796
|
};
|
|
2772
2797
|
};
|
|
2773
|
-
var createDouyinRoutes = (cookie) => {
|
|
2798
|
+
var createDouyinRoutes = (cookie, requestConfig = getDouyinDefaultConfig(cookie)) => {
|
|
2774
2799
|
const router = express.Router();
|
|
2775
2800
|
router.get(
|
|
2776
2801
|
"/fetch_one_work",
|
|
2777
2802
|
createDouyinValidationMiddleware("\u805A\u5408\u89E3\u6790"),
|
|
2778
|
-
createDouyinRouteHandler(getDouyinData, "\u805A\u5408\u89E3\u6790", cookie)
|
|
2803
|
+
createDouyinRouteHandler(getDouyinData, "\u805A\u5408\u89E3\u6790", cookie, requestConfig)
|
|
2779
2804
|
);
|
|
2780
2805
|
router.get(
|
|
2781
2806
|
"/fetch_one_work",
|
|
2782
2807
|
createDouyinValidationMiddleware("\u89C6\u9891\u4F5C\u54C1\u6570\u636E"),
|
|
2783
|
-
createDouyinRouteHandler(getDouyinData, "\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie)
|
|
2808
|
+
createDouyinRouteHandler(getDouyinData, "\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
|
|
2784
2809
|
);
|
|
2785
2810
|
router.get(
|
|
2786
2811
|
"/fetch_one_work",
|
|
2787
2812
|
createDouyinValidationMiddleware("\u56FE\u96C6\u4F5C\u54C1\u6570\u636E"),
|
|
2788
|
-
createDouyinRouteHandler(getDouyinData, "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie)
|
|
2813
|
+
createDouyinRouteHandler(getDouyinData, "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
|
|
2789
2814
|
);
|
|
2790
2815
|
router.get(
|
|
2791
2816
|
"/fetch_one_work",
|
|
2792
2817
|
createDouyinValidationMiddleware("\u5408\u8F91\u4F5C\u54C1\u6570\u636E"),
|
|
2793
|
-
createDouyinRouteHandler(getDouyinData, "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie)
|
|
2818
|
+
createDouyinRouteHandler(getDouyinData, "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
|
|
2794
2819
|
);
|
|
2795
2820
|
router.get(
|
|
2796
2821
|
"/fetch_work_comments",
|
|
2797
2822
|
createDouyinValidationMiddleware("\u8BC4\u8BBA\u6570\u636E"),
|
|
2798
|
-
createDouyinRouteHandler(getDouyinData, "\u8BC4\u8BBA\u6570\u636E", cookie)
|
|
2823
|
+
createDouyinRouteHandler(getDouyinData, "\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig)
|
|
2799
2824
|
);
|
|
2800
2825
|
router.get(
|
|
2801
2826
|
"/fetch_user_info",
|
|
2802
2827
|
createDouyinValidationMiddleware("\u7528\u6237\u4E3B\u9875\u6570\u636E"),
|
|
2803
|
-
createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie)
|
|
2828
|
+
createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie, requestConfig)
|
|
2804
2829
|
);
|
|
2805
2830
|
router.get(
|
|
2806
2831
|
"/fetch_user_post_videos",
|
|
2807
2832
|
createDouyinValidationMiddleware("\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E"),
|
|
2808
|
-
createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie)
|
|
2833
|
+
createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie, requestConfig)
|
|
2809
2834
|
);
|
|
2810
2835
|
router.get(
|
|
2811
2836
|
"/fetch_search_info",
|
|
2812
2837
|
createDouyinValidationMiddleware("\u641C\u7D22\u6570\u636E"),
|
|
2813
|
-
createDouyinRouteHandler(getDouyinData, "\u641C\u7D22\u6570\u636E", cookie)
|
|
2838
|
+
createDouyinRouteHandler(getDouyinData, "\u641C\u7D22\u6570\u636E", cookie, requestConfig)
|
|
2814
2839
|
);
|
|
2815
2840
|
router.get(
|
|
2816
2841
|
"/fetch_suggest_words",
|
|
2817
2842
|
createDouyinValidationMiddleware("\u70ED\u70B9\u8BCD\u6570\u636E"),
|
|
2818
|
-
createDouyinRouteHandler(getDouyinData, "\u70ED\u70B9\u8BCD\u6570\u636E", cookie)
|
|
2843
|
+
createDouyinRouteHandler(getDouyinData, "\u70ED\u70B9\u8BCD\u6570\u636E", cookie, requestConfig)
|
|
2819
2844
|
);
|
|
2820
2845
|
router.get(
|
|
2821
2846
|
"/fetch_music_work",
|
|
2822
2847
|
createDouyinValidationMiddleware("\u97F3\u4E50\u6570\u636E"),
|
|
2823
|
-
createDouyinRouteHandler(getDouyinData, "\u97F3\u4E50\u6570\u636E", cookie)
|
|
2848
|
+
createDouyinRouteHandler(getDouyinData, "\u97F3\u4E50\u6570\u636E", cookie, requestConfig)
|
|
2824
2849
|
);
|
|
2825
2850
|
router.get(
|
|
2826
2851
|
"/fetch_emoji_list",
|
|
2827
2852
|
createDouyinValidationMiddleware("Emoji\u6570\u636E"),
|
|
2828
|
-
createDouyinRouteHandler(getDouyinData, "Emoji\u6570\u636E", cookie)
|
|
2853
|
+
createDouyinRouteHandler(getDouyinData, "Emoji\u6570\u636E", cookie, requestConfig)
|
|
2829
2854
|
);
|
|
2830
2855
|
router.get(
|
|
2831
2856
|
"/fetch_emoji_pro_list",
|
|
2832
2857
|
createDouyinValidationMiddleware("\u52A8\u6001\u8868\u60C5\u6570\u636E"),
|
|
2833
|
-
createDouyinRouteHandler(getDouyinData, "\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie)
|
|
2858
|
+
createDouyinRouteHandler(getDouyinData, "\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie, requestConfig)
|
|
2834
2859
|
);
|
|
2835
2860
|
router.get(
|
|
2836
2861
|
"/fetch_user_live_videos",
|
|
2837
2862
|
createDouyinValidationMiddleware("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E"),
|
|
2838
|
-
createDouyinRouteHandler(getDouyinData, "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie)
|
|
2863
|
+
createDouyinRouteHandler(getDouyinData, "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
|
|
2839
2864
|
);
|
|
2840
2865
|
router.get(
|
|
2841
2866
|
"/fetch_video_comment_replies",
|
|
2842
2867
|
createDouyinValidationMiddleware("\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E"),
|
|
2843
|
-
createDouyinRouteHandler(getDouyinData, "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie)
|
|
2868
|
+
createDouyinRouteHandler(getDouyinData, "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie, requestConfig)
|
|
2844
2869
|
);
|
|
2845
2870
|
return router;
|
|
2846
2871
|
};
|
|
@@ -2851,10 +2876,10 @@ var douyinUtils = {
|
|
|
2851
2876
|
douyinApiUrls,
|
|
2852
2877
|
api: douyin
|
|
2853
2878
|
};
|
|
2854
|
-
var createKuaishouRouteHandler = (dataFetcher, methodType, cookie) => {
|
|
2879
|
+
var createKuaishouRouteHandler = (dataFetcher, methodType, cookie, requestConfig = getKuaishouDefaultConfig(cookie)) => {
|
|
2855
2880
|
return async (req, res) => {
|
|
2856
2881
|
try {
|
|
2857
|
-
const result = await dataFetcher(methodType, req.validatedParams, cookie);
|
|
2882
|
+
const result = await dataFetcher(methodType, req.validatedParams, cookie, requestConfig);
|
|
2858
2883
|
res.json({
|
|
2859
2884
|
...result,
|
|
2860
2885
|
requestPath: req.originalUrl
|
|
@@ -2868,22 +2893,22 @@ var createKuaishouRouteHandler = (dataFetcher, methodType, cookie) => {
|
|
|
2868
2893
|
}
|
|
2869
2894
|
};
|
|
2870
2895
|
};
|
|
2871
|
-
var createKuaishouRoutes = (cookie) => {
|
|
2896
|
+
var createKuaishouRoutes = (cookie, requestConfig = getKuaishouDefaultConfig(cookie)) => {
|
|
2872
2897
|
const router = express.Router();
|
|
2873
2898
|
router.get(
|
|
2874
2899
|
"/fetch_one_work",
|
|
2875
2900
|
createKuaishouValidationMiddleware("\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E"),
|
|
2876
|
-
createKuaishouRouteHandler(getKuaishouData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie)
|
|
2901
|
+
createKuaishouRouteHandler(getKuaishouData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
|
|
2877
2902
|
);
|
|
2878
2903
|
router.get(
|
|
2879
2904
|
"/fetch_work_comments",
|
|
2880
2905
|
createKuaishouValidationMiddleware("\u8BC4\u8BBA\u6570\u636E"),
|
|
2881
|
-
createKuaishouRouteHandler(getKuaishouData, "\u8BC4\u8BBA\u6570\u636E", cookie)
|
|
2906
|
+
createKuaishouRouteHandler(getKuaishouData, "\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig)
|
|
2882
2907
|
);
|
|
2883
2908
|
router.get(
|
|
2884
2909
|
"/fetch_emoji_list",
|
|
2885
2910
|
createKuaishouValidationMiddleware("Emoji\u6570\u636E"),
|
|
2886
|
-
createKuaishouRouteHandler(getKuaishouData, "Emoji\u6570\u636E", cookie)
|
|
2911
|
+
createKuaishouRouteHandler(getKuaishouData, "Emoji\u6570\u636E", cookie, requestConfig)
|
|
2887
2912
|
);
|
|
2888
2913
|
return router;
|
|
2889
2914
|
};
|
|
@@ -2922,7 +2947,7 @@ var kuaishou = {
|
|
|
2922
2947
|
*/
|
|
2923
2948
|
getEmojiList: createKuaishouApiMethod("Emoji\u6570\u636E")
|
|
2924
2949
|
};
|
|
2925
|
-
var createBoundKuaishouApi = (cookie) => {
|
|
2950
|
+
var createBoundKuaishouApi = (cookie, requestConfig) => {
|
|
2926
2951
|
return {
|
|
2927
2952
|
/**
|
|
2928
2953
|
* 获取单个视频作品数据
|
|
@@ -2950,161 +2975,83 @@ var kuaishouUtils = {
|
|
|
2950
2975
|
kuaishouApiUrls,
|
|
2951
2976
|
api: kuaishou
|
|
2952
2977
|
};
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
options = arg3;
|
|
2961
|
-
} else {
|
|
2962
|
-
options = arg2;
|
|
2963
|
-
cookie = arg3;
|
|
2964
|
-
}
|
|
2965
|
-
const data2 = await DouyinData({ ...options, methodType: type }, cookie);
|
|
2966
|
-
return data2;
|
|
2967
|
-
}
|
|
2968
|
-
async function getBilibiliData2(methodType, arg2, arg3) {
|
|
2969
|
-
let cookie;
|
|
2970
|
-
let options;
|
|
2971
|
-
if (typeof arg2 === "string") {
|
|
2972
|
-
cookie = arg2;
|
|
2973
|
-
options = arg3;
|
|
2974
|
-
} else {
|
|
2975
|
-
options = arg2;
|
|
2976
|
-
cookie = arg3;
|
|
2977
|
-
}
|
|
2978
|
-
const data2 = await fetchBilibili({ ...options, methodType }, cookie);
|
|
2979
|
-
return data2;
|
|
2980
|
-
}
|
|
2981
|
-
async function getKuaishouData2(methodType, arg2, arg3) {
|
|
2982
|
-
let cookie;
|
|
2983
|
-
let options;
|
|
2984
|
-
if (typeof arg2 === "string") {
|
|
2985
|
-
cookie = arg2;
|
|
2986
|
-
options = arg3;
|
|
2987
|
-
} else {
|
|
2988
|
-
options = arg2;
|
|
2989
|
-
cookie = arg3;
|
|
2990
|
-
}
|
|
2991
|
-
const data2 = await KuaishouData({ ...options, methodType }, cookie);
|
|
2992
|
-
return data2;
|
|
2993
|
-
}
|
|
2994
|
-
var fetchDouyinData = getDouyinData2;
|
|
2995
|
-
var fetchBilibiliData = getBilibiliData2;
|
|
2996
|
-
var fetchKuaishouData = getKuaishouData2;
|
|
2997
|
-
var v4CompatibilityMiddleware = (req, res, next) => {
|
|
2998
|
-
const originalJson = res.json;
|
|
2999
|
-
res.json = (data2) => {
|
|
3000
|
-
if (data2 && typeof data2 === "object" && "data" in data2 && "message" in data2 && "code" in data2) {
|
|
3001
|
-
const v4Response = {
|
|
3002
|
-
...data2.data,
|
|
3003
|
-
...data2.requestPath && { requestPath: data2.requestPath }
|
|
3004
|
-
};
|
|
3005
|
-
return originalJson.call(void 0, v4Response);
|
|
3006
|
-
}
|
|
3007
|
-
return originalJson.call(void 0, data2);
|
|
3008
|
-
};
|
|
3009
|
-
next();
|
|
3010
|
-
};
|
|
3011
|
-
var amagiClient = class {
|
|
3012
|
-
#douyin;
|
|
3013
|
-
#bilibili;
|
|
3014
|
-
#kuaishou;
|
|
3015
|
-
/**
|
|
3016
|
-
*
|
|
3017
|
-
* @param cookie - 包含抖音ck、B站ck、快手ck的对象
|
|
3018
|
-
*/
|
|
3019
|
-
constructor(options) {
|
|
3020
|
-
this.#douyin = (options == null ? void 0 : options.douyin) ?? "";
|
|
3021
|
-
this.#bilibili = (options == null ? void 0 : options.bilibili) ?? "";
|
|
3022
|
-
this.#kuaishou = (options == null ? void 0 : options.kuaishou) ?? "";
|
|
3023
|
-
}
|
|
3024
|
-
/**
|
|
3025
|
-
* 启动本地 HTTP 服务
|
|
3026
|
-
* @param port - 监听端口
|
|
3027
|
-
* @defaultValue `port` 4567
|
|
3028
|
-
* @returns Express 应用实例
|
|
3029
|
-
*/
|
|
3030
|
-
startClient = (port = 4567) => {
|
|
2978
|
+
var createAmagiClient = (options) => {
|
|
2979
|
+
var _a, _b, _c;
|
|
2980
|
+
const douyinCookie = ((_a = options == null ? void 0 : options.cookies) == null ? void 0 : _a.douyin) ?? "";
|
|
2981
|
+
const bilibiliCookie = ((_b = options == null ? void 0 : options.cookies) == null ? void 0 : _b.bilibili) ?? "";
|
|
2982
|
+
const kuaishouCookie = ((_c = options == null ? void 0 : options.cookies) == null ? void 0 : _c.kuaishou) ?? "";
|
|
2983
|
+
const requestConfig = (options == null ? void 0 : options.request) ?? {};
|
|
2984
|
+
const startServer = (port = 4567) => {
|
|
3031
2985
|
const app = express__default.default();
|
|
2986
|
+
app.use(express__default.default.json());
|
|
2987
|
+
app.use(express__default.default.urlencoded({ extended: true }));
|
|
3032
2988
|
app.get("/", (_req, res) => {
|
|
3033
2989
|
res.redirect(301, "https://amagi.apifox.cn");
|
|
3034
2990
|
});
|
|
3035
2991
|
app.get("/docs", (_req, res) => {
|
|
3036
2992
|
res.redirect(301, "https://amagi.apifox.cn");
|
|
3037
2993
|
});
|
|
3038
|
-
app.use(
|
|
3039
|
-
app.use("/api/
|
|
3040
|
-
app.use("/api/
|
|
3041
|
-
app.use("/api/kuaishou", v4CompatibilityMiddleware);
|
|
3042
|
-
app.use("/api/douyin", createDouyinRoutes(this.#douyin));
|
|
3043
|
-
app.use("/api/bilibili", createBilibiliRoutes(this.#bilibili));
|
|
3044
|
-
app.use("/api/kuaishou", createKuaishouRoutes(this.#kuaishou));
|
|
2994
|
+
app.use("/api/douyin", createDouyinRoutes(douyinCookie, requestConfig));
|
|
2995
|
+
app.use("/api/bilibili", createBilibiliRoutes(bilibiliCookie, requestConfig));
|
|
2996
|
+
app.use("/api/kuaishou", createKuaishouRoutes(kuaishouCookie, requestConfig));
|
|
3045
2997
|
app.listen(port, "::", () => {
|
|
3046
2998
|
logger.mark(`Amagi server listening on ${logger.green(`http://localhost:${port}`)} ${logger.yellow("API docs: https://amagi.apifox.cn ")}`);
|
|
3047
2999
|
});
|
|
3048
3000
|
return app;
|
|
3049
3001
|
};
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
* @param type - 请求数据类型
|
|
3053
|
-
* @param options - 请求参数,是一个对象
|
|
3054
|
-
* @returns 返回接口的原始数据
|
|
3055
|
-
*/
|
|
3056
|
-
getDouyinData = async (methodType, options) => {
|
|
3057
|
-
const fullOptions = {
|
|
3058
|
-
methodType,
|
|
3059
|
-
...options
|
|
3060
|
-
};
|
|
3061
|
-
const result = await getDouyinData2(methodType, this.#douyin, fullOptions);
|
|
3062
|
-
return result && typeof result === "object" && "data" in result ? result.data : result;
|
|
3002
|
+
const startClient = (port = 4567) => {
|
|
3003
|
+
return startServer(port);
|
|
3063
3004
|
};
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
* @param type - 请求数据类型
|
|
3067
|
-
* @param options - 请求参数,是一个对象
|
|
3068
|
-
* @returns 返回接口的原始数据
|
|
3069
|
-
*/
|
|
3070
|
-
getBilibiliData = async (methodType, options) => {
|
|
3071
|
-
const fullOptions = {
|
|
3072
|
-
methodType,
|
|
3073
|
-
...options
|
|
3074
|
-
};
|
|
3075
|
-
const result = await getBilibiliData2(methodType, this.#bilibili, fullOptions);
|
|
3076
|
-
return result && typeof result === "object" && "data" in result ? result.data : result;
|
|
3005
|
+
const getDouyinDataWithCookie = async (methodType, options2) => {
|
|
3006
|
+
return await getDouyinData(methodType, options2, douyinCookie, requestConfig);
|
|
3077
3007
|
};
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3008
|
+
const getBilibiliDataWithCookie = async (methodType, options2) => {
|
|
3009
|
+
return await getBilibiliData(methodType, options2, bilibiliCookie);
|
|
3010
|
+
};
|
|
3011
|
+
const getKuaishouDataWithCookie = async (methodType, options2) => {
|
|
3012
|
+
return await getKuaishouData(methodType, options2, kuaishouCookie);
|
|
3013
|
+
};
|
|
3014
|
+
return {
|
|
3015
|
+
/** 启动本地HTTP服务 */
|
|
3016
|
+
startServer,
|
|
3017
|
+
/** @deprecated 此方法已废弃,请使用 startServer 方法代替 */
|
|
3018
|
+
startClient,
|
|
3019
|
+
getDouyinData: getDouyinDataWithCookie,
|
|
3020
|
+
getBilibiliData: getBilibiliDataWithCookie,
|
|
3021
|
+
getKuaishouData: getKuaishouDataWithCookie,
|
|
3022
|
+
douyin: {
|
|
3023
|
+
...douyinUtils,
|
|
3024
|
+
/** 绑定了cookie和请求配置的抖音API对象,调用时不需要传递cookie */
|
|
3025
|
+
api: createBoundDouyinApi(douyinCookie, requestConfig)
|
|
3026
|
+
},
|
|
3027
|
+
bilibili: {
|
|
3028
|
+
...bilibiliUtils,
|
|
3029
|
+
/** 绑定了cookie和请求配置的B站API对象,调用时不需要传递cookie */
|
|
3030
|
+
api: createBoundBilibiliApi(bilibiliCookie)
|
|
3031
|
+
},
|
|
3032
|
+
kuaishou: {
|
|
3033
|
+
...kuaishouUtils,
|
|
3034
|
+
/** 绑定了cookie和请求配置的快手API对象,调用时不需要传递cookie */
|
|
3035
|
+
api: createBoundKuaishouApi(kuaishouCookie)
|
|
3036
|
+
}
|
|
3091
3037
|
};
|
|
3092
3038
|
};
|
|
3093
3039
|
|
|
3094
3040
|
// src/index.ts
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3041
|
+
var amagiClient = createAmagiClient;
|
|
3042
|
+
function CreateAmagiApp(options = {}) {
|
|
3043
|
+
if (!(this instanceof CreateAmagiApp)) {
|
|
3044
|
+
return createAmagiClient(options);
|
|
3098
3045
|
}
|
|
3099
|
-
return
|
|
3046
|
+
return createAmagiClient(options);
|
|
3100
3047
|
}
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
var CreateApp =
|
|
3048
|
+
CreateAmagiApp.douyin = douyinUtils;
|
|
3049
|
+
CreateAmagiApp.bilibili = bilibiliUtils;
|
|
3050
|
+
CreateAmagiApp.kuaishou = kuaishouUtils;
|
|
3051
|
+
CreateAmagiApp.getDouyinData = getDouyinData;
|
|
3052
|
+
CreateAmagiApp.getBilibiliData = getBilibiliData;
|
|
3053
|
+
CreateAmagiApp.getKuaishouData = getKuaishouData;
|
|
3054
|
+
var CreateApp = CreateAmagiApp;
|
|
3108
3055
|
var Client = CreateApp;
|
|
3109
3056
|
var amagi = Client;
|
|
3110
3057
|
/*!
|
|
@@ -3113,8 +3060,38 @@ var amagi = Client;
|
|
|
3113
3060
|
* GPL-3.0 Licensed
|
|
3114
3061
|
*/
|
|
3115
3062
|
|
|
3063
|
+
exports.ApiError = ApiError;
|
|
3064
|
+
exports.BilibiliAv2BvParamsSchema = BilibiliAv2BvParamsSchema;
|
|
3065
|
+
exports.BilibiliBangumiInfoParamsSchema = BilibiliBangumiInfoParamsSchema;
|
|
3066
|
+
exports.BilibiliBangumiStreamParamsSchema = BilibiliBangumiStreamParamsSchema;
|
|
3067
|
+
exports.BilibiliBv2AvParamsSchema = BilibiliBv2AvParamsSchema;
|
|
3068
|
+
exports.BilibiliCommentParamsSchema = BilibiliCommentParamsSchema;
|
|
3069
|
+
exports.BilibiliDynamicParamsSchema = BilibiliDynamicParamsSchema;
|
|
3070
|
+
exports.BilibiliEmojiParamsSchema = BilibiliEmojiParamsSchema;
|
|
3071
|
+
exports.BilibiliLiveParamsSchema = BilibiliLiveParamsSchema;
|
|
3072
|
+
exports.BilibiliLoginParamsSchema = BilibiliLoginParamsSchema;
|
|
3073
|
+
exports.BilibiliQrcodeParamsSchema = BilibiliQrcodeParamsSchema;
|
|
3074
|
+
exports.BilibiliQrcodeStatusParamsSchema = BilibiliQrcodeStatusParamsSchema;
|
|
3075
|
+
exports.BilibiliUserParamsSchema = BilibiliUserParamsSchema;
|
|
3076
|
+
exports.BilibiliValidationSchemas = BilibiliValidationSchemas2;
|
|
3077
|
+
exports.BilibiliVideoDownloadParamsSchema = BilibiliVideoDownloadParamsSchema;
|
|
3078
|
+
exports.BilibiliVideoParamsSchema = BilibiliVideoParamsSchema;
|
|
3116
3079
|
exports.CreateApp = CreateApp;
|
|
3117
|
-
exports.
|
|
3080
|
+
exports.DouyinCommentParamsSchema = DouyinCommentParamsSchema;
|
|
3081
|
+
exports.DouyinCommentReplyParamsSchema = DouyinCommentReplyParamsSchema;
|
|
3082
|
+
exports.DouyinEmojiListParamsSchema = DouyinEmojiListParamsSchema;
|
|
3083
|
+
exports.DouyinEmojiProParamsSchema = DouyinEmojiProParamsSchema;
|
|
3084
|
+
exports.DouyinMusicParamsSchema = DouyinMusicParamsSchema;
|
|
3085
|
+
exports.DouyinQrcodeParamsSchema = DouyinQrcodeParamsSchema;
|
|
3086
|
+
exports.DouyinSearchParamsSchema = DouyinSearchParamsSchema;
|
|
3087
|
+
exports.DouyinUserParamsSchema = DouyinUserParamsSchema;
|
|
3088
|
+
exports.DouyinValidationSchemas = DouyinValidationSchemas2;
|
|
3089
|
+
exports.DouyinWorkParamsSchema = DouyinWorkParamsSchema;
|
|
3090
|
+
exports.KuaishouCommentParamsSchema = KuaishouCommentParamsSchema;
|
|
3091
|
+
exports.KuaishouEmojiParamsSchema = KuaishouEmojiParamsSchema;
|
|
3092
|
+
exports.KuaishouValidationSchemas = KuaishouValidationSchemas2;
|
|
3093
|
+
exports.KuaishouVideoParamsSchema = KuaishouVideoParamsSchema;
|
|
3094
|
+
exports.ValidationError = ValidationError;
|
|
3118
3095
|
exports.amagi = amagi;
|
|
3119
3096
|
exports.amagiClient = amagiClient;
|
|
3120
3097
|
exports.av2bv = av2bv;
|
|
@@ -3123,23 +3100,27 @@ exports.bilibiliApiUrls = bilibiliApiUrls;
|
|
|
3123
3100
|
exports.bilibiliErrorCodeMap = bilibiliErrorCodeMap;
|
|
3124
3101
|
exports.bilibiliUtils = bilibiliUtils;
|
|
3125
3102
|
exports.bv2av = bv2av;
|
|
3103
|
+
exports.createAmagiClient = createAmagiClient;
|
|
3126
3104
|
exports.createBilibiliRoutes = createBilibiliRoutes;
|
|
3127
3105
|
exports.createBoundBilibiliApi = createBoundBilibiliApi;
|
|
3128
3106
|
exports.createBoundDouyinApi = createBoundDouyinApi;
|
|
3129
3107
|
exports.createBoundKuaishouApi = createBoundKuaishouApi;
|
|
3130
3108
|
exports.createDouyinRoutes = createDouyinRoutes;
|
|
3109
|
+
exports.createErrorResponse = createErrorResponse;
|
|
3131
3110
|
exports.createKuaishouRoutes = createKuaishouRoutes;
|
|
3111
|
+
exports.createSuccessResponse = createSuccessResponse;
|
|
3132
3112
|
exports.default = Client;
|
|
3133
3113
|
exports.douyin = douyin;
|
|
3134
3114
|
exports.douyinApiUrls = douyinApiUrls;
|
|
3135
3115
|
exports.douyinSign = douyinSign;
|
|
3136
3116
|
exports.douyinUtils = douyinUtils;
|
|
3137
|
-
exports.
|
|
3138
|
-
exports.
|
|
3139
|
-
exports.
|
|
3140
|
-
exports.
|
|
3141
|
-
exports.
|
|
3142
|
-
exports.getKuaishouData =
|
|
3117
|
+
exports.fetchData = fetchData;
|
|
3118
|
+
exports.fetchResponse = fetchResponse;
|
|
3119
|
+
exports.getBilibiliData = getBilibiliData;
|
|
3120
|
+
exports.getDouyinData = getDouyinData;
|
|
3121
|
+
exports.getHeadersAndData = getHeadersAndData;
|
|
3122
|
+
exports.getKuaishouData = getKuaishouData;
|
|
3123
|
+
exports.handleError = handleError;
|
|
3143
3124
|
exports.httpLogger = httpLogger;
|
|
3144
3125
|
exports.kuaishou = kuaishou;
|
|
3145
3126
|
exports.kuaishouApiUrls = kuaishouApiUrls;
|
|
@@ -3147,7 +3128,10 @@ exports.kuaishouUtils = kuaishouUtils;
|
|
|
3147
3128
|
exports.logMiddleware = logMiddleware;
|
|
3148
3129
|
exports.logger = logger;
|
|
3149
3130
|
exports.qtparam = qtparam;
|
|
3150
|
-
exports.registerBilibiliRoutes =
|
|
3151
|
-
exports.registerDouyinRoutes =
|
|
3131
|
+
exports.registerBilibiliRoutes = createBilibiliRoutes;
|
|
3132
|
+
exports.registerDouyinRoutes = createDouyinRoutes;
|
|
3152
3133
|
exports.registerKuaishouRoutes = createKuaishouRoutes;
|
|
3134
|
+
exports.validateBilibiliParams = validateBilibiliParams;
|
|
3135
|
+
exports.validateDouyinParams = validateDouyinParams;
|
|
3136
|
+
exports.validateKuaishouParams = validateKuaishouParams;
|
|
3153
3137
|
exports.wbi_sign = wbi_sign;
|