@ikenxuan/amagi 3.4.4 → 4.0.2
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/lib/business/bilibili/API.d.ts +8 -1
- package/lib/business/bilibili/API.js +5 -2
- package/lib/business/bilibili/getdata.js +111 -82
- package/lib/business/bilibili/getid.d.ts +1 -1
- package/lib/business/bilibili/getid.js +7 -6
- package/lib/business/bilibili/qtparam.js +1 -1
- package/lib/business/bilibili/result.js +4 -4
- package/lib/business/bilibili/sign/CorrespondPath.js +1 -1
- package/lib/business/bilibili/sign/bv2av.js +1 -1
- package/lib/business/bilibili/sign/wbi.js +1 -1
- package/lib/business/douyin/API.js +2 -2
- package/lib/business/douyin/getdata.js +4 -4
- package/lib/business/douyin/index.d.ts +1 -1
- package/lib/business/douyin/index.js +2 -2
- package/lib/business/douyin/result.js +1 -1
- package/lib/business/douyin/sign/a_bogus.js +11 -10
- package/lib/business/douyin/sign/index.js +12 -4
- package/lib/business/index.d.ts +3 -3
- package/lib/business/index.js +3 -3
- package/lib/business/kuaishou/API.d.ts +2 -2
- package/lib/business/kuaishou/API.js +3 -3
- package/lib/business/kuaishou/index.d.ts +1 -1
- package/lib/business/kuaishou/index.js +2 -2
- package/lib/business/kuaishou/result.d.ts +1 -1
- package/lib/index.d.ts +7 -7
- package/lib/index.js +8 -8
- package/lib/model/DataFetchers.d.ts +6 -6
- package/lib/model/DataFetchers.js +22 -22
- package/lib/model/dir.d.ts +3 -3
- package/lib/model/dir.js +6 -6
- package/lib/model/index.d.ts +4 -4
- package/lib/model/index.js +5 -5
- package/lib/model/logger.d.ts +4 -4
- package/lib/model/logger.js +53 -53
- package/lib/model/networks.d.ts +24 -24
- package/lib/model/networks.js +130 -130
- package/lib/server/client.d.ts +14 -14
- package/lib/server/client.js +257 -257
- package/lib/server/index.d.ts +2 -2
- package/lib/server/index.js +2 -2
- package/lib/server/listen.d.ts +3 -3
- package/lib/server/listen.js +10 -10
- package/lib/test.js +2 -2
- package/lib/types/BilibiliAPIParams.d.ts +86 -16
- package/lib/types/BilibiliAPIParams.js +1 -1
- package/lib/types/ConfigType.js +1 -1
- package/lib/types/DataType.js +1 -1
- package/lib/types/DouyinAPIParams.d.ts +14 -14
- package/lib/types/DouyinAPIParams.js +1 -1
- package/lib/types/GetDataResponseType.js +1 -1
- package/lib/types/KuaishouAPIParams.d.ts +3 -3
- package/lib/types/KuaishouAPIParams.js +1 -1
- package/lib/types/NetworksConfigType.js +1 -1
- package/lib/types/OptionsType.js +1 -1
- package/lib/types/Request.d.ts +2 -2
- package/lib/types/Request.js +1 -1
- package/lib/types/index.d.ts +10 -10
- package/lib/types/index.js +1 -1
- package/package.json +14 -13
package/lib/model/logger.js
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { Chalk } from 'chalk';
|
|
2
|
+
import log4js from 'log4js';
|
|
3
3
|
log4js.configure({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
appenders: {
|
|
5
|
+
console: {
|
|
6
|
+
type: 'stdout',
|
|
7
|
+
layout: {
|
|
8
|
+
type: 'pattern',
|
|
9
|
+
pattern: '%[[amagi][%d{hh:mm:ss.SSS}][%4.4p]%] %m'
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
command: {
|
|
13
|
+
type: 'dateFile',
|
|
14
|
+
filename: 'logs/command',
|
|
15
|
+
pattern: 'yyyy-MM-dd.log',
|
|
16
|
+
numBackups: 15,
|
|
17
|
+
alwaysIncludePattern: true,
|
|
18
|
+
layout: {
|
|
19
|
+
type: 'pattern',
|
|
20
|
+
pattern: '[%d{hh:mm:ss.SSS}][%4.4p] %m'
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
pluginConsole: {
|
|
24
|
+
type: 'stdout',
|
|
25
|
+
layout: {
|
|
26
|
+
type: 'pattern',
|
|
27
|
+
pattern: '%[[%d{hh:mm:ss.SSS}][%4.4p][plugin]%] %m'
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
pluginCommand: {
|
|
31
|
+
type: 'dateFile',
|
|
32
|
+
filename: 'logs/pluginCommand',
|
|
33
|
+
pattern: 'yyyy-MM-dd.log',
|
|
34
|
+
numBackups: 15,
|
|
35
|
+
alwaysIncludePattern: true,
|
|
36
|
+
layout: { type: 'pattern', pattern: '[%d{hh:mm:ss.SSS}][%4.4p] %m' }
|
|
37
|
+
}
|
|
11
38
|
},
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
filename: 'logs/command',
|
|
15
|
-
pattern: 'yyyy-MM-dd.log',
|
|
16
|
-
numBackups: 15,
|
|
17
|
-
alwaysIncludePattern: true,
|
|
18
|
-
layout: {
|
|
19
|
-
type: 'pattern',
|
|
20
|
-
pattern: '[%d{hh:mm:ss.SSS}][%4.4p] %m'
|
|
21
|
-
}
|
|
39
|
+
categories: {
|
|
40
|
+
default: { appenders: ['console', 'command'], level: 'info' } // 添加default类别
|
|
22
41
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
},
|
|
39
|
-
categories: {
|
|
40
|
-
default: { appenders: [ 'console', 'command' ], level: 'info' } // 添加default类别
|
|
41
|
-
},
|
|
42
|
-
pm2: true
|
|
43
|
-
})
|
|
44
|
-
const chalk = new Chalk({ level: 3 })
|
|
45
|
-
const logger = log4js.getLogger('default')
|
|
46
|
-
logger.chalk = chalk
|
|
47
|
-
logger.red = chalk.red
|
|
48
|
-
logger.green = chalk.green
|
|
49
|
-
logger.yellow = chalk.yellow
|
|
50
|
-
logger.blue = chalk.blue
|
|
51
|
-
logger.magenta = chalk.magenta
|
|
52
|
-
logger.cyan = chalk.cyan
|
|
53
|
-
logger.white = chalk.white
|
|
54
|
-
logger.gray = chalk.gray
|
|
55
|
-
export { logger }
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUE7QUFDM0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUU3QixNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ2YsU0FBUyxFQUFFO1FBQ1QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLHlDQUF5QzthQUNuRDtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFVBQVU7WUFDaEIsUUFBUSxFQUFFLGNBQWM7WUFDeEIsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixVQUFVLEVBQUUsRUFBRTtZQUNkLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSw4QkFBOEI7YUFDeEM7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSwwQ0FBMEM7YUFDcEQ7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixVQUFVLEVBQUUsRUFBRTtZQUNkLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUU7U0FDckU7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFFLFNBQVMsRUFBRSxTQUFTLENBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsY0FBYztLQUMvRTtJQUNELEdBQUcsRUFBRSxJQUFJO0NBQ1YsQ0FBQyxDQUFBO0FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQWdCckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtBQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUE7QUFDdEIsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQTtBQUM1QixNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7QUFDeEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBO0FBQzlCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtBQUN4QixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7QUFDMUIsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO0FBR3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQSJ9
|
|
42
|
+
pm2: true
|
|
43
|
+
});
|
|
44
|
+
const chalk = new Chalk({ level: 3 });
|
|
45
|
+
const logger = log4js.getLogger('default');
|
|
46
|
+
logger.chalk = chalk;
|
|
47
|
+
logger.red = chalk.red;
|
|
48
|
+
logger.green = chalk.green;
|
|
49
|
+
logger.yellow = chalk.yellow;
|
|
50
|
+
logger.blue = chalk.blue;
|
|
51
|
+
logger.magenta = chalk.magenta;
|
|
52
|
+
logger.cyan = chalk.cyan;
|
|
53
|
+
logger.white = chalk.white;
|
|
54
|
+
logger.gray = chalk.gray;
|
|
55
|
+
export { logger };
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzdCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ2YsU0FBUyxFQUFFO1FBQ1QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLHlDQUF5QzthQUNuRDtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFVBQVU7WUFDaEIsUUFBUSxFQUFFLGNBQWM7WUFDeEIsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixVQUFVLEVBQUUsRUFBRTtZQUNkLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSw4QkFBOEI7YUFDeEM7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSwwQ0FBMEM7YUFDcEQ7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixVQUFVLEVBQUUsRUFBRTtZQUNkLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUU7U0FDckU7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsY0FBYztLQUM3RTtJQUNELEdBQUcsRUFBRSxJQUFJO0NBQ1YsQ0FBQyxDQUFBO0FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQWdCckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtBQUNwQixNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUE7QUFDdEIsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQTtBQUM1QixNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7QUFDeEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBO0FBQzlCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtBQUN4QixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7QUFDMUIsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO0FBRXhCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQSJ9
|
package/lib/model/networks.d.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { AxiosRequestConfig, AxiosResponse } from 'axios'
|
|
2
|
-
import { NetworksConfigType } from '../types/index.js'
|
|
1
|
+
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
import { NetworksConfigType } from '../types/index.js';
|
|
3
3
|
interface HeadersObject {
|
|
4
4
|
[key: string]: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class Networks {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
7
|
+
url: string;
|
|
8
|
+
method: string;
|
|
9
|
+
headers: HeadersObject;
|
|
10
|
+
type: string;
|
|
11
|
+
body?: any;
|
|
12
|
+
axiosInstance: any;
|
|
13
|
+
isGetResult: boolean;
|
|
14
|
+
timeout: number;
|
|
15
|
+
timer: NodeJS.Timeout | undefined;
|
|
16
|
+
data: object;
|
|
17
|
+
constructor(data: NetworksConfigType);
|
|
18
|
+
get config(): AxiosRequestConfig;
|
|
19
|
+
getfetch(): Promise<AxiosResponse | boolean>;
|
|
20
|
+
returnResult(): Promise<AxiosResponse>;
|
|
21
|
+
/** 最终地址(跟随重定向) */
|
|
22
|
+
getLongLink(): Promise<string>;
|
|
23
|
+
/** 获取首个302 */
|
|
24
|
+
getLocation(): Promise<string>;
|
|
25
|
+
/** 获取数据并处理数据的格式化,默认json */
|
|
26
|
+
getData(new_fetch?: string): Promise<any | boolean>;
|
|
27
|
+
getHeadersAndData(): Promise<{
|
|
28
28
|
headers: any;
|
|
29
29
|
data: any;
|
|
30
30
|
}>;
|
|
31
31
|
}
|
|
32
|
-
export {}
|
|
32
|
+
export {};
|
package/lib/model/networks.js
CHANGED
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
import axios, { AxiosError } from 'axios'
|
|
2
|
-
import { logger } from './logger.js'
|
|
1
|
+
import axios, { AxiosError } from 'axios';
|
|
2
|
+
import { logger } from './logger.js';
|
|
3
3
|
export class Networks {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
get config () {
|
|
36
|
-
let config = {
|
|
37
|
-
url: this.url,
|
|
38
|
-
method: this.method,
|
|
39
|
-
headers: this.headers
|
|
4
|
+
url;
|
|
5
|
+
method;
|
|
6
|
+
headers;
|
|
7
|
+
type;
|
|
8
|
+
body;
|
|
9
|
+
axiosInstance;
|
|
10
|
+
isGetResult;
|
|
11
|
+
timeout;
|
|
12
|
+
timer;
|
|
13
|
+
data;
|
|
14
|
+
constructor(data) {
|
|
15
|
+
this.headers = data.headers ?? {};
|
|
16
|
+
this.url = data.url ?? '';
|
|
17
|
+
this.type = data.type ?? 'json';
|
|
18
|
+
this.method = data.method ?? 'GET';
|
|
19
|
+
this.body = data.body ?? null;
|
|
20
|
+
this.data = {};
|
|
21
|
+
this.timeout = data.timeout ?? 15000;
|
|
22
|
+
this.isGetResult = false;
|
|
23
|
+
this.timer = undefined;
|
|
24
|
+
// 创建axios实例
|
|
25
|
+
this.axiosInstance = axios.create({
|
|
26
|
+
timeout: this.timeout,
|
|
27
|
+
headers: this.headers,
|
|
28
|
+
maxRedirects: 5,
|
|
29
|
+
validateStatus: (status) => {
|
|
30
|
+
// 接受200-299,400-499,以及500及以上的状态码
|
|
31
|
+
return (status >= 200 && status < 600);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
40
34
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
this.isGetResult = true
|
|
53
|
-
return result
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
logger.info(error)
|
|
57
|
-
return false
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
async returnResult () {
|
|
61
|
-
return await this.axiosInstance(this.config)
|
|
62
|
-
}
|
|
63
|
-
/** 最终地址(跟随重定向) */
|
|
64
|
-
async getLongLink () {
|
|
65
|
-
try {
|
|
66
|
-
const response = await this.axiosInstance({
|
|
67
|
-
method: 'GET',
|
|
68
|
-
url: this.url
|
|
69
|
-
})
|
|
70
|
-
return response.request.res.responseUrl // axios中获取最终的请求URL
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
if (error instanceof AxiosError) {
|
|
74
|
-
throw new Error(error.stack)
|
|
75
|
-
}
|
|
76
|
-
return ''
|
|
35
|
+
get config() {
|
|
36
|
+
let config = {
|
|
37
|
+
url: this.url,
|
|
38
|
+
method: this.method,
|
|
39
|
+
headers: this.headers
|
|
40
|
+
};
|
|
41
|
+
if (this.method === 'POST' && this.body) {
|
|
42
|
+
config.data = this.body;
|
|
43
|
+
}
|
|
44
|
+
return config;
|
|
77
45
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
46
|
+
async getfetch() {
|
|
47
|
+
try {
|
|
48
|
+
const result = await this.returnResult();
|
|
49
|
+
if (result.status === 504) {
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
this.isGetResult = true;
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
logger.info(error);
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
89
59
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
throw new Error(error.stack)
|
|
93
|
-
}
|
|
94
|
-
return ''
|
|
60
|
+
async returnResult() {
|
|
61
|
+
return await this.axiosInstance(this.config);
|
|
95
62
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
63
|
+
/** 最终地址(跟随重定向) */
|
|
64
|
+
async getLongLink() {
|
|
65
|
+
try {
|
|
66
|
+
const response = await this.axiosInstance({
|
|
67
|
+
method: 'GET',
|
|
68
|
+
url: this.url
|
|
69
|
+
});
|
|
70
|
+
return response.request.res.responseUrl; // axios中获取最终的请求URL
|
|
104
71
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error instanceof AxiosError) {
|
|
74
|
+
throw new Error(error.stack);
|
|
75
|
+
}
|
|
76
|
+
return '';
|
|
108
77
|
}
|
|
109
|
-
this.axiosInstance = result
|
|
110
|
-
this.isGetResult = true
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
this.axiosInstance = new_fetch
|
|
114
|
-
}
|
|
115
|
-
return this.axiosInstance.data
|
|
116
78
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
79
|
+
/** 获取首个302 */
|
|
80
|
+
async getLocation() {
|
|
81
|
+
try {
|
|
82
|
+
const response = await this.axiosInstance({
|
|
83
|
+
method: 'GET',
|
|
84
|
+
url: this.url,
|
|
85
|
+
maxRedirects: 0, // 禁止跟随重定向
|
|
86
|
+
validateStatus: (status) => status >= 300 && status < 400 // 仅处理3xx响应
|
|
87
|
+
});
|
|
88
|
+
return response.headers['location'];
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error instanceof AxiosError) {
|
|
92
|
+
throw new Error(error.stack);
|
|
93
|
+
}
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
122
96
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
97
|
+
/** 获取数据并处理数据的格式化,默认json */
|
|
98
|
+
async getData(new_fetch = '') {
|
|
99
|
+
try {
|
|
100
|
+
if (!new_fetch) {
|
|
101
|
+
const result = await this.returnResult();
|
|
102
|
+
if (result.status === 504) {
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
if (result.status === 429) {
|
|
106
|
+
logger.error('HTTP 响应状态码: 429');
|
|
107
|
+
throw new Error('ratelimit triggered, 触发 https://www.douyin.com/ 的速率限制!!!');
|
|
108
|
+
}
|
|
109
|
+
this.axiosInstance = result;
|
|
110
|
+
this.isGetResult = true;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.axiosInstance = new_fetch;
|
|
114
|
+
}
|
|
115
|
+
return this.axiosInstance.data;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof AxiosError) {
|
|
119
|
+
throw new Error(error.stack);
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
135
123
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
124
|
+
async getHeadersAndData() {
|
|
125
|
+
try {
|
|
126
|
+
// 发起网络请求获取响应对象
|
|
127
|
+
const result = await this.axiosInstance(this.config);
|
|
128
|
+
// 初始化响应头和响应数据
|
|
129
|
+
let headers = {};
|
|
130
|
+
const fetchHeaders = result.headers;
|
|
131
|
+
for (const [key, value] of Object.entries(fetchHeaders)) {
|
|
132
|
+
headers[key] = value;
|
|
133
|
+
}
|
|
134
|
+
return { headers, data: result.data };
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.error('获取响应头和数据失败:', error);
|
|
138
|
+
return { headers: null, data: null };
|
|
139
|
+
}
|
|
139
140
|
}
|
|
140
|
-
}
|
|
141
141
|
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQXFDLE1BQU0sT0FBTyxDQUFBO0FBRzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFNakMsTUFBTSxPQUFPLFFBQVE7SUFDbkIsR0FBRyxDQUFRO0lBQ1gsTUFBTSxDQUFRO0lBQ2QsT0FBTyxDQUFlO0lBQ3RCLElBQUksQ0FBUTtJQUNaLElBQUksQ0FBTTtJQUNWLGFBQWEsQ0FBSztJQUNsQixXQUFXLENBQVM7SUFDcEIsT0FBTyxDQUFRO0lBQ2YsS0FBSyxDQUE0QjtJQUNqQyxJQUFJLENBQVE7SUFFWixZQUFhLElBQXdCO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUE7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQTtRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFBO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQTtRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUE7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUE7UUFFdEIsWUFBWTtRQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZ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
|
package/lib/server/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BilibiliDataOptionsMap, DouyinDataOptionsMap, KuaishouDataOptionsMap } from '../types/index.js';
|
|
2
2
|
export type initClientParams = {
|
|
3
3
|
/**
|
|
4
4
|
* 抖音ck
|
|
@@ -17,40 +17,40 @@ export type initClientParams = {
|
|
|
17
17
|
kuaishou?: string;
|
|
18
18
|
};
|
|
19
19
|
export declare class amagi {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
private douyin;
|
|
21
|
+
private bilibili;
|
|
22
|
+
private kuaishou;
|
|
23
|
+
/**
|
|
24
24
|
*
|
|
25
25
|
* @param data 一个对象,里面包含 douyin 和 bilibili 两个字段,分别对应抖音和B站cookie
|
|
26
26
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
constructor(data: initClientParams);
|
|
28
|
+
/**
|
|
29
29
|
*
|
|
30
30
|
* @param port 监听端口
|
|
31
31
|
* @default port 4567
|
|
32
32
|
* @returns
|
|
33
33
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
startClient(port?: number): import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault> & PromiseLike<import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>>;
|
|
35
|
+
/**
|
|
36
36
|
* 获取抖音数据
|
|
37
37
|
* @param type 请求数据类型
|
|
38
38
|
* @param options 请求参数,是一个对象
|
|
39
39
|
* @returns 返回接口的原始数据,失败返回false
|
|
40
40
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
getDouyinData: <T extends keyof DouyinDataOptionsMap = keyof DouyinDataOptionsMap>(type: T, options?: DouyinDataOptionsMap[T]) => Promise<boolean | any>;
|
|
42
|
+
/**
|
|
43
43
|
* 获取B站数据
|
|
44
44
|
* @param type 请求数据类型
|
|
45
45
|
* @param options 请求参数,是一个对象
|
|
46
46
|
* @returns 返回接口的原始数据,失败返回false
|
|
47
47
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
getBilibiliData: <T extends keyof BilibiliDataOptionsMap = keyof BilibiliDataOptionsMap>(type: T, options?: BilibiliDataOptionsMap[T]) => Promise<boolean | any>;
|
|
49
|
+
/**
|
|
50
50
|
* 获取快手数据
|
|
51
51
|
* @param type 请求数据类型
|
|
52
52
|
* @param options 请求参数,是一个对象
|
|
53
53
|
* @returns 返回接口的原始数据,失败返回false
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
getKuaishouData: <T extends keyof KuaishouDataOptionsMap = keyof KuaishouDataOptionsMap>(type: T, options?: KuaishouDataOptionsMap[T]) => Promise<boolean | any>;
|
|
56
56
|
}
|