@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.
@@ -151,142 +151,49 @@ var logMiddleware = (pathsToLog) => {
151
151
  next();
152
152
  };
153
153
  };
154
- var Networks = class {
155
- url;
156
- method;
157
- headers;
158
- type;
159
- body;
160
- axiosInstance;
161
- isGetResult;
162
- timeout;
163
- timer;
164
- data;
165
- constructor(data2) {
166
- this.headers = data2.headers ?? {};
167
- this.url = data2.url ?? "";
168
- this.type = data2.responseType ?? "json";
169
- this.method = data2.method ?? "GET";
170
- this.body = data2.body ?? null;
171
- this.data = {};
172
- this.timeout = data2.timeout ?? 15e3;
173
- this.isGetResult = false;
174
- this.timer = void 0;
175
- this.axiosInstance = axios.create({
176
- timeout: this.timeout,
177
- headers: this.headers,
178
- maxRedirects: 5,
179
- validateStatus: (status) => {
180
- return status >= 200 && status < 600;
181
- }
182
- });
183
- }
184
- get config() {
185
- let config = {
186
- url: this.url,
187
- method: this.method,
188
- headers: this.headers
189
- };
190
- if (this.method === "POST" && this.body) {
191
- config.data = this.body;
192
- }
193
- return config;
194
- }
195
- async getfetch() {
196
- try {
197
- const result = await this.returnResult();
198
- if (result.status === 504) {
199
- return result;
200
- }
201
- this.isGetResult = true;
202
- return result;
203
- } catch (error) {
204
- logger.info(error);
205
- return false;
206
- }
207
- }
208
- async returnResult() {
209
- return await this.axiosInstance(this.config);
210
- }
211
- /** 最终地址(跟随重定向) */
212
- async getLongLink() {
213
- try {
214
- const response = await this.axiosInstance({
215
- method: "GET",
216
- url: this.url
217
- });
218
- return response.request.res.responseUrl;
219
- } catch (error) {
220
- if (error instanceof AxiosError) {
221
- throw new Error(error.stack);
222
- }
223
- return "";
154
+ var fetchData = async (config) => {
155
+ try {
156
+ const response = await axios(config);
157
+ if (response.status === 429) {
158
+ logger.error("HTTP \u54CD\u5E94\u72B6\u6001\u7801: 429");
159
+ throw new Error("ratelimit triggered, \u89E6\u53D1\u901F\u7387\u9650\u5236\uFF01");
224
160
  }
225
- }
226
- /** 获取首个302 */
227
- async getLocation() {
228
- try {
229
- const response = await this.axiosInstance({
230
- method: "GET",
231
- url: this.url,
232
- maxRedirects: 0,
233
- // 禁止跟随重定向
234
- validateStatus: (status) => status >= 300 && status < 400
235
- // 仅处理3xx响应
236
- });
237
- return response.headers["location"];
238
- } catch (error) {
239
- if (error instanceof AxiosError) {
240
- throw new Error(error.stack);
241
- }
242
- return "";
161
+ return response.data;
162
+ } catch (error) {
163
+ if (error instanceof AxiosError) {
164
+ logger.error("\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25:", error.message);
165
+ throw error;
243
166
  }
167
+ throw error;
244
168
  }
245
- /** 获取数据并处理数据的格式化,默认json */
246
- async getData(new_fetch = "") {
247
- try {
248
- if (!new_fetch) {
249
- const result = await this.returnResult();
250
- if (result.status === 504) {
251
- return result;
252
- }
253
- if (result.status === 429) {
254
- logger.error("HTTP \u54CD\u5E94\u72B6\u6001\u7801: 429");
255
- throw new Error("ratelimit triggered, \u89E6\u53D1 https://www.douyin.com/ \u7684\u901F\u7387\u9650\u5236\uFF01\uFF01\uFF01");
256
- }
257
- this.axiosInstance = result;
258
- this.isGetResult = true;
259
- } else {
260
- this.axiosInstance = new_fetch;
261
- }
262
- return this.axiosInstance.data;
263
- } catch (error) {
264
- if (error instanceof AxiosError) {
265
- throw new Error(error.stack);
266
- }
267
- return false;
169
+ };
170
+ var fetchResponse = async (config) => {
171
+ try {
172
+ return await axios(config);
173
+ } catch (error) {
174
+ if (error instanceof AxiosError) {
175
+ throw error;
268
176
  }
177
+ throw new Error("\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25");
269
178
  }
270
- async getHeadersAndData() {
271
- try {
272
- const result = await this.axiosInstance(this.config);
273
- let headers2 = {};
274
- const fetchHeaders = result.headers;
275
- for (const [key, value] of Object.entries(fetchHeaders)) {
276
- headers2[key] = value;
277
- }
278
- return { headers: headers2, data: result.data };
279
- } catch (error) {
280
- console.error("\u83B7\u53D6\u54CD\u5E94\u5934\u548C\u6570\u636E\u5931\u8D25:", error);
281
- return { headers: null, data: null };
282
- }
179
+ };
180
+ var getHeadersAndData = async (config) => {
181
+ try {
182
+ const response = await fetchResponse(config);
183
+ return {
184
+ headers: response.headers,
185
+ data: response.data
186
+ };
187
+ } catch (error) {
188
+ logger.error("\u83B7\u53D6\u54CD\u5E94\u5934\u548C\u6570\u636E\u5931\u8D25:", error);
189
+ return { headers: {}, data: {} };
283
190
  }
284
191
  };
285
192
 
286
193
  // src/platform/bilibili/qtparam.ts
287
194
  var qtparam = async (BASEURL, cookie) => {
288
195
  if (cookie === "") return { QUERY: "&platform=html5", STATUS: "!isLogin" };
289
- const logininfo = await new Networks({ url: bilibiliApiUrls.\u767B\u5F55\u57FA\u672C\u4FE1\u606F(), headers: { Cookie: cookie } }).getData();
196
+ const logininfo = await fetchData({ url: bilibiliApiUrls.\u767B\u5F55\u57FA\u672C\u4FE1\u606F(), headers: { Cookie: cookie } });
290
197
  const sign = await wbi_sign(BASEURL, cookie);
291
198
  const qn = [6, 16, 32, 64, 74, 80, 112, 116, 120, 125, 126, 127];
292
199
  let isvip;
@@ -513,43 +420,117 @@ var wbi_sign = async (BASEURL, cookie) => {
513
420
  return query;
514
421
  };
515
422
 
423
+ // src/platform/defaultConfigs.ts
424
+ var generateSecChUa = (userAgent) => {
425
+ const chromeMatch = userAgent.match(/Chrome\/(\d+)/);
426
+ const chromeVersion = chromeMatch ? chromeMatch[1] : "125";
427
+ return `"Not)A;Brand";v="8", "Chromium";v="${chromeVersion}", "Google Chrome";v="${chromeVersion}"`;
428
+ };
429
+ var getDouyinDefaultConfig = (cookie, requestConfig) => {
430
+ var _a;
431
+ 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";
432
+ const defHeaders = {
433
+ Accept: "application/json, text/plain, */*",
434
+ "Accept-Encoding": "gzip, deflate, br, zstd",
435
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
436
+ Cookie: cookie ? cookie.replace(/\s+/g, "") : "",
437
+ Priority: "u=1, i",
438
+ Referer: "https://www.douyin.com/",
439
+ "Sec-Ch-Ua": generateSecChUa(finalUserAgent),
440
+ "Sec-Ch-Ua-Mobile": "?0",
441
+ "Sec-Ch-Ua-Platform": '"Windows"',
442
+ "Sec-Fetch-Dest": "empty",
443
+ "Sec-Fetch-Mode": "cors",
444
+ "Sec-Fetch-Site": "same-origin",
445
+ "User-Agent": finalUserAgent
446
+ };
447
+ return {
448
+ method: "GET",
449
+ timeout: 1e4,
450
+ ...requestConfig,
451
+ headers: {
452
+ ...defHeaders,
453
+ ...{}
454
+ }
455
+ };
456
+ };
457
+ var getBilibiliDefaultConfig = (cookie, requestConfig) => {
458
+ const defHeaders = {
459
+ 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",
460
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
461
+ "Cache-Control": "max-age=0",
462
+ Priority: "u=0, i",
463
+ "Sec-Ch-Ua": '"Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
464
+ "Sec-Ch-Ua-Mobile": "?0",
465
+ "Sec-Ch-Ua-Platform": '"Windows"',
466
+ "Sec-Fetch-Dest": "document",
467
+ "Sec-Fetch-Mode": "navigate",
468
+ "Sec-Fetch-Site": "none",
469
+ "Sec-Fetch-User": "?1",
470
+ "Upgrade-Insecure-Requests": "1",
471
+ Referer: "https://www.bilibili.com/",
472
+ Cookie: cookie ? cookie.replace(/\s+/g, "") : ""
473
+ };
474
+ return {
475
+ method: "GET",
476
+ timeout: 1e4,
477
+ ...requestConfig,
478
+ headers: {
479
+ ...defHeaders,
480
+ ...{}
481
+ }
482
+ };
483
+ };
484
+ var getKuaishouDefaultConfig = (cookie, requestConfig) => {
485
+ const defHeaders = {
486
+ Referer: "https://www.kuaishou.com/new-reco",
487
+ Origin: "https://www.kuaishou.com",
488
+ Accept: "application/json, text/plain, */*",
489
+ "Accept-Encoding": "gzip, deflate, br, zstd",
490
+ "Content-Type": "application/json",
491
+ "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
492
+ Priority: "u=0, i",
493
+ "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",
494
+ Cookie: cookie ? cookie.replace(/\s+/g, "") : ""
495
+ };
496
+ return {
497
+ method: "POST",
498
+ timeout: 1e4,
499
+ ...requestConfig,
500
+ headers: {
501
+ ...defHeaders,
502
+ ...{}
503
+ }
504
+ };
505
+ };
506
+
516
507
  // src/platform/bilibili/getdata.ts
517
- var defheaders = {
518
- 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",
519
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
520
- "cache-control": "max-age=0",
521
- priority: "u=0, i",
522
- "sec-ch-ua": "'Microsoft Edge';v='131', 'Chromium';v='131', 'Not_A Brand';v='24'",
523
- "sec-ch-ua-mobile": "?0",
524
- "sec-ch-ua-platform": "'Windows'",
525
- "sec-fetch-dest": "document",
526
- "sec-fetch-mode": "navigate",
527
- "sec-fetch-site": "none",
528
- "sec-fetch-user": "?1",
529
- "upgrade-insecure-requests": "1",
530
- referer: "https://www.bilibili.com/"
531
- };
532
- var fetchBilibili = async (data2, cookie) => {
533
- var _a, _b, _c;
534
- const headers2 = {
535
- ...defheaders,
536
- cookie: cookie ? cookie.replace(/\s+/g, "") : ""
508
+ var fetchBilibili = async (data2, cookie, requestConfig) => {
509
+ var _a, _b, _c, _d, _e, _f;
510
+ const defHeaders = getBilibiliDefaultConfig(cookie)["headers"];
511
+ const baseRequestConfig = {
512
+ method: "GET",
513
+ timeout: 1e4,
514
+ ...requestConfig,
515
+ headers: {
516
+ ...defHeaders,
517
+ ...{}
518
+ }
537
519
  };
538
520
  switch (data2.methodType) {
539
521
  case "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E": {
540
- const INFODATA = await GlobalGetData({
541
- url: bilibiliApiUrls.\u89C6\u9891\u8BE6\u7EC6\u4FE1\u606F({ bvid: data2.bvid }),
542
- ...data2
522
+ const INFODATA = await GlobalGetData(data2.methodType, {
523
+ ...baseRequestConfig,
524
+ url: bilibiliApiUrls.\u89C6\u9891\u8BE6\u7EC6\u4FE1\u606F({ bvid: data2.bvid })
543
525
  });
544
526
  return INFODATA;
545
527
  }
546
528
  case "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E": {
547
529
  const BASEURL = bilibiliApiUrls.\u89C6\u9891\u6D41\u4FE1\u606F({ avid: data2.avid, cid: data2.cid });
548
- const SIGN = await qtparam(BASEURL, headers2.cookie);
549
- const DATA = await GlobalGetData({
550
- url: bilibiliApiUrls.\u89C6\u9891\u6D41\u4FE1\u606F({ avid: data2.avid, cid: data2.cid }) + SIGN.QUERY,
551
- headers: headers2,
552
- ...data2
530
+ const SIGN = await qtparam(BASEURL, (_a = baseRequestConfig.headers) == null ? void 0 : _a.cookie);
531
+ const DATA = await GlobalGetData(data2.methodType, {
532
+ ...baseRequestConfig,
533
+ url: bilibiliApiUrls.\u89C6\u9891\u6D41\u4FE1\u606F({ avid: data2.avid, cid: data2.cid }) + SIGN.QUERY
553
534
  });
554
535
  return DATA;
555
536
  }
@@ -562,10 +543,9 @@ var fetchBilibili = async (data2, cookie) => {
562
543
  let nextPaginationStr = pagination_str;
563
544
  let isEnd = false;
564
545
  const checkStatusUrl = bilibiliApiUrls.\u8BC4\u8BBA\u533A\u72B6\u6001({ oid, type });
565
- const checkStatusRes = await GlobalGetData({
566
- url: checkStatusUrl,
567
- headers: headers2,
568
- ...data2
546
+ const checkStatusRes = await GlobalGetData(data2.methodType, {
547
+ ...baseRequestConfig,
548
+ url: checkStatusUrl
569
549
  });
570
550
  if (checkStatusRes.data === null) {
571
551
  logger.error("\u8BC4\u8BBA\u533A\u672A\u5F00\u653E");
@@ -585,18 +565,17 @@ var fetchBilibili = async (data2, cookie) => {
585
565
  seek_rpid,
586
566
  web_location: web_location ?? "1315875"
587
567
  });
588
- const wbiSignQuery = await wbi_sign(baseUrl, headers2.cookie);
568
+ const wbiSignQuery = await wbi_sign(baseUrl, (_b = baseRequestConfig.headers) == null ? void 0 : _b.cookie);
589
569
  const finalUrl = baseUrl + wbiSignQuery;
590
- const response = await GlobalGetData({
591
- url: finalUrl,
592
- headers: headers2,
593
- ...data2
570
+ const response = await GlobalGetData(data2.methodType, {
571
+ ...baseRequestConfig,
572
+ url: finalUrl
594
573
  });
595
574
  tmpresp = response;
596
- const currentComments = ((_a = response.data) == null ? void 0 : _a.replies) || [];
575
+ const currentComments = ((_c = response.data) == null ? void 0 : _c.replies) || [];
597
576
  fetchedComments.push(...currentComments);
598
- if ((_b = response.data) == null ? void 0 : _b.cursor) {
599
- nextPaginationStr = (_c = response.data.cursor.pagination_reply) == null ? void 0 : _c.next_offset;
577
+ if ((_d = response.data) == null ? void 0 : _d.cursor) {
578
+ nextPaginationStr = (_e = response.data.cursor.pagination_reply) == null ? void 0 : _e.next_offset;
600
579
  isEnd = response.data.cursor.is_end;
601
580
  } else {
602
581
  isEnd = true;
@@ -618,9 +597,9 @@ var fetchBilibili = async (data2, cookie) => {
618
597
  return finalResponse;
619
598
  }
620
599
  case "Emoji\u6570\u636E": {
621
- return await GlobalGetData({
622
- url: bilibiliApiUrls.\u8868\u60C5\u5217\u8868(),
623
- ...data2
600
+ return await GlobalGetData(data2.methodType, {
601
+ ...baseRequestConfig,
602
+ url: bilibiliApiUrls.\u8868\u60C5\u5217\u8868()
624
603
  });
625
604
  }
626
605
  case "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E": {
@@ -630,106 +609,121 @@ var fetchBilibili = async (data2, cookie) => {
630
609
  }
631
610
  const idType = id ? id.startsWith("ep") ? "ep_id" : "season_id" : "ep_id";
632
611
  const newId = idType === "ep_id" ? id.replace("ep", "") : id.replace("ss", "");
633
- const INFO = await GlobalGetData({
634
- url: bilibiliApiUrls.\u756A\u5267\u660E\u7EC6({ [idType]: newId }),
635
- headers: headers2,
636
- ...data2
612
+ const INFO = await GlobalGetData(data2.methodType, {
613
+ ...baseRequestConfig,
614
+ url: bilibiliApiUrls.\u756A\u5267\u660E\u7EC6({ [idType]: newId })
637
615
  });
638
616
  return INFO;
639
617
  }
640
618
  case "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E": {
641
619
  const BASEURL = bilibiliApiUrls.\u756A\u5267\u89C6\u9891\u6D41\u4FE1\u606F({ cid: data2.cid, ep_id: data2.ep_id.replace("ep", "") });
642
- const SIGN = await qtparam(BASEURL, headers2.cookie);
643
- const DATA = await GlobalGetData({
644
- url: bilibiliApiUrls.\u756A\u5267\u89C6\u9891\u6D41\u4FE1\u606F({ cid: data2.cid, ep_id: data2.ep_id.replace("ep", "") }) + SIGN.QUERY,
645
- headers: headers2,
646
- ...data2
620
+ const SIGN = await qtparam(BASEURL, (_f = baseRequestConfig.headers) == null ? void 0 : _f.cookie);
621
+ const DATA = await GlobalGetData(data2.methodType, {
622
+ ...baseRequestConfig,
623
+ url: bilibiliApiUrls.\u756A\u5267\u89C6\u9891\u6D41\u4FE1\u606F({ cid: data2.cid, ep_id: data2.ep_id.replace("ep", "") }) + SIGN.QUERY
647
624
  });
648
625
  return DATA;
649
626
  }
650
627
  case "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E": {
651
- delete headers2.referer;
628
+ const customConfig = {
629
+ ...baseRequestConfig,
630
+ headers: {
631
+ ...baseRequestConfig.headers,
632
+ // 只有在外部配置没有referer时才删除内部的referer
633
+ ...{
634
+ referer: void 0
635
+ }
636
+ }
637
+ };
652
638
  const { host_mid } = data2;
653
- const result = await GlobalGetData({
654
- url: bilibiliApiUrls.\u7528\u6237\u7A7A\u95F4\u52A8\u6001({ host_mid }),
655
- headers: headers2,
656
- ...data2
639
+ const result = await GlobalGetData(data2.methodType, {
640
+ ...customConfig,
641
+ url: bilibiliApiUrls.\u7528\u6237\u7A7A\u95F4\u52A8\u6001({ host_mid })
657
642
  });
658
643
  return result;
659
644
  }
660
645
  case "\u52A8\u6001\u8BE6\u60C5\u6570\u636E": {
661
- delete headers2.referer;
662
- const dynamicINFO = await GlobalGetData({
663
- url: bilibiliApiUrls.\u52A8\u6001\u8BE6\u60C5({ dynamic_id: data2.dynamic_id }),
664
- headers: headers2,
665
- ...data2
646
+ const customConfig = {
647
+ ...baseRequestConfig,
648
+ headers: {
649
+ ...baseRequestConfig.headers,
650
+ // 只有在外部配置没有referer时才删除内部的referer
651
+ ...{
652
+ referer: void 0
653
+ }
654
+ }
655
+ };
656
+ const dynamicINFO = await GlobalGetData(data2.methodType, {
657
+ ...customConfig,
658
+ url: bilibiliApiUrls.\u52A8\u6001\u8BE6\u60C5({ dynamic_id: data2.dynamic_id })
666
659
  });
667
660
  return dynamicINFO;
668
661
  }
669
662
  case "\u52A8\u6001\u5361\u7247\u6570\u636E": {
670
- delete headers2.referer;
663
+ const customConfig = {
664
+ ...baseRequestConfig,
665
+ headers: {
666
+ ...baseRequestConfig.headers,
667
+ // 只有在外部配置没有referer时才删除内部的referer
668
+ ...{
669
+ referer: void 0
670
+ }
671
+ }
672
+ };
671
673
  const { dynamic_id } = data2;
672
- const dynamicINFO_CARD = await GlobalGetData({
673
- url: bilibiliApiUrls.\u52A8\u6001\u5361\u7247\u4FE1\u606F({ dynamic_id }),
674
- headers: headers2,
675
- ...data2
674
+ const dynamicINFO_CARD = await GlobalGetData(data2.methodType, {
675
+ ...customConfig,
676
+ url: bilibiliApiUrls.\u52A8\u6001\u5361\u7247\u4FE1\u606F({ dynamic_id })
676
677
  });
677
678
  return dynamicINFO_CARD;
678
679
  }
679
680
  case "\u7528\u6237\u4E3B\u9875\u6570\u636E": {
680
681
  const { host_mid } = data2;
681
- const result = await GlobalGetData({
682
- url: bilibiliApiUrls.\u7528\u6237\u540D\u7247\u4FE1\u606F({ host_mid }),
683
- headers: headers2,
684
- ...data2
682
+ const result = await GlobalGetData(data2.methodType, {
683
+ ...baseRequestConfig,
684
+ url: bilibiliApiUrls.\u7528\u6237\u540D\u7247\u4FE1\u606F({ host_mid })
685
685
  });
686
686
  return result;
687
687
  }
688
688
  case "\u76F4\u64AD\u95F4\u4FE1\u606F": {
689
- const result = await GlobalGetData({
690
- url: bilibiliApiUrls.\u76F4\u64AD\u95F4\u4FE1\u606F({ room_id: data2.room_id }),
691
- headers: headers2,
692
- ...data2
689
+ const result = await GlobalGetData(data2.methodType, {
690
+ ...baseRequestConfig,
691
+ url: bilibiliApiUrls.\u76F4\u64AD\u95F4\u4FE1\u606F({ room_id: data2.room_id })
693
692
  });
694
693
  return result;
695
694
  }
696
695
  case "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F": {
697
- const result = await GlobalGetData({
698
- url: bilibiliApiUrls.\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F({ room_id: data2.room_id }),
699
- headers: headers2,
700
- ...data2
696
+ const result = await GlobalGetData(data2.methodType, {
697
+ ...baseRequestConfig,
698
+ url: bilibiliApiUrls.\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F({ room_id: data2.room_id })
701
699
  });
702
700
  return result;
703
701
  }
704
702
  case "\u7533\u8BF7\u4E8C\u7EF4\u7801": {
705
- const result = await GlobalGetData({
706
- url: bilibiliApiUrls.\u7533\u8BF7\u4E8C\u7EF4\u7801(),
707
- headers: headers2,
708
- ...data2
703
+ const result = await GlobalGetData(data2.methodType, {
704
+ ...baseRequestConfig,
705
+ url: bilibiliApiUrls.\u7533\u8BF7\u4E8C\u7EF4\u7801()
709
706
  });
710
707
  return result;
711
708
  }
712
709
  case "\u4E8C\u7EF4\u7801\u72B6\u6001": {
713
- const result = await new Networks({
714
- url: bilibiliApiUrls.\u4E8C\u7EF4\u7801\u72B6\u6001({ qrcode_key: data2.qrcode_key }),
715
- headers: headers2,
716
- ...data2
717
- }).getHeadersAndData();
710
+ const result = await getHeadersAndData({
711
+ ...baseRequestConfig,
712
+ url: bilibiliApiUrls.\u4E8C\u7EF4\u7801\u72B6\u6001({ qrcode_key: data2.qrcode_key })
713
+ });
718
714
  return result;
719
715
  }
720
716
  case "\u767B\u5F55\u57FA\u672C\u4FE1\u606F": {
721
- const result = await GlobalGetData({
722
- url: bilibiliApiUrls.\u767B\u5F55\u57FA\u672C\u4FE1\u606F(),
723
- headers: headers2,
724
- ...data2
717
+ const result = await GlobalGetData(data2.methodType, {
718
+ ...baseRequestConfig,
719
+ url: bilibiliApiUrls.\u767B\u5F55\u57FA\u672C\u4FE1\u606F()
725
720
  });
726
721
  return result;
727
722
  }
728
723
  case "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF": {
729
- const result = await GlobalGetData({
730
- url: bilibiliApiUrls.\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF({ host_mid: data2.host_mid }),
731
- headers: headers2,
732
- ...data2
724
+ const result = await GlobalGetData(data2.methodType, {
725
+ ...baseRequestConfig,
726
+ url: bilibiliApiUrls.\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF({ host_mid: data2.host_mid })
733
727
  });
734
728
  return result;
735
729
  }
@@ -758,19 +752,19 @@ var fetchBilibili = async (data2, cookie) => {
758
752
  return null;
759
753
  }
760
754
  };
761
- var GlobalGetData = async (options) => {
755
+ var GlobalGetData = async (type, options) => {
762
756
  let warningMessage = "";
763
757
  try {
764
- const result = await new Networks(options).getData();
758
+ const result = await fetchData(options);
765
759
  if (!result || result === "") {
766
760
  const Err = {
767
761
  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",
768
- requestType: options.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
762
+ requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
769
763
  requestUrl: options.url
770
764
  };
771
765
  warningMessage = `
772
766
  \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")}
773
- \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${options.methodType}\u300D
767
+ \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
774
768
  \u8BF7\u6C42URL\uFF1A${options.url}
775
769
  `;
776
770
  logger.warn(warningMessage);
@@ -784,13 +778,13 @@ var GlobalGetData = async (options) => {
784
778
  const errorMessage = bilibiliErrorCodeMap[result.code] || result.message || "\u672A\u77E5\u9519\u8BEF";
785
779
  const Err = {
786
780
  errorDescription: `\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${errorMessage}\uFF01`,
787
- requestType: options.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
781
+ requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
788
782
  requestUrl: options.url
789
783
  };
790
784
  warningMessage = `
791
785
  \u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow(errorMessage)}
792
786
  \u9519\u8BEF\u4EE3\u7801\uFF1A${result.code}
793
- \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${options.methodType}\u300D
787
+ \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
794
788
  \u8BF7\u6C42URL\uFF1A${options.url}
795
789
  `;
796
790
  logger.warn(warningMessage);
@@ -811,7 +805,7 @@ var GlobalGetData = async (options) => {
811
805
  data: error.data,
812
806
  amagiError: {
813
807
  errorDescription: "\u672A\u77E5\u9519\u8BEF",
814
- requestType: options.methodType,
808
+ requestType: type,
815
809
  requestUrl: options.url
816
810
  },
817
811
  amagiMessage: warningMessage
@@ -1334,21 +1328,17 @@ var DouyinAPI = class {
1334
1328
  var douyinApiUrls = new DouyinAPI();
1335
1329
 
1336
1330
  // src/platform/douyin/getdata.ts
1337
- var defheaders2 = {
1338
- accept: "*/*",
1339
- priority: "u=0, i",
1340
- "content-type": "application/json; charset=utf-8",
1341
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
1342
- "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",
1343
- referer: "https://www.douyin.com/",
1344
- "accept-encoding": "gzip, deflate, br",
1345
- connection: "keep-alive"
1346
- };
1347
- var DouyinData = async (data2, cookie) => {
1348
- var _a, _b;
1349
- const headers2 = {
1350
- ...defheaders2,
1351
- cookie: cookie ? cookie.replace(/\s+/g, "") : ""
1331
+ var DouyinData = async (data2, cookie, requestConfig) => {
1332
+ var _a, _b, _c, _d;
1333
+ const defHeaders = getDouyinDefaultConfig(cookie)["headers"];
1334
+ const baseRequestConfig = {
1335
+ method: "GET",
1336
+ timeout: 1e4,
1337
+ ...requestConfig,
1338
+ headers: {
1339
+ ...defHeaders,
1340
+ ...(requestConfig == null ? void 0 : requestConfig.headers) || {}
1341
+ }
1352
1342
  };
1353
1343
  switch (data2.methodType) {
1354
1344
  case "\u805A\u5408\u89E3\u6790":
@@ -1356,73 +1346,101 @@ var DouyinData = async (data2, cookie) => {
1356
1346
  case "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E":
1357
1347
  case "\u5408\u8F91\u4F5C\u54C1\u6570\u636E": {
1358
1348
  const url = douyinApiUrls.\u89C6\u9891\u6216\u56FE\u96C6({ aweme_id: data2.aweme_id });
1359
- const VideoData = await GlobalGetData2({
1360
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1361
- headers: headers2,
1362
- ...data2
1349
+ const VideoData = await GlobalGetData2(data2.methodType, {
1350
+ ...baseRequestConfig,
1351
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1363
1352
  });
1364
1353
  return VideoData;
1365
1354
  }
1366
1355
  case "\u8BC4\u8BBA\u6570\u636E": {
1367
1356
  const urlGenerator = (params) => douyinApiUrls.\u8BC4\u8BBA(params);
1368
- const response = await fetchPaginatedData(urlGenerator, data2, 50, headers2);
1357
+ const response = await fetchPaginatedData(
1358
+ data2.methodType,
1359
+ urlGenerator,
1360
+ data2,
1361
+ 50,
1362
+ baseRequestConfig
1363
+ );
1369
1364
  return response;
1370
1365
  }
1371
1366
  case "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E": {
1372
1367
  const urlGenerator = (params) => douyinApiUrls.\u4E8C\u7EA7\u8BC4\u8BBA(params);
1368
+ const customConfig = {
1369
+ ...baseRequestConfig,
1370
+ headers: {
1371
+ ...baseRequestConfig.headers,
1372
+ // 只有在外部配置没有referer时才设置内部的referer
1373
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("referer" in requestConfig.headers)) && {
1374
+ referer: `https://www.douyin.com/note/${data2.aweme_id}`
1375
+ }
1376
+ }
1377
+ };
1373
1378
  const response = await fetchPaginatedData(
1379
+ data2.methodType,
1374
1380
  urlGenerator,
1375
1381
  data2,
1376
1382
  3,
1377
- {
1378
- ...headers2,
1379
- referer: `https://www.douyin.com/note/${data2.aweme_id}`
1380
- }
1383
+ customConfig
1381
1384
  );
1382
1385
  return response;
1383
1386
  }
1384
1387
  case "\u7528\u6237\u4E3B\u9875\u6570\u636E": {
1385
1388
  const url = douyinApiUrls.\u7528\u6237\u4E3B\u9875\u4FE1\u606F({ sec_uid: data2.sec_uid });
1386
- const UserInfoData = await GlobalGetData2({
1387
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1389
+ const customConfig = {
1390
+ ...baseRequestConfig,
1388
1391
  headers: {
1389
- ...headers2,
1390
- Referer: `https://www.douyin.com/user/${data2.sec_uid}`
1391
- },
1392
- ...data2
1392
+ ...baseRequestConfig.headers,
1393
+ // 只有在外部配置没有Referer时才设置内部的Referer
1394
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
1395
+ Referer: `https://www.douyin.com/user/${data2.sec_uid}`
1396
+ }
1397
+ }
1398
+ };
1399
+ const UserInfoData = await GlobalGetData2(data2.methodType, {
1400
+ ...customConfig,
1401
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1393
1402
  });
1394
1403
  return UserInfoData;
1395
1404
  }
1396
1405
  case "Emoji\u6570\u636E": {
1397
1406
  const url = douyinApiUrls.\u8868\u60C5();
1398
- const EmojiData = await GlobalGetData2({
1399
- url,
1400
- headers: headers2,
1401
- ...data2
1407
+ const EmojiData = await GlobalGetData2(data2.methodType, {
1408
+ ...baseRequestConfig,
1409
+ url
1402
1410
  });
1403
1411
  return EmojiData;
1404
1412
  }
1405
1413
  case "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E": {
1406
1414
  const url = douyinApiUrls.\u7528\u6237\u4E3B\u9875\u89C6\u9891({ sec_uid: data2.sec_uid });
1407
- const UserVideoListData = await GlobalGetData2({
1408
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1415
+ const customConfig = {
1416
+ ...baseRequestConfig,
1409
1417
  headers: {
1410
- ...headers2,
1411
- Referer: `https://www.douyin.com/user/${data2.sec_uid}`
1412
- },
1413
- ...data2
1418
+ ...baseRequestConfig.headers,
1419
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
1420
+ Referer: `https://www.douyin.com/user/${data2.sec_uid}`
1421
+ }
1422
+ }
1423
+ };
1424
+ const UserVideoListData = await GlobalGetData2(data2.methodType, {
1425
+ ...customConfig,
1426
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1414
1427
  });
1415
1428
  return UserVideoListData;
1416
1429
  }
1417
1430
  case "\u70ED\u70B9\u8BCD\u6570\u636E": {
1418
1431
  const url = douyinApiUrls.\u70ED\u70B9\u8BCD({ query: data2.query, number: data2.number ?? 10 });
1419
- const SuggestWordsData = await GlobalGetData2({
1420
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1432
+ const customConfig = {
1433
+ ...baseRequestConfig,
1421
1434
  headers: {
1422
- ...headers2,
1423
- Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
1424
- },
1425
- ...data2
1435
+ ...baseRequestConfig.headers,
1436
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
1437
+ Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
1438
+ }
1439
+ }
1440
+ };
1441
+ const SuggestWordsData = await GlobalGetData2(data2.methodType, {
1442
+ ...customConfig,
1443
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1426
1444
  });
1427
1445
  return SuggestWordsData;
1428
1446
  }
@@ -1431,6 +1449,15 @@ var DouyinData = async (data2, cookie) => {
1431
1449
  const maxPageSize = 15;
1432
1450
  let fetchedSearchList = [];
1433
1451
  let tmpresp = {};
1452
+ const customConfig = {
1453
+ ...baseRequestConfig,
1454
+ headers: {
1455
+ ...baseRequestConfig.headers,
1456
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
1457
+ Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
1458
+ }
1459
+ }
1460
+ };
1434
1461
  while (fetchedSearchList.length < Number(data2.number ?? 10)) {
1435
1462
  const requestCount = Math.min(Number(data2.number ?? 50) - fetchedSearchList.length, maxPageSize);
1436
1463
  const url = douyinApiUrls.\u641C\u7D22({
@@ -1438,15 +1465,11 @@ var DouyinData = async (data2, cookie) => {
1438
1465
  number: requestCount,
1439
1466
  search_id: search_id === "" ? void 0 : search_id
1440
1467
  });
1441
- const response = await GlobalGetData2({
1442
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1443
- headers: {
1444
- ...headers2,
1445
- Referer: `https://www.douyin.com/search/${encodeURIComponent(String(data2.query))}`
1446
- },
1447
- ...data2
1468
+ const response = await GlobalGetData2(data2.methodType, {
1469
+ ...customConfig,
1470
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1448
1471
  });
1449
- if (response.data.length === 0) {
1472
+ if (((_a = response.data) == null ? void 0 : _a.length) === 0) {
1450
1473
  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);
1451
1474
  return false;
1452
1475
  }
@@ -1455,7 +1478,7 @@ var DouyinData = async (data2, cookie) => {
1455
1478
  }
1456
1479
  fetchedSearchList.push(...response.data);
1457
1480
  tmpresp = response;
1458
- search_id = response.log_pb.impr_id;
1481
+ search_id = (_b = response.log_pb) == null ? void 0 : _b.impr_id;
1459
1482
  }
1460
1483
  const finalResponse = {
1461
1484
  ...tmpresp,
@@ -1465,35 +1488,38 @@ var DouyinData = async (data2, cookie) => {
1465
1488
  }
1466
1489
  case "\u52A8\u6001\u8868\u60C5\u6570\u636E": {
1467
1490
  const url = douyinApiUrls.\u4E92\u52A8\u8868\u60C5();
1468
- const ExpressionPlusData = await GlobalGetData2({
1469
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1470
- headers: headers2,
1471
- ...data2
1491
+ const ExpressionPlusData = await GlobalGetData2(data2.methodType, {
1492
+ ...baseRequestConfig,
1493
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1472
1494
  });
1473
1495
  return ExpressionPlusData;
1474
1496
  }
1475
1497
  case "\u97F3\u4E50\u6570\u636E": {
1476
1498
  const url = douyinApiUrls.\u80CC\u666F\u97F3\u4E50({ music_id: data2.music_id });
1477
- const MusicData = await GlobalGetData2({
1478
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1479
- headers: headers2,
1480
- ...data2
1499
+ const MusicData = await GlobalGetData2(data2.methodType, {
1500
+ ...baseRequestConfig,
1501
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1481
1502
  });
1482
1503
  return MusicData;
1483
1504
  }
1484
1505
  case "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E": {
1485
1506
  let url = douyinApiUrls.\u7528\u6237\u4E3B\u9875\u4FE1\u606F({ sec_uid: data2.sec_uid });
1486
1507
  const fetchUrl = `${url}&a_bogus=${douyinSign.AB(url)}`;
1487
- const UserInfoData = await GlobalGetData2({
1488
- url: fetchUrl,
1508
+ const customConfig = {
1509
+ ...baseRequestConfig,
1489
1510
  headers: {
1490
- ...headers2,
1491
- Referer: `https://www.douyin.com/user/${data2.sec_uid}`
1492
- },
1493
- ...data2
1511
+ ...baseRequestConfig.headers,
1512
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
1513
+ Referer: `https://www.douyin.com/user/${data2.sec_uid}`
1514
+ }
1515
+ }
1516
+ };
1517
+ const UserInfoData = await GlobalGetData2(data2.methodType, {
1518
+ ...customConfig,
1519
+ url: fetchUrl
1494
1520
  });
1495
- if (!((_a = UserInfoData == null ? void 0 : UserInfoData.user) == null ? void 0 : _a.live_status) || UserInfoData.user.live_status !== 1) {
1496
- logger.error((((_b = UserInfoData == null ? void 0 : UserInfoData.user) == null ? void 0 : _b.nickname) || "\u7528\u6237") + "\u5F53\u524D\u672A\u5728\u76F4\u64AD");
1521
+ if (!((_c = UserInfoData == null ? void 0 : UserInfoData.user) == null ? void 0 : _c.live_status) || UserInfoData.user.live_status !== 1) {
1522
+ logger.error((((_d = UserInfoData == null ? void 0 : UserInfoData.user) == null ? void 0 : _d.nickname) || "\u7528\u6237") + "\u5F53\u524D\u672A\u5728\u76F4\u64AD");
1497
1523
  const Err = {
1498
1524
  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')",
1499
1525
  requestType: data2.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
@@ -1516,31 +1542,36 @@ var DouyinData = async (data2, cookie) => {
1516
1542
  }
1517
1543
  const room_data = JSON.parse(UserInfoData.user.room_data);
1518
1544
  url = douyinApiUrls.\u76F4\u64AD\u95F4\u4FE1\u606F({ room_id: UserInfoData.user.room_id_str, web_rid: room_data.owner.web_rid });
1519
- const LiveRoomData = await GlobalGetData2({
1520
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1545
+ const liveCustomConfig = {
1546
+ ...baseRequestConfig,
1521
1547
  headers: {
1522
- ...headers2,
1523
- Referer: `https://live.douyin.com/${room_data.owner.web_rid}`
1524
- },
1525
- ...data2
1548
+ ...baseRequestConfig.headers,
1549
+ ...(!(requestConfig == null ? void 0 : requestConfig.headers) || !("Referer" in requestConfig.headers)) && {
1550
+ Referer: `https://live.douyin.com/${room_data.owner.web_rid}`
1551
+ }
1552
+ }
1553
+ };
1554
+ const LiveRoomData = await GlobalGetData2(data2.methodType, {
1555
+ ...liveCustomConfig,
1556
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1526
1557
  });
1527
1558
  return LiveRoomData;
1528
1559
  }
1529
1560
  case "\u7533\u8BF7\u4E8C\u7EF4\u7801\u6570\u636E": {
1530
1561
  const url = douyinApiUrls.\u7533\u8BF7\u4E8C\u7EF4\u7801({ verify_fp: data2.verify_fp });
1531
- const LoginQrcodeStatusData = await GlobalGetData2({
1532
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1533
- headers: headers2,
1534
- ...data2
1562
+ const LoginQrcodeStatusData = await GlobalGetData2(data2.methodType, {
1563
+ ...baseRequestConfig,
1564
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1535
1565
  });
1536
1566
  return LoginQrcodeStatusData;
1537
1567
  }
1538
- default:
1539
- logger.warn(`\u672A\u77E5\u7684B\u7AD9\u6570\u636E\u63A5\u53E3\uFF1A\u300C${logger.red(data2.methodType)}\u300D`);
1568
+ default: {
1569
+ logger.warn(`\u672A\u77E5\u7684\u6296\u97F3\u6570\u636E\u63A5\u53E3\uFF1A\u300C${logger.red(data2.methodType)}\u300D`);
1540
1570
  return null;
1571
+ }
1541
1572
  }
1542
1573
  };
1543
- var fetchPaginatedData = async (apiUrlGenerator, params, maxPageSize, headers2) => {
1574
+ var fetchPaginatedData = async (type, apiUrlGenerator, params, maxPageSize, requestConfig) => {
1544
1575
  let cursor = params.cursor ?? 0;
1545
1576
  let fetchedData = [];
1546
1577
  let tmpresp = {};
@@ -1551,10 +1582,9 @@ var fetchPaginatedData = async (apiUrlGenerator, params, maxPageSize, headers2)
1551
1582
  number: requestCount,
1552
1583
  cursor
1553
1584
  });
1554
- const response = await GlobalGetData2({
1555
- url: `${url}&a_bogus=${douyinSign.AB(url)}`,
1556
- headers: headers2,
1557
- ...params
1585
+ const response = await GlobalGetData2(type, {
1586
+ ...requestConfig,
1587
+ url: `${url}&a_bogus=${douyinSign.AB(url)}`
1558
1588
  });
1559
1589
  fetchedData.push(...response.comments || response.data || []);
1560
1590
  tmpresp = response;
@@ -1570,20 +1600,20 @@ var fetchPaginatedData = async (apiUrlGenerator, params, maxPageSize, headers2)
1570
1600
  };
1571
1601
  return finalResponse;
1572
1602
  };
1573
- var GlobalGetData2 = async (options) => {
1603
+ var GlobalGetData2 = async (type, config) => {
1574
1604
  let warningMessage = "";
1575
1605
  try {
1576
- const result = await new Networks(options).getData();
1606
+ const result = await fetchData(config);
1577
1607
  if (!result || result === "") {
1578
1608
  const Err = {
1579
1609
  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",
1580
- requestType: options.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
1581
- requestUrl: options.url
1610
+ requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
1611
+ requestUrl: config.url
1582
1612
  };
1583
1613
  warningMessage = `
1584
1614
  \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")}
1585
- \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${options.methodType}\u300D
1586
- \u8BF7\u6C42URL\uFF1A${options.url}
1615
+ \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
1616
+ \u8BF7\u6C42URL\uFF1A${config.url}
1587
1617
  `;
1588
1618
  logger.warn(warningMessage);
1589
1619
  throw {
@@ -1596,13 +1626,13 @@ var GlobalGetData2 = async (options) => {
1596
1626
  const filterReason = result.filter_detail.filter_reason;
1597
1627
  const Err = {
1598
1628
  errorDescription: `\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${filterReason}\uFF01`,
1599
- requestType: options.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
1600
- requestUrl: options.url
1629
+ requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
1630
+ requestUrl: config.url
1601
1631
  };
1602
1632
  warningMessage = `
1603
1633
  \u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u539F\u56E0\uFF1A${logger.yellow(filterReason)}
1604
- \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${options.methodType}\u300D
1605
- \u8BF7\u6C42URL\uFF1A${options.url}
1634
+ \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
1635
+ \u8BF7\u6C42URL\uFF1A${config.url}
1606
1636
  `;
1607
1637
  logger.warn(warningMessage);
1608
1638
  throw {
@@ -1622,8 +1652,8 @@ var GlobalGetData2 = async (options) => {
1622
1652
  data: null,
1623
1653
  amagiError: {
1624
1654
  errorDescription: "\u672A\u77E5\u9519\u8BEF",
1625
- requestType: options.methodType,
1626
- requestUrl: options.url
1655
+ requestType: type,
1656
+ requestUrl: config.url
1627
1657
  },
1628
1658
  amagiMessage: warningMessage
1629
1659
  };
@@ -1680,50 +1710,42 @@ var API = class {
1680
1710
  var kuaishouApiUrls = new API();
1681
1711
 
1682
1712
  // src/platform/kuaishou/getdata.ts
1683
- var defheaders3 = {
1684
- referer: "https://www.kuaishou.com/new-reco",
1685
- origin: "https://www.kuaishou.com",
1686
- accept: "*/*",
1687
- "content-type": "application/json",
1688
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
1689
- "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"
1690
- };
1691
- var KuaishouData = async (data2, cookie) => {
1692
- const headers2 = {
1693
- ...defheaders3,
1694
- cookie: cookie ? cookie.replace(/\s+/g, "") : ""
1713
+ var KuaishouData = async (data2, cookie, requestConfig) => {
1714
+ const defHeaders = getKuaishouDefaultConfig(cookie)["headers"];
1715
+ const baseRequestConfig = {
1716
+ method: "POST",
1717
+ timeout: 1e4,
1718
+ ...requestConfig,
1719
+ headers: {
1720
+ ...defHeaders,
1721
+ ...{}
1722
+ }
1695
1723
  };
1696
1724
  switch (data2.methodType) {
1697
1725
  case "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E": {
1698
1726
  const body = kuaishouApiUrls.\u5355\u4E2A\u4F5C\u54C1\u4FE1\u606F({ photoId: data2.photoId });
1699
- const VideoData = await GlobalGetData3({
1727
+ const VideoData = await GlobalGetData3(data2.methodType, {
1728
+ ...baseRequestConfig,
1700
1729
  url: body.url,
1701
- method: "POST",
1702
- headers: headers2,
1703
- body: body.body,
1704
- ...data2
1730
+ data: body.body
1705
1731
  });
1706
1732
  return VideoData;
1707
1733
  }
1708
1734
  case "\u8BC4\u8BBA\u6570\u636E": {
1709
1735
  const body = kuaishouApiUrls.\u4F5C\u54C1\u8BC4\u8BBA\u4FE1\u606F({ photoId: data2.photoId });
1710
- const VideoData = await GlobalGetData3({
1736
+ const VideoData = await GlobalGetData3(data2.methodType, {
1737
+ ...baseRequestConfig,
1711
1738
  url: body.url,
1712
- method: "POST",
1713
- headers: headers2,
1714
- body: body.body,
1715
- ...data2
1739
+ data: body.body
1716
1740
  });
1717
1741
  return VideoData;
1718
1742
  }
1719
1743
  case "Emoji\u6570\u636E": {
1720
1744
  const body = kuaishouApiUrls.\u8868\u60C5();
1721
- const EmojiData = await GlobalGetData3({
1745
+ const EmojiData = await GlobalGetData3(data2.methodType, {
1746
+ ...baseRequestConfig,
1722
1747
  url: body.url,
1723
- method: "POST",
1724
- headers: headers2,
1725
- body: body.body,
1726
- ...data2
1748
+ data: body.body
1727
1749
  });
1728
1750
  return EmojiData;
1729
1751
  }
@@ -1732,22 +1754,22 @@ var KuaishouData = async (data2, cookie) => {
1732
1754
  return null;
1733
1755
  }
1734
1756
  };
1735
- var GlobalGetData3 = async (options) => {
1757
+ var GlobalGetData3 = async (type, options) => {
1736
1758
  let warningMessage = "";
1737
1759
  try {
1738
- const result = await new Networks(options).getData();
1760
+ const result = await fetchData(options);
1739
1761
  if (result === "" || !result || result.result === 2) {
1740
1762
  const Err = {
1741
1763
  errorDescription: `\u83B7\u53D6\u54CD\u5E94\u6570\u636E\u5931\u8D25\uFF01\u63A5\u53E3\u8FD4\u56DE\u5185\u5BB9\u4E3A\u7A7A\uFF01`,
1742
- requestType: options.methodType ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
1764
+ requestType: type ?? "\u672A\u77E5\u8BF7\u6C42\u7C7B\u578B",
1743
1765
  requestUrl: options.url,
1744
- requestBody: JSON.stringify(options.body)
1766
+ requestBody: JSON.stringify(options.data)
1745
1767
  };
1746
1768
  warningMessage = `
1747
1769
  \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")}
1748
- \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${options.methodType}\u300D
1770
+ \u8BF7\u6C42\u7C7B\u578B\uFF1A\u300C${type}\u300D
1749
1771
  \u8BF7\u6C42URL\uFF1A${options.url}
1750
- \u8BF7\u6C42\u53C2\u6570\uFF1A${JSON.stringify(options.body, null, 2)}
1772
+ \u8BF7\u6C42\u53C2\u6570\uFF1A${JSON.stringify(options.data, null, 2)}
1751
1773
  `;
1752
1774
  logger.warn(warningMessage);
1753
1775
  throw {
@@ -1767,7 +1789,7 @@ var GlobalGetData3 = async (options) => {
1767
1789
  data: null,
1768
1790
  amagiError: {
1769
1791
  errorDescription: "\u672A\u77E5\u9519\u8BEF",
1770
- requestType: options.methodType,
1792
+ requestType: type,
1771
1793
  requestUrl: options.url
1772
1794
  },
1773
1795
  amagiMessage: warningMessage
@@ -1991,23 +2013,26 @@ var createErrorResponse = (error, message, code = 500) => {
1991
2013
  };
1992
2014
 
1993
2015
  // src/model/DataFetchers.ts
1994
- async function getDouyinData(methodType, optionsOrCookie, cookieOrOptions) {
2016
+ async function getDouyinData(methodType, optionsOrCookie, cookieOrOptions, requestConfig) {
1995
2017
  try {
1996
2018
  let options;
1997
2019
  let cookie;
2020
+ let config;
1998
2021
  if (typeof optionsOrCookie === "string") {
1999
2022
  cookie = optionsOrCookie;
2000
2023
  options = cookieOrOptions;
2024
+ config = requestConfig;
2001
2025
  } else {
2002
2026
  options = optionsOrCookie;
2003
2027
  cookie = cookieOrOptions;
2028
+ config = requestConfig;
2004
2029
  }
2005
2030
  const { typeMode: _, ...validationOptions } = options || {};
2006
2031
  const validatedParams = validateDouyinParams(methodType, validationOptions);
2007
2032
  const apiParams = {
2008
2033
  ...validatedParams
2009
2034
  };
2010
- const rawData = await DouyinData(apiParams, cookie);
2035
+ const rawData = await DouyinData(apiParams, cookie, config);
2011
2036
  if (rawData.data === "") {
2012
2037
  return createErrorResponse(rawData.amagiError, "\u6296\u97F3\u6570\u636E\u83B7\u53D6\u5931\u8D25");
2013
2038
  }
@@ -2017,7 +2042,7 @@ async function getDouyinData(methodType, optionsOrCookie, cookieOrOptions) {
2017
2042
  throw new Error(`\u6296\u97F3\u6570\u636E\u83B7\u53D6\u5931\u8D25: ${errorMessage}`);
2018
2043
  }
2019
2044
  }
2020
- async function getBilibiliData(methodType, optionsOrCookie, cookieOrOptions) {
2045
+ async function getBilibiliData(methodType, optionsOrCookie, cookieOrOptions, requestConfig) {
2021
2046
  try {
2022
2047
  let options;
2023
2048
  let cookie;
@@ -2043,7 +2068,7 @@ async function getBilibiliData(methodType, optionsOrCookie, cookieOrOptions) {
2043
2068
  throw new Error(`B\u7AD9\u6570\u636E\u83B7\u53D6\u5931\u8D25: ${errorMessage}`);
2044
2069
  }
2045
2070
  }
2046
- async function getKuaishouData(methodType, optionsOrCookie, cookieOrOptions) {
2071
+ async function getKuaishouData(methodType, optionsOrCookie, cookieOrOptions, requestConfig) {
2047
2072
  try {
2048
2073
  let options;
2049
2074
  let cookie;
@@ -2209,7 +2234,7 @@ var bilibili = {
2209
2234
  */
2210
2235
  convertBvToAv: createBilibiliApiMethod("BV\u8F6CAV")
2211
2236
  };
2212
- var createBoundBilibiliApi = (cookie) => {
2237
+ var createBoundBilibiliApi = (cookie, requestConfig) => {
2213
2238
  return {
2214
2239
  /**
2215
2240
  * 获取单个视频作品数据
@@ -2415,10 +2440,10 @@ var createValidationMiddleware = (validateFn, methodType) => {
2415
2440
  var createDouyinValidationMiddleware = (methodType) => createValidationMiddleware(validateDouyinParams, methodType);
2416
2441
  var createBilibiliValidationMiddleware = (methodType) => createValidationMiddleware(validateBilibiliParams, methodType);
2417
2442
  var createKuaishouValidationMiddleware = (methodType) => createValidationMiddleware(validateKuaishouParams, methodType);
2418
- var createBilibiliRouteHandler = (dataFetcher, methodType, cookie) => {
2443
+ var createBilibiliRouteHandler = (dataFetcher, methodType, cookie, requestConfig = getBilibiliDefaultConfig(cookie)) => {
2419
2444
  return async (req, res) => {
2420
2445
  try {
2421
- const result = await dataFetcher(methodType, req.validatedParams, cookie);
2446
+ const result = await dataFetcher(methodType, req.validatedParams, cookie, requestConfig);
2422
2447
  res.json({
2423
2448
  ...result,
2424
2449
  requestPath: req.originalUrl
@@ -2432,97 +2457,97 @@ var createBilibiliRouteHandler = (dataFetcher, methodType, cookie) => {
2432
2457
  }
2433
2458
  };
2434
2459
  };
2435
- var createBilibiliRoutes = (cookie) => {
2460
+ var createBilibiliRoutes = (cookie, requestConfig = getBilibiliDefaultConfig(cookie)) => {
2436
2461
  const router = Router();
2437
2462
  router.get(
2438
2463
  "/fetch_one_video",
2439
2464
  createBilibiliValidationMiddleware("\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E"),
2440
- createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie)
2465
+ createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
2441
2466
  );
2442
2467
  router.get(
2443
2468
  "/fetch_video_playurl",
2444
2469
  createBilibiliValidationMiddleware("\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E"),
2445
- createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie)
2470
+ createBilibiliRouteHandler(getBilibiliData, "\u5355\u4E2A\u89C6\u9891\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
2446
2471
  );
2447
2472
  router.get(
2448
2473
  "/fetch_work_comments",
2449
2474
  createBilibiliValidationMiddleware("\u8BC4\u8BBA\u6570\u636E"),
2450
- createBilibiliRouteHandler(getBilibiliData, "\u8BC4\u8BBA\u6570\u636E", cookie)
2475
+ createBilibiliRouteHandler(getBilibiliData, "\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig)
2451
2476
  );
2452
2477
  router.get(
2453
2478
  "/fetch_user_profile",
2454
2479
  createBilibiliValidationMiddleware("\u7528\u6237\u4E3B\u9875\u6570\u636E"),
2455
- createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie)
2480
+ createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie, requestConfig)
2456
2481
  );
2457
2482
  router.get(
2458
2483
  "/fetch_user_dynamic",
2459
2484
  createBilibiliValidationMiddleware("\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E"),
2460
- createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E", cookie)
2485
+ createBilibiliRouteHandler(getBilibiliData, "\u7528\u6237\u4E3B\u9875\u52A8\u6001\u5217\u8868\u6570\u636E", cookie, requestConfig)
2461
2486
  );
2462
2487
  router.get(
2463
2488
  "/fetch_emoji_list",
2464
2489
  createBilibiliValidationMiddleware("Emoji\u6570\u636E"),
2465
- createBilibiliRouteHandler(getBilibiliData, "Emoji\u6570\u636E", cookie)
2490
+ createBilibiliRouteHandler(getBilibiliData, "Emoji\u6570\u636E", cookie, requestConfig)
2466
2491
  );
2467
2492
  router.get(
2468
2493
  "/fetch_bangumi_video_info",
2469
2494
  createBilibiliValidationMiddleware("\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E"),
2470
- createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E", cookie)
2495
+ createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u57FA\u672C\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
2471
2496
  );
2472
2497
  router.get(
2473
2498
  "/fetch_bangumi_video_playurl",
2474
2499
  createBilibiliValidationMiddleware("\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E"),
2475
- createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie)
2500
+ createBilibiliRouteHandler(getBilibiliData, "\u756A\u5267\u4E0B\u8F7D\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
2476
2501
  );
2477
2502
  router.get(
2478
2503
  "/fetch_dynamic_info",
2479
2504
  createBilibiliValidationMiddleware("\u52A8\u6001\u8BE6\u60C5\u6570\u636E"),
2480
- createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u8BE6\u60C5\u6570\u636E", cookie)
2505
+ createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u8BE6\u60C5\u6570\u636E", cookie, requestConfig)
2481
2506
  );
2482
2507
  router.get(
2483
2508
  "/fetch_dynamic_card",
2484
2509
  createBilibiliValidationMiddleware("\u52A8\u6001\u5361\u7247\u6570\u636E"),
2485
- createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u5361\u7247\u6570\u636E", cookie)
2510
+ createBilibiliRouteHandler(getBilibiliData, "\u52A8\u6001\u5361\u7247\u6570\u636E", cookie, requestConfig)
2486
2511
  );
2487
2512
  router.get(
2488
2513
  "/fetch_live_room_detail",
2489
2514
  createBilibiliValidationMiddleware("\u76F4\u64AD\u95F4\u4FE1\u606F"),
2490
- createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u4FE1\u606F", cookie)
2515
+ createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u4FE1\u606F", cookie, requestConfig)
2491
2516
  );
2492
2517
  router.get(
2493
2518
  "/fetch_liveroom_def",
2494
2519
  createBilibiliValidationMiddleware("\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F"),
2495
- createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F", cookie)
2520
+ createBilibiliRouteHandler(getBilibiliData, "\u76F4\u64AD\u95F4\u521D\u59CB\u5316\u4FE1\u606F", cookie, requestConfig)
2496
2521
  );
2497
2522
  router.get(
2498
2523
  "/login_basic_info",
2499
2524
  createBilibiliValidationMiddleware("\u767B\u5F55\u57FA\u672C\u4FE1\u606F"),
2500
- createBilibiliRouteHandler(getBilibiliData, "\u767B\u5F55\u57FA\u672C\u4FE1\u606F", cookie)
2525
+ createBilibiliRouteHandler(getBilibiliData, "\u767B\u5F55\u57FA\u672C\u4FE1\u606F", cookie, requestConfig)
2501
2526
  );
2502
2527
  router.get(
2503
2528
  "/new_login_qrcode",
2504
2529
  createBilibiliValidationMiddleware("\u7533\u8BF7\u4E8C\u7EF4\u7801"),
2505
- createBilibiliRouteHandler(getBilibiliData, "\u7533\u8BF7\u4E8C\u7EF4\u7801", cookie)
2530
+ createBilibiliRouteHandler(getBilibiliData, "\u7533\u8BF7\u4E8C\u7EF4\u7801", cookie, requestConfig)
2506
2531
  );
2507
2532
  router.get(
2508
2533
  "/check_qrcode",
2509
2534
  createBilibiliValidationMiddleware("\u4E8C\u7EF4\u7801\u72B6\u6001"),
2510
- createBilibiliRouteHandler(getBilibiliData, "\u4E8C\u7EF4\u7801\u72B6\u6001", cookie)
2535
+ createBilibiliRouteHandler(getBilibiliData, "\u4E8C\u7EF4\u7801\u72B6\u6001", cookie, requestConfig)
2511
2536
  );
2512
2537
  router.get(
2513
2538
  "/fetch_user_full_view",
2514
2539
  createBilibiliValidationMiddleware("\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF"),
2515
- createBilibiliRouteHandler(getBilibiliData, "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF", cookie)
2540
+ createBilibiliRouteHandler(getBilibiliData, "\u83B7\u53D6UP\u4E3B\u603B\u64AD\u653E\u91CF", cookie, requestConfig)
2516
2541
  );
2517
2542
  router.get(
2518
2543
  "/av_to_bv",
2519
2544
  createBilibiliValidationMiddleware("AV\u8F6CBV"),
2520
- createBilibiliRouteHandler(getBilibiliData, "AV\u8F6CBV", cookie)
2545
+ createBilibiliRouteHandler(getBilibiliData, "AV\u8F6CBV", cookie, requestConfig)
2521
2546
  );
2522
2547
  router.get(
2523
2548
  "/bv_to_av",
2524
2549
  createBilibiliValidationMiddleware("BV\u8F6CAV"),
2525
- createBilibiliRouteHandler(getBilibiliData, "BV\u8F6CAV", cookie)
2550
+ createBilibiliRouteHandler(getBilibiliData, "BV\u8F6CAV", cookie, requestConfig)
2526
2551
  );
2527
2552
  return router;
2528
2553
  };
@@ -2540,13 +2565,13 @@ var bilibiliUtils = {
2540
2565
 
2541
2566
  // src/platform/douyin/DouyinApi.ts
2542
2567
  var createDouyinApiMethod = (methodType) => {
2543
- return async (options, cookie) => {
2544
- return await getDouyinData(methodType, options, cookie);
2568
+ return async (options, cookie, requestConfig) => {
2569
+ return await getDouyinData(methodType, options, cookie, requestConfig);
2545
2570
  };
2546
2571
  };
2547
- var createBoundDouyinApiMethod = (methodType, cookie) => {
2572
+ var createBoundDouyinApiMethod = (methodType, cookie, requestConfig) => {
2548
2573
  return async (options) => {
2549
- return await getDouyinData(methodType, options, cookie);
2574
+ return await getDouyinData(methodType, options, cookie, requestConfig);
2550
2575
  };
2551
2576
  };
2552
2577
  var douyin = {
@@ -2649,98 +2674,98 @@ var douyin = {
2649
2674
  */
2650
2675
  getLiveRoomInfo: createDouyinApiMethod("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E")
2651
2676
  };
2652
- var createBoundDouyinApi = (cookie) => {
2677
+ var createBoundDouyinApi = (cookie, requestConfig) => {
2653
2678
  return {
2654
2679
  /**
2655
2680
  * 聚合解析 (视频/图集/合辑)
2656
2681
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
2657
2682
  * @returns 统一格式的API响应,包含视频、图集或合辑数据
2658
2683
  */
2659
- getWorkInfo: createBoundDouyinApiMethod("\u805A\u5408\u89E3\u6790", cookie),
2684
+ getWorkInfo: createBoundDouyinApiMethod("\u805A\u5408\u89E3\u6790", cookie, requestConfig),
2660
2685
  /**
2661
2686
  * 获取视频作品数据
2662
2687
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
2663
2688
  * @returns 统一格式的API响应,包含视频作品详细信息
2664
2689
  */
2665
- getVideoWorkInfo: createBoundDouyinApiMethod("\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie),
2690
+ getVideoWorkInfo: createBoundDouyinApiMethod("\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
2666
2691
  /**
2667
2692
  * 获取图集作品数据
2668
2693
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
2669
2694
  * @returns 统一格式的API响应,包含图集作品详细信息
2670
2695
  */
2671
- getImageAlbumWorkInfo: createBoundDouyinApiMethod("\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie),
2696
+ getImageAlbumWorkInfo: createBoundDouyinApiMethod("\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
2672
2697
  /**
2673
2698
  * 获取合辑作品数据
2674
2699
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
2675
2700
  * @returns 统一格式的API响应,包含合辑作品详细信息
2676
2701
  */
2677
- getSlidesWorkInfo: createBoundDouyinApiMethod("\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie),
2702
+ getSlidesWorkInfo: createBoundDouyinApiMethod("\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
2678
2703
  /**
2679
2704
  * 获取评论数据
2680
2705
  * @param options 请求参数,包含 aweme_id, 可选的 number, cursor 和 typeMode
2681
2706
  * @returns 统一格式的API响应,包含评论列表数据
2682
2707
  */
2683
- getComments: createBoundDouyinApiMethod("\u8BC4\u8BBA\u6570\u636E", cookie),
2708
+ getComments: createBoundDouyinApiMethod("\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig),
2684
2709
  /**
2685
2710
  * 获取指定评论回复数据
2686
2711
  * @param options 请求参数,包含 aweme_id, comment_id, 可选的 number, cursor 和 typeMode
2687
2712
  * @returns 统一格式的API响应,包含评论回复数据
2688
2713
  */
2689
- getCommentReplies: createBoundDouyinApiMethod("\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie),
2714
+ getCommentReplies: createBoundDouyinApiMethod("\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie, requestConfig),
2690
2715
  /**
2691
2716
  * 获取用户主页数据
2692
2717
  * @param options 请求参数,包含 sec_uid 和可选的 typeMode
2693
2718
  * @returns 统一格式的API响应,包含用户详细信息
2694
2719
  */
2695
- getUserProfile: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie),
2720
+ getUserProfile: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie, requestConfig),
2696
2721
  /**
2697
2722
  * 获取 Emoji 数据
2698
2723
  * @param options 可选的请求参数 (主要用于 typeMode)
2699
2724
  * @returns 统一格式的API响应,包含Emoji列表数据
2700
2725
  */
2701
- getEmojiList: createBoundDouyinApiMethod("Emoji\u6570\u636E", cookie),
2726
+ getEmojiList: createBoundDouyinApiMethod("Emoji\u6570\u636E", cookie, requestConfig),
2702
2727
  /**
2703
2728
  * 获取动态表情数据
2704
2729
  * @param options 可选的请求参数 (主要用于 typeMode)
2705
2730
  * @returns 统一格式的API响应,包含动态表情数据
2706
2731
  */
2707
- getEmojiProList: createBoundDouyinApiMethod("\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie),
2732
+ getEmojiProList: createBoundDouyinApiMethod("\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie, requestConfig),
2708
2733
  /**
2709
2734
  * 获取用户主页视频列表数据
2710
2735
  * @param options 请求参数,包含 sec_uid, 可选的 number, max_cursor 和 typeMode
2711
2736
  * @returns 统一格式的API响应,包含用户发布的视频列表
2712
2737
  */
2713
- getUserVideos: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie),
2738
+ getUserVideos: createBoundDouyinApiMethod("\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie, requestConfig),
2714
2739
  /**
2715
2740
  * 获取音乐数据
2716
2741
  * @param options 请求参数,包含 music_id 和可选的 typeMode
2717
2742
  * @returns 统一格式的API响应,包含音乐详细信息
2718
2743
  */
2719
- getMusicInfo: createBoundDouyinApiMethod("\u97F3\u4E50\u6570\u636E", cookie),
2744
+ getMusicInfo: createBoundDouyinApiMethod("\u97F3\u4E50\u6570\u636E", cookie, requestConfig),
2720
2745
  /**
2721
2746
  * 获取热点词数据
2722
2747
  * @param options 请求参数,包含 query, 可选的 number 和 typeMode
2723
2748
  * @returns 统一格式的API响应,包含热点搜索词列表
2724
2749
  */
2725
- getSuggestWords: createBoundDouyinApiMethod("\u70ED\u70B9\u8BCD\u6570\u636E", cookie),
2750
+ getSuggestWords: createBoundDouyinApiMethod("\u70ED\u70B9\u8BCD\u6570\u636E", cookie, requestConfig),
2726
2751
  /**
2727
2752
  * 获取搜索数据
2728
2753
  * @param options 请求参数,包含 query, 可选的 number, search_id, cursor 和 typeMode
2729
2754
  * @returns 统一格式的API响应,包含搜索结果数据
2730
2755
  */
2731
- search: createBoundDouyinApiMethod("\u641C\u7D22\u6570\u636E", cookie),
2756
+ search: createBoundDouyinApiMethod("\u641C\u7D22\u6570\u636E", cookie, requestConfig),
2732
2757
  /**
2733
2758
  * 获取直播间信息
2734
2759
  * @param options 请求参数,包含 sec_uid 和可选的 typeMode
2735
2760
  * @returns 统一格式的API响应,包含直播间详细信息
2736
2761
  */
2737
- getLiveRoomInfo: createBoundDouyinApiMethod("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie)
2762
+ getLiveRoomInfo: createBoundDouyinApiMethod("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
2738
2763
  };
2739
2764
  };
2740
- var createDouyinRouteHandler = (dataFetcher, methodType, cookie) => {
2765
+ var createDouyinRouteHandler = (dataFetcher, methodType, cookie, requestConfig = getDouyinDefaultConfig(cookie)) => {
2741
2766
  return async (req, res) => {
2742
2767
  try {
2743
- const result = await dataFetcher(methodType, req.validatedParams, cookie);
2768
+ const result = await dataFetcher(methodType, req.validatedParams, cookie, requestConfig);
2744
2769
  res.json({
2745
2770
  ...result,
2746
2771
  requestPath: req.originalUrl
@@ -2754,77 +2779,77 @@ var createDouyinRouteHandler = (dataFetcher, methodType, cookie) => {
2754
2779
  }
2755
2780
  };
2756
2781
  };
2757
- var createDouyinRoutes = (cookie) => {
2782
+ var createDouyinRoutes = (cookie, requestConfig = getDouyinDefaultConfig(cookie)) => {
2758
2783
  const router = Router();
2759
2784
  router.get(
2760
2785
  "/fetch_one_work",
2761
2786
  createDouyinValidationMiddleware("\u805A\u5408\u89E3\u6790"),
2762
- createDouyinRouteHandler(getDouyinData, "\u805A\u5408\u89E3\u6790", cookie)
2787
+ createDouyinRouteHandler(getDouyinData, "\u805A\u5408\u89E3\u6790", cookie, requestConfig)
2763
2788
  );
2764
2789
  router.get(
2765
2790
  "/fetch_one_work",
2766
2791
  createDouyinValidationMiddleware("\u89C6\u9891\u4F5C\u54C1\u6570\u636E"),
2767
- createDouyinRouteHandler(getDouyinData, "\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie)
2792
+ createDouyinRouteHandler(getDouyinData, "\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
2768
2793
  );
2769
2794
  router.get(
2770
2795
  "/fetch_one_work",
2771
2796
  createDouyinValidationMiddleware("\u56FE\u96C6\u4F5C\u54C1\u6570\u636E"),
2772
- createDouyinRouteHandler(getDouyinData, "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie)
2797
+ createDouyinRouteHandler(getDouyinData, "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
2773
2798
  );
2774
2799
  router.get(
2775
2800
  "/fetch_one_work",
2776
2801
  createDouyinValidationMiddleware("\u5408\u8F91\u4F5C\u54C1\u6570\u636E"),
2777
- createDouyinRouteHandler(getDouyinData, "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie)
2802
+ createDouyinRouteHandler(getDouyinData, "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
2778
2803
  );
2779
2804
  router.get(
2780
2805
  "/fetch_work_comments",
2781
2806
  createDouyinValidationMiddleware("\u8BC4\u8BBA\u6570\u636E"),
2782
- createDouyinRouteHandler(getDouyinData, "\u8BC4\u8BBA\u6570\u636E", cookie)
2807
+ createDouyinRouteHandler(getDouyinData, "\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig)
2783
2808
  );
2784
2809
  router.get(
2785
2810
  "/fetch_user_info",
2786
2811
  createDouyinValidationMiddleware("\u7528\u6237\u4E3B\u9875\u6570\u636E"),
2787
- createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie)
2812
+ createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u6570\u636E", cookie, requestConfig)
2788
2813
  );
2789
2814
  router.get(
2790
2815
  "/fetch_user_post_videos",
2791
2816
  createDouyinValidationMiddleware("\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E"),
2792
- createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie)
2817
+ createDouyinRouteHandler(getDouyinData, "\u7528\u6237\u4E3B\u9875\u89C6\u9891\u5217\u8868\u6570\u636E", cookie, requestConfig)
2793
2818
  );
2794
2819
  router.get(
2795
2820
  "/fetch_search_info",
2796
2821
  createDouyinValidationMiddleware("\u641C\u7D22\u6570\u636E"),
2797
- createDouyinRouteHandler(getDouyinData, "\u641C\u7D22\u6570\u636E", cookie)
2822
+ createDouyinRouteHandler(getDouyinData, "\u641C\u7D22\u6570\u636E", cookie, requestConfig)
2798
2823
  );
2799
2824
  router.get(
2800
2825
  "/fetch_suggest_words",
2801
2826
  createDouyinValidationMiddleware("\u70ED\u70B9\u8BCD\u6570\u636E"),
2802
- createDouyinRouteHandler(getDouyinData, "\u70ED\u70B9\u8BCD\u6570\u636E", cookie)
2827
+ createDouyinRouteHandler(getDouyinData, "\u70ED\u70B9\u8BCD\u6570\u636E", cookie, requestConfig)
2803
2828
  );
2804
2829
  router.get(
2805
2830
  "/fetch_music_work",
2806
2831
  createDouyinValidationMiddleware("\u97F3\u4E50\u6570\u636E"),
2807
- createDouyinRouteHandler(getDouyinData, "\u97F3\u4E50\u6570\u636E", cookie)
2832
+ createDouyinRouteHandler(getDouyinData, "\u97F3\u4E50\u6570\u636E", cookie, requestConfig)
2808
2833
  );
2809
2834
  router.get(
2810
2835
  "/fetch_emoji_list",
2811
2836
  createDouyinValidationMiddleware("Emoji\u6570\u636E"),
2812
- createDouyinRouteHandler(getDouyinData, "Emoji\u6570\u636E", cookie)
2837
+ createDouyinRouteHandler(getDouyinData, "Emoji\u6570\u636E", cookie, requestConfig)
2813
2838
  );
2814
2839
  router.get(
2815
2840
  "/fetch_emoji_pro_list",
2816
2841
  createDouyinValidationMiddleware("\u52A8\u6001\u8868\u60C5\u6570\u636E"),
2817
- createDouyinRouteHandler(getDouyinData, "\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie)
2842
+ createDouyinRouteHandler(getDouyinData, "\u52A8\u6001\u8868\u60C5\u6570\u636E", cookie, requestConfig)
2818
2843
  );
2819
2844
  router.get(
2820
2845
  "/fetch_user_live_videos",
2821
2846
  createDouyinValidationMiddleware("\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E"),
2822
- createDouyinRouteHandler(getDouyinData, "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie)
2847
+ createDouyinRouteHandler(getDouyinData, "\u76F4\u64AD\u95F4\u4FE1\u606F\u6570\u636E", cookie, requestConfig)
2823
2848
  );
2824
2849
  router.get(
2825
2850
  "/fetch_video_comment_replies",
2826
2851
  createDouyinValidationMiddleware("\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E"),
2827
- createDouyinRouteHandler(getDouyinData, "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie)
2852
+ createDouyinRouteHandler(getDouyinData, "\u6307\u5B9A\u8BC4\u8BBA\u56DE\u590D\u6570\u636E", cookie, requestConfig)
2828
2853
  );
2829
2854
  return router;
2830
2855
  };
@@ -2835,10 +2860,10 @@ var douyinUtils = {
2835
2860
  douyinApiUrls,
2836
2861
  api: douyin
2837
2862
  };
2838
- var createKuaishouRouteHandler = (dataFetcher, methodType, cookie) => {
2863
+ var createKuaishouRouteHandler = (dataFetcher, methodType, cookie, requestConfig = getKuaishouDefaultConfig(cookie)) => {
2839
2864
  return async (req, res) => {
2840
2865
  try {
2841
- const result = await dataFetcher(methodType, req.validatedParams, cookie);
2866
+ const result = await dataFetcher(methodType, req.validatedParams, cookie, requestConfig);
2842
2867
  res.json({
2843
2868
  ...result,
2844
2869
  requestPath: req.originalUrl
@@ -2852,22 +2877,22 @@ var createKuaishouRouteHandler = (dataFetcher, methodType, cookie) => {
2852
2877
  }
2853
2878
  };
2854
2879
  };
2855
- var createKuaishouRoutes = (cookie) => {
2880
+ var createKuaishouRoutes = (cookie, requestConfig = getKuaishouDefaultConfig(cookie)) => {
2856
2881
  const router = Router();
2857
2882
  router.get(
2858
2883
  "/fetch_one_work",
2859
2884
  createKuaishouValidationMiddleware("\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E"),
2860
- createKuaishouRouteHandler(getKuaishouData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie)
2885
+ createKuaishouRouteHandler(getKuaishouData, "\u5355\u4E2A\u89C6\u9891\u4F5C\u54C1\u6570\u636E", cookie, requestConfig)
2861
2886
  );
2862
2887
  router.get(
2863
2888
  "/fetch_work_comments",
2864
2889
  createKuaishouValidationMiddleware("\u8BC4\u8BBA\u6570\u636E"),
2865
- createKuaishouRouteHandler(getKuaishouData, "\u8BC4\u8BBA\u6570\u636E", cookie)
2890
+ createKuaishouRouteHandler(getKuaishouData, "\u8BC4\u8BBA\u6570\u636E", cookie, requestConfig)
2866
2891
  );
2867
2892
  router.get(
2868
2893
  "/fetch_emoji_list",
2869
2894
  createKuaishouValidationMiddleware("Emoji\u6570\u636E"),
2870
- createKuaishouRouteHandler(getKuaishouData, "Emoji\u6570\u636E", cookie)
2895
+ createKuaishouRouteHandler(getKuaishouData, "Emoji\u6570\u636E", cookie, requestConfig)
2871
2896
  );
2872
2897
  return router;
2873
2898
  };
@@ -2906,7 +2931,7 @@ var kuaishou = {
2906
2931
  */
2907
2932
  getEmojiList: createKuaishouApiMethod("Emoji\u6570\u636E")
2908
2933
  };
2909
- var createBoundKuaishouApi = (cookie) => {
2934
+ var createBoundKuaishouApi = (cookie, requestConfig) => {
2910
2935
  return {
2911
2936
  /**
2912
2937
  * 获取单个视频作品数据
@@ -2934,161 +2959,83 @@ var kuaishouUtils = {
2934
2959
  kuaishouApiUrls,
2935
2960
  api: kuaishou
2936
2961
  };
2937
-
2938
- // src/v4/DataFetchers.ts
2939
- async function getDouyinData2(type, arg2, arg3) {
2940
- let cookie;
2941
- let options;
2942
- if (typeof arg2 === "string") {
2943
- cookie = arg2;
2944
- options = arg3;
2945
- } else {
2946
- options = arg2;
2947
- cookie = arg3;
2948
- }
2949
- const data2 = await DouyinData({ ...options, methodType: type }, cookie);
2950
- return data2;
2951
- }
2952
- async function getBilibiliData2(methodType, arg2, arg3) {
2953
- let cookie;
2954
- let options;
2955
- if (typeof arg2 === "string") {
2956
- cookie = arg2;
2957
- options = arg3;
2958
- } else {
2959
- options = arg2;
2960
- cookie = arg3;
2961
- }
2962
- const data2 = await fetchBilibili({ ...options, methodType }, cookie);
2963
- return data2;
2964
- }
2965
- async function getKuaishouData2(methodType, arg2, arg3) {
2966
- let cookie;
2967
- let options;
2968
- if (typeof arg2 === "string") {
2969
- cookie = arg2;
2970
- options = arg3;
2971
- } else {
2972
- options = arg2;
2973
- cookie = arg3;
2974
- }
2975
- const data2 = await KuaishouData({ ...options, methodType }, cookie);
2976
- return data2;
2977
- }
2978
- var fetchDouyinData = getDouyinData2;
2979
- var fetchBilibiliData = getBilibiliData2;
2980
- var fetchKuaishouData = getKuaishouData2;
2981
- var v4CompatibilityMiddleware = (req, res, next) => {
2982
- const originalJson = res.json;
2983
- res.json = (data2) => {
2984
- if (data2 && typeof data2 === "object" && "data" in data2 && "message" in data2 && "code" in data2) {
2985
- const v4Response = {
2986
- ...data2.data,
2987
- ...data2.requestPath && { requestPath: data2.requestPath }
2988
- };
2989
- return originalJson.call(void 0, v4Response);
2990
- }
2991
- return originalJson.call(void 0, data2);
2992
- };
2993
- next();
2994
- };
2995
- var amagiClient = class {
2996
- #douyin;
2997
- #bilibili;
2998
- #kuaishou;
2999
- /**
3000
- *
3001
- * @param cookie - 包含抖音ck、B站ck、快手ck的对象
3002
- */
3003
- constructor(options) {
3004
- this.#douyin = (options == null ? void 0 : options.douyin) ?? "";
3005
- this.#bilibili = (options == null ? void 0 : options.bilibili) ?? "";
3006
- this.#kuaishou = (options == null ? void 0 : options.kuaishou) ?? "";
3007
- }
3008
- /**
3009
- * 启动本地 HTTP 服务
3010
- * @param port - 监听端口
3011
- * @defaultValue `port` 4567
3012
- * @returns Express 应用实例
3013
- */
3014
- startClient = (port = 4567) => {
2962
+ var createAmagiClient = (options) => {
2963
+ var _a, _b, _c;
2964
+ const douyinCookie = ((_a = options == null ? void 0 : options.cookies) == null ? void 0 : _a.douyin) ?? "";
2965
+ const bilibiliCookie = ((_b = options == null ? void 0 : options.cookies) == null ? void 0 : _b.bilibili) ?? "";
2966
+ const kuaishouCookie = ((_c = options == null ? void 0 : options.cookies) == null ? void 0 : _c.kuaishou) ?? "";
2967
+ const requestConfig = (options == null ? void 0 : options.request) ?? {};
2968
+ const startServer = (port = 4567) => {
3015
2969
  const app = express();
2970
+ app.use(express.json());
2971
+ app.use(express.urlencoded({ extended: true }));
3016
2972
  app.get("/", (_req, res) => {
3017
2973
  res.redirect(301, "https://amagi.apifox.cn");
3018
2974
  });
3019
2975
  app.get("/docs", (_req, res) => {
3020
2976
  res.redirect(301, "https://amagi.apifox.cn");
3021
2977
  });
3022
- app.use(logMiddleware(["/api/douyin", "/api/bilibili", "/api/kuaishou"]));
3023
- app.use("/api/douyin", v4CompatibilityMiddleware);
3024
- app.use("/api/bilibili", v4CompatibilityMiddleware);
3025
- app.use("/api/kuaishou", v4CompatibilityMiddleware);
3026
- app.use("/api/douyin", createDouyinRoutes(this.#douyin));
3027
- app.use("/api/bilibili", createBilibiliRoutes(this.#bilibili));
3028
- app.use("/api/kuaishou", createKuaishouRoutes(this.#kuaishou));
2978
+ app.use("/api/douyin", createDouyinRoutes(douyinCookie, requestConfig));
2979
+ app.use("/api/bilibili", createBilibiliRoutes(bilibiliCookie, requestConfig));
2980
+ app.use("/api/kuaishou", createKuaishouRoutes(kuaishouCookie, requestConfig));
3029
2981
  app.listen(port, "::", () => {
3030
2982
  logger.mark(`Amagi server listening on ${logger.green(`http://localhost:${port}`)} ${logger.yellow("API docs: https://amagi.apifox.cn ")}`);
3031
2983
  });
3032
2984
  return app;
3033
2985
  };
3034
- /**
3035
- * 快捷获取抖音数据
3036
- * @param type - 请求数据类型
3037
- * @param options - 请求参数,是一个对象
3038
- * @returns 返回接口的原始数据
3039
- */
3040
- getDouyinData = async (methodType, options) => {
3041
- const fullOptions = {
3042
- methodType,
3043
- ...options
3044
- };
3045
- const result = await getDouyinData2(methodType, this.#douyin, fullOptions);
3046
- return result && typeof result === "object" && "data" in result ? result.data : result;
2986
+ const startClient = (port = 4567) => {
2987
+ return startServer(port);
3047
2988
  };
3048
- /**
3049
- * 快捷获取B站数据
3050
- * @param type - 请求数据类型
3051
- * @param options - 请求参数,是一个对象
3052
- * @returns 返回接口的原始数据
3053
- */
3054
- getBilibiliData = async (methodType, options) => {
3055
- const fullOptions = {
3056
- methodType,
3057
- ...options
3058
- };
3059
- const result = await getBilibiliData2(methodType, this.#bilibili, fullOptions);
3060
- return result && typeof result === "object" && "data" in result ? result.data : result;
2989
+ const getDouyinDataWithCookie = async (methodType, options2) => {
2990
+ return await getDouyinData(methodType, options2, douyinCookie, requestConfig);
3061
2991
  };
3062
- /**
3063
- * 快捷获取快手数据
3064
- * @param type - 请求数据类型
3065
- * @param options - 请求参数,是一个对象
3066
- * @returns 返回接口的原始数据
3067
- */
3068
- getKuaishouData = async (methodType, options) => {
3069
- const fullOptions = {
3070
- methodType,
3071
- ...options
3072
- };
3073
- const result = await getKuaishouData2(methodType, this.#kuaishou, fullOptions);
3074
- return result && typeof result === "object" && "data" in result ? result.data : result;
2992
+ const getBilibiliDataWithCookie = async (methodType, options2) => {
2993
+ return await getBilibiliData(methodType, options2, bilibiliCookie);
2994
+ };
2995
+ const getKuaishouDataWithCookie = async (methodType, options2) => {
2996
+ return await getKuaishouData(methodType, options2, kuaishouCookie);
2997
+ };
2998
+ return {
2999
+ /** 启动本地HTTP服务 */
3000
+ startServer,
3001
+ /** @deprecated 此方法已废弃,请使用 startServer 方法代替 */
3002
+ startClient,
3003
+ getDouyinData: getDouyinDataWithCookie,
3004
+ getBilibiliData: getBilibiliDataWithCookie,
3005
+ getKuaishouData: getKuaishouDataWithCookie,
3006
+ douyin: {
3007
+ ...douyinUtils,
3008
+ /** 绑定了cookie和请求配置的抖音API对象,调用时不需要传递cookie */
3009
+ api: createBoundDouyinApi(douyinCookie, requestConfig)
3010
+ },
3011
+ bilibili: {
3012
+ ...bilibiliUtils,
3013
+ /** 绑定了cookie和请求配置的B站API对象,调用时不需要传递cookie */
3014
+ api: createBoundBilibiliApi(bilibiliCookie)
3015
+ },
3016
+ kuaishou: {
3017
+ ...kuaishouUtils,
3018
+ /** 绑定了cookie和请求配置的快手API对象,调用时不需要传递cookie */
3019
+ api: createBoundKuaishouApi(kuaishouCookie)
3020
+ }
3075
3021
  };
3076
3022
  };
3077
3023
 
3078
3024
  // src/index.ts
3079
- function createAmagiClient(options = {}) {
3080
- if (!(this instanceof createAmagiClient)) {
3081
- return new createAmagiClient(options);
3025
+ var amagiClient = createAmagiClient;
3026
+ function CreateAmagiApp(options = {}) {
3027
+ if (!(this instanceof CreateAmagiApp)) {
3028
+ return createAmagiClient(options);
3082
3029
  }
3083
- return new amagiClient(options);
3030
+ return createAmagiClient(options);
3084
3031
  }
3085
- createAmagiClient.douyin = douyinUtils;
3086
- createAmagiClient.bilibili = bilibiliUtils;
3087
- createAmagiClient.kuaishou = kuaishouUtils;
3088
- createAmagiClient.getDouyinData = getDouyinData2;
3089
- createAmagiClient.getBilibiliData = getBilibiliData2;
3090
- createAmagiClient.getKuaishouData = getKuaishouData2;
3091
- var CreateApp = createAmagiClient;
3032
+ CreateAmagiApp.douyin = douyinUtils;
3033
+ CreateAmagiApp.bilibili = bilibiliUtils;
3034
+ CreateAmagiApp.kuaishou = kuaishouUtils;
3035
+ CreateAmagiApp.getDouyinData = getDouyinData;
3036
+ CreateAmagiApp.getBilibiliData = getBilibiliData;
3037
+ CreateAmagiApp.getKuaishouData = getKuaishouData;
3038
+ var CreateApp = CreateAmagiApp;
3092
3039
  var Client = CreateApp;
3093
3040
  var amagi = Client;
3094
3041
  /*!
@@ -3097,4 +3044,4 @@ var amagi = Client;
3097
3044
  * GPL-3.0 Licensed
3098
3045
  */
3099
3046
 
3100
- export { CreateApp, Networks, amagi, amagiClient, av2bv, bilibili, bilibiliApiUrls, bilibiliErrorCodeMap, bilibiliUtils, bv2av, createBilibiliRoutes, createBoundBilibiliApi, createBoundDouyinApi, createBoundKuaishouApi, createDouyinRoutes, createKuaishouRoutes, Client as default, douyin, douyinApiUrls, douyinSign, douyinUtils, fetchBilibiliData, fetchDouyinData, fetchKuaishouData, getBilibiliData2 as getBilibiliData, getDouyinData2 as getDouyinData, getKuaishouData2 as getKuaishouData, httpLogger, kuaishou, kuaishouApiUrls, kuaishouUtils, logMiddleware, logger, qtparam, createDouyinRoutes as registerBilibiliRoutes, createBilibiliRoutes as registerDouyinRoutes, createKuaishouRoutes as registerKuaishouRoutes, wbi_sign };
3047
+ export { ApiError, BilibiliAv2BvParamsSchema, BilibiliBangumiInfoParamsSchema, BilibiliBangumiStreamParamsSchema, BilibiliBv2AvParamsSchema, BilibiliCommentParamsSchema, BilibiliDynamicParamsSchema, BilibiliEmojiParamsSchema, BilibiliLiveParamsSchema, BilibiliLoginParamsSchema, BilibiliQrcodeParamsSchema, BilibiliQrcodeStatusParamsSchema, BilibiliUserParamsSchema, BilibiliValidationSchemas2 as BilibiliValidationSchemas, BilibiliVideoDownloadParamsSchema, BilibiliVideoParamsSchema, CreateApp, DouyinCommentParamsSchema, DouyinCommentReplyParamsSchema, DouyinEmojiListParamsSchema, DouyinEmojiProParamsSchema, DouyinMusicParamsSchema, DouyinQrcodeParamsSchema, DouyinSearchParamsSchema, DouyinUserParamsSchema, DouyinValidationSchemas2 as DouyinValidationSchemas, DouyinWorkParamsSchema, KuaishouCommentParamsSchema, KuaishouEmojiParamsSchema, KuaishouValidationSchemas2 as KuaishouValidationSchemas, KuaishouVideoParamsSchema, ValidationError, amagi, amagiClient, av2bv, bilibili, bilibiliApiUrls, bilibiliErrorCodeMap, bilibiliUtils, bv2av, createAmagiClient, createBilibiliRoutes, createBoundBilibiliApi, createBoundDouyinApi, createBoundKuaishouApi, createDouyinRoutes, createErrorResponse, createKuaishouRoutes, createSuccessResponse, Client as default, douyin, douyinApiUrls, douyinSign, douyinUtils, fetchData, fetchResponse, getBilibiliData, getDouyinData, getHeadersAndData, getKuaishouData, handleError, httpLogger, kuaishou, kuaishouApiUrls, kuaishouUtils, logMiddleware, logger, qtparam, createBilibiliRoutes as registerBilibiliRoutes, createDouyinRoutes as registerDouyinRoutes, createKuaishouRoutes as registerKuaishouRoutes, validateBilibiliParams, validateDouyinParams, validateKuaishouParams, wbi_sign };