@wikicasa-dev/node-common 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/CallPool.d.ts +4 -1
- package/dist/src/CallPool.js +38 -21
- package/dist/src/CallPool.js.map +1 -1
- package/package.json +1 -1
package/dist/src/CallPool.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ interface CallPoolConfig {
|
|
|
21
21
|
export declare class CallPool {
|
|
22
22
|
private concurrency;
|
|
23
23
|
private _print;
|
|
24
|
-
private
|
|
24
|
+
private limiter;
|
|
25
25
|
private readonly CLOCK_NUMBER;
|
|
26
26
|
private readonly WEIGHT;
|
|
27
27
|
private mean;
|
|
@@ -36,6 +36,8 @@ export declare class CallPool {
|
|
|
36
36
|
private readonly MINUTE_IN_MS;
|
|
37
37
|
private readonly config;
|
|
38
38
|
private isScheduling;
|
|
39
|
+
private readonly httpsAgent?;
|
|
40
|
+
private readonly httpAgent?;
|
|
39
41
|
constructor(config: CallPoolConfig);
|
|
40
42
|
private buildAxiosConfig;
|
|
41
43
|
private updateCallStack;
|
|
@@ -61,5 +63,6 @@ export declare class CallPool {
|
|
|
61
63
|
finish(checkInterval?: number): Promise<void>;
|
|
62
64
|
getActualCallsPerMinute(): Promise<number>;
|
|
63
65
|
getTotalCalls(): number;
|
|
66
|
+
destroy(): Promise<void>;
|
|
64
67
|
}
|
|
65
68
|
export {};
|
package/dist/src/CallPool.js
CHANGED
|
@@ -32,7 +32,7 @@ const defaultRetryConfig = {
|
|
|
32
32
|
status === 429 || // Too Many Requests
|
|
33
33
|
status === 408 // Request Timeout
|
|
34
34
|
);
|
|
35
|
-
}
|
|
35
|
+
},
|
|
36
36
|
};
|
|
37
37
|
const defaultConfig = {
|
|
38
38
|
name: "default",
|
|
@@ -54,7 +54,6 @@ export class CallPool {
|
|
|
54
54
|
clock = this.CLOCK_NUMBER;
|
|
55
55
|
queue = [];
|
|
56
56
|
activeCount;
|
|
57
|
-
// @ts-ignore
|
|
58
57
|
agent;
|
|
59
58
|
callStack = [];
|
|
60
59
|
callStackMutex = new Mutex();
|
|
@@ -62,6 +61,8 @@ export class CallPool {
|
|
|
62
61
|
MINUTE_IN_MS = 60000;
|
|
63
62
|
config;
|
|
64
63
|
isScheduling = false;
|
|
64
|
+
httpsAgent;
|
|
65
|
+
httpAgent;
|
|
65
66
|
constructor(config) {
|
|
66
67
|
this.config = { ...defaultConfig, ...config };
|
|
67
68
|
this.concurrency = (this.config.minConcurrency + this.config.maxConcurrency) / 2;
|
|
@@ -75,28 +76,36 @@ export class CallPool {
|
|
|
75
76
|
timeout: 30000,
|
|
76
77
|
lookup: cacheable.lookupAsync,
|
|
77
78
|
});
|
|
79
|
+
// Istanzia gli agent proxy una sola volta se necessario
|
|
80
|
+
if (this.config.proxy === PROXY.STATIC) {
|
|
81
|
+
const proxyUrl = "http://wikicasa:VTt7KYb5fsqDhK6xXinS@162.19.104.35:3128";
|
|
82
|
+
this.httpsAgent = new HttpsProxyAgent(proxyUrl);
|
|
83
|
+
this.httpAgent = new HttpsProxyAgent(proxyUrl);
|
|
84
|
+
}
|
|
78
85
|
}
|
|
79
86
|
buildAxiosConfig(config) {
|
|
80
87
|
return _.merge({
|
|
81
88
|
method: "GET",
|
|
82
|
-
proxy: this.config.proxy === PROXY.DYNAMIC
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
proxy: this.config.proxy === PROXY.DYNAMIC
|
|
90
|
+
? {
|
|
91
|
+
protocol: "http",
|
|
92
|
+
host: "api.zyte.com",
|
|
93
|
+
port: 8011,
|
|
94
|
+
auth: {
|
|
95
|
+
username: "cf3dd14c1b9c4daf9cf67007520d0c48",
|
|
96
|
+
password: "",
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
: undefined,
|
|
100
|
+
httpsAgent: this.httpsAgent,
|
|
101
|
+
httpAgent: this.httpAgent,
|
|
93
102
|
maxContentLength: Infinity,
|
|
94
103
|
maxBodyLength: Infinity,
|
|
95
104
|
timeout: 600000,
|
|
96
105
|
headers: {
|
|
97
106
|
...(this.config.proxy === PROXY.DYNAMIC && { "Zyte-Geolocation": "IT" }),
|
|
98
107
|
...(this.config.proxy !== PROXY.NONE && { "User-Agent": this.getRandomUserAgent() }),
|
|
99
|
-
}
|
|
108
|
+
},
|
|
100
109
|
}, config);
|
|
101
110
|
}
|
|
102
111
|
async updateCallStack() {
|
|
@@ -105,7 +114,7 @@ export class CallPool {
|
|
|
105
114
|
const now = Date.now();
|
|
106
115
|
this.callStack.push(now);
|
|
107
116
|
const oneMinuteAgo = now - this.MINUTE_IN_MS;
|
|
108
|
-
this.callStack = this.callStack.filter(timestamp => timestamp > oneMinuteAgo);
|
|
117
|
+
this.callStack = this.callStack.filter((timestamp) => timestamp > oneMinuteAgo);
|
|
109
118
|
});
|
|
110
119
|
}
|
|
111
120
|
executeLimited(call, resolve, reject, remainingAttempts = this.config.retry?.attempts) {
|
|
@@ -142,7 +151,7 @@ export class CallPool {
|
|
|
142
151
|
this.queue.push({
|
|
143
152
|
call: () => axios(url, this.buildAxiosConfig(config)),
|
|
144
153
|
resolve,
|
|
145
|
-
reject
|
|
154
|
+
reject,
|
|
146
155
|
});
|
|
147
156
|
this.schedule();
|
|
148
157
|
});
|
|
@@ -151,10 +160,10 @@ export class CallPool {
|
|
|
151
160
|
const browsers = [
|
|
152
161
|
{ name: "Chrome", version: 109 },
|
|
153
162
|
{ name: "Firefox", version: 115 },
|
|
154
|
-
{ name: "Edge", version: 116 }
|
|
163
|
+
{ name: "Edge", version: 116 },
|
|
155
164
|
];
|
|
156
165
|
return RandomUserAgent.getRandom(function (ua) {
|
|
157
|
-
return browsers.some(b => b.name === ua.browserName && b.version <= parseInt(ua.browserVersion));
|
|
166
|
+
return browsers.some((b) => b.name === ua.browserName && b.version <= parseInt(ua.browserVersion));
|
|
158
167
|
});
|
|
159
168
|
}
|
|
160
169
|
enqueue(call) {
|
|
@@ -209,10 +218,10 @@ export class CallPool {
|
|
|
209
218
|
const textEnd = `][${this.activeCount + this.queue?.length}/${this.concurrency}][${this.mean.toFixed(2)}s, ${callsPerMinute} avg/m]`;
|
|
210
219
|
let progress = "";
|
|
211
220
|
const max = process.stdout.columns - Math.max(textStart.length + textEnd.length, process.stdout.columns * 0.5);
|
|
212
|
-
const percent = this.activeCount / this.concurrency * max;
|
|
221
|
+
const percent = (this.activeCount / this.concurrency) * max;
|
|
213
222
|
for (let j = 0; j < max; j++) {
|
|
214
223
|
const char = j < percent ? "=" : " ";
|
|
215
|
-
progress += Console.color(char, j <
|
|
224
|
+
progress += Console.color(char, j < max * 0.8 ? COLORS.GREEN : j < max * 0.9 ? COLORS.YELLOW : COLORS.RED);
|
|
216
225
|
}
|
|
217
226
|
this._print = textStart + progress + textEnd;
|
|
218
227
|
//Console.forceSummaryLinesRefresh();
|
|
@@ -237,11 +246,19 @@ export class CallPool {
|
|
|
237
246
|
async getActualCallsPerMinute() {
|
|
238
247
|
return await this.callStackMutex.runExclusive(() => {
|
|
239
248
|
const oneMinuteAgo = Date.now() - this.MINUTE_IN_MS;
|
|
240
|
-
return this.callStack.filter(timestamp => timestamp > oneMinuteAgo).length;
|
|
249
|
+
return this.callStack.filter((timestamp) => timestamp > oneMinuteAgo).length;
|
|
241
250
|
});
|
|
242
251
|
}
|
|
243
252
|
getTotalCalls() {
|
|
244
253
|
return this.totalCalls;
|
|
245
254
|
}
|
|
255
|
+
async destroy() {
|
|
256
|
+
await this.finish();
|
|
257
|
+
this.queue = [];
|
|
258
|
+
this.callStack = [];
|
|
259
|
+
this.limiter = null;
|
|
260
|
+
this.agent.destroy();
|
|
261
|
+
Console.removeSummaryLine(this.config.name);
|
|
262
|
+
}
|
|
246
263
|
}
|
|
247
264
|
//# sourceMappingURL=CallPool.js.map
|
package/dist/src/CallPool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallPool.js","sourceRoot":"","sources":["../../src/CallPool.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,KAAK,eAAe,MAAM,kBAAkB,CAAC;AACpD,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;AAExC,qBAAqB;AACrB,YAAY,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAEtC,iEAAiE;AAEjE,MAAM,CAAN,IAAY,KAIX;AAJD,WAAY,KAAK;IACb,iCAAI,CAAA;IACJ,qCAAM,CAAA;IACN,uCAAO,CAAA;AACX,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;AAQD,MAAM,kBAAkB,GAAgB;IACpC,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,CAAC,KAAiB,EAAE,EAAE;QAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,CAAC,iBAAiB;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,8DAA8D;QAC9D,OAAO,CACH,MAAM,IAAI,GAAG;YACb,MAAM,KAAK,GAAG,IAAI,oBAAoB;YACtC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"CallPool.js","sourceRoot":"","sources":["../../src/CallPool.ts"],"names":[],"mappings":"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"}
|