@rafikidota/cuba-ofertas-scraping 0.4.1 → 0.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/modules/delayer/delayer.module.js +6 -2
- package/dist/modules/delayer/delayer.module.js.map +1 -1
- package/dist/modules/delayer/delayer.service.d.ts +4 -2
- package/dist/modules/delayer/delayer.service.js +7 -4
- package/dist/modules/delayer/delayer.service.js.map +1 -1
- package/dist/modules/delayer/types/delayer-map-config.d.ts +4 -0
- package/dist/modules/delayer/types/delayer-map-config.js +3 -0
- package/dist/modules/delayer/types/delayer-map-config.js.map +1 -0
- package/dist/modules/delayer/types/delayer-settings.d.ts +6 -0
- package/dist/modules/delayer/types/delayer-settings.js +3 -0
- package/dist/modules/delayer/types/delayer-settings.js.map +1 -0
- package/dist/modules/delayer/types/delayer-status-multiplier.d.ts +5 -0
- package/dist/modules/delayer/types/delayer-status-multiplier.js +3 -0
- package/dist/modules/delayer/types/delayer-status-multiplier.js.map +1 -0
- package/dist/modules/delayer/use-cases/delayer-config.service.d.ts +19 -0
- package/dist/modules/delayer/use-cases/delayer-config.service.js +85 -0
- package/dist/modules/delayer/use-cases/delayer-config.service.js.map +1 -0
- package/dist/modules/delayer/use-cases/delayer-mapper.service.d.ts +4 -2
- package/dist/modules/delayer/use-cases/delayer-mapper.service.js +19 -7
- package/dist/modules/delayer/use-cases/delayer-mapper.service.js.map +1 -1
- package/dist/modules/delayer/use-cases/delayer-sleeper.service.d.ts +5 -7
- package/dist/modules/delayer/use-cases/delayer-sleeper.service.js +18 -31
- package/dist/modules/delayer/use-cases/delayer-sleeper.service.js.map +1 -1
- package/dist/modules/index.d.ts +5 -1
- package/dist/modules/index.js +5 -1
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/processor/processor.module.js +5 -3
- package/dist/modules/processor/processor.module.js.map +1 -1
- package/dist/modules/publisher/publisher.module.d.ts +2 -0
- package/dist/modules/publisher/publisher.module.js +24 -0
- package/dist/modules/publisher/publisher.module.js.map +1 -0
- package/dist/modules/publisher/publisher.service.d.ts +9 -0
- package/dist/modules/publisher/publisher.service.js +64 -0
- package/dist/modules/publisher/publisher.service.js.map +1 -0
- package/dist/modules/test/schedule.module.d.ts +2 -0
- package/dist/modules/test/schedule.module.js +22 -0
- package/dist/modules/test/schedule.module.js.map +1 -0
- package/dist/modules/test/schedule.service.d.ts +6 -0
- package/dist/modules/test/schedule.service.js +39 -0
- package/dist/modules/test/schedule.service.js.map +1 -0
- package/package.json +1 -1
- package/dist/modules/delayer/use-cases/delayer-logger.service.d.ts +0 -10
- package/dist/modules/delayer/use-cases/delayer-logger.service.js +0 -44
- package/dist/modules/delayer/use-cases/delayer-logger.service.js.map +0 -1
|
@@ -8,20 +8,24 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.DelayerModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
+
const config_1 = require("@nestjs/config");
|
|
11
12
|
const delayer_service_1 = require("./delayer.service");
|
|
12
|
-
const delayer_logger_service_1 = require("./use-cases/delayer-logger.service");
|
|
13
13
|
const delayer_sleeper_service_1 = require("./use-cases/delayer-sleeper.service");
|
|
14
14
|
const delayer_mapper_service_1 = require("./use-cases/delayer-mapper.service");
|
|
15
|
+
const delayer_config_service_1 = require("./use-cases/delayer-config.service");
|
|
16
|
+
const timestamp_logger_1 = require("../../common/logger/timestamp.logger");
|
|
15
17
|
let DelayerModule = class DelayerModule {
|
|
16
18
|
};
|
|
17
19
|
exports.DelayerModule = DelayerModule;
|
|
18
20
|
exports.DelayerModule = DelayerModule = __decorate([
|
|
19
21
|
(0, common_1.Module)({
|
|
22
|
+
imports: [config_1.ConfigModule],
|
|
20
23
|
providers: [
|
|
21
24
|
delayer_service_1.DelayerService,
|
|
22
|
-
|
|
25
|
+
delayer_config_service_1.DelayerConfigService,
|
|
23
26
|
delayer_sleeper_service_1.DelayerSleepService,
|
|
24
27
|
delayer_mapper_service_1.DelayerMapService,
|
|
28
|
+
(0, timestamp_logger_1.LoggerProvider)(delayer_service_1.DelayerService),
|
|
25
29
|
],
|
|
26
30
|
exports: [delayer_service_1.DelayerService],
|
|
27
31
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delayer.module.js","sourceRoot":"","sources":["../../../src/modules/delayer/delayer.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;
|
|
1
|
+
{"version":3,"file":"delayer.module.js","sourceRoot":"","sources":["../../../src/modules/delayer/delayer.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAE9C,uDAAmD;AACnD,iFAA0E;AAC1E,+EAAuE;AACvE,+EAA0E;AAC1E,2EAAsE;AAa/D,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAXzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,CAAC;QACvB,SAAS,EAAE;YACT,gCAAc;YACd,6CAAoB;YACpB,6CAAmB;YACnB,0CAAiB;YACjB,IAAA,iCAAc,EAAC,gCAAc,CAAC;SAC/B;QACD,OAAO,EAAE,CAAC,gCAAc,CAAC;KAC1B,CAAC;GACW,aAAa,CAAG"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { DelayerSleepService } from './use-cases/delayer-sleeper.service';
|
|
2
2
|
import { DelayerMapService } from './use-cases/delayer-mapper.service';
|
|
3
|
+
import { DelayerConfigService } from './use-cases/delayer-config.service';
|
|
3
4
|
import { DelayRange } from '../../common/types/delay-range';
|
|
4
5
|
export declare class DelayerService {
|
|
5
6
|
private readonly sleeper;
|
|
6
7
|
private readonly mapper;
|
|
7
|
-
|
|
8
|
+
private readonly config;
|
|
9
|
+
constructor(sleeper: DelayerSleepService, mapper: DelayerMapService, config: DelayerConfigService);
|
|
8
10
|
wait(url?: string, min?: number, max?: number): Promise<void>;
|
|
9
11
|
update(statusCode: number): number;
|
|
10
|
-
sleep(): Promise<void>;
|
|
12
|
+
sleep(min?: number, max?: number): Promise<void>;
|
|
11
13
|
getDelays(): Map<string, DelayRange>;
|
|
12
14
|
getDelay(): number;
|
|
13
15
|
reset(): void;
|
|
@@ -13,10 +13,12 @@ exports.DelayerService = void 0;
|
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const delayer_sleeper_service_1 = require("./use-cases/delayer-sleeper.service");
|
|
15
15
|
const delayer_mapper_service_1 = require("./use-cases/delayer-mapper.service");
|
|
16
|
+
const delayer_config_service_1 = require("./use-cases/delayer-config.service");
|
|
16
17
|
let DelayerService = class DelayerService {
|
|
17
|
-
constructor(sleeper, mapper) {
|
|
18
|
+
constructor(sleeper, mapper, config) {
|
|
18
19
|
this.sleeper = sleeper;
|
|
19
20
|
this.mapper = mapper;
|
|
21
|
+
this.config = config;
|
|
20
22
|
}
|
|
21
23
|
async wait(url, min = 2000, max = 4000) {
|
|
22
24
|
await this.mapper.wait(url, min, max);
|
|
@@ -24,8 +26,8 @@ let DelayerService = class DelayerService {
|
|
|
24
26
|
update(statusCode) {
|
|
25
27
|
return this.sleeper.update(statusCode);
|
|
26
28
|
}
|
|
27
|
-
async sleep() {
|
|
28
|
-
await this.sleeper.execute();
|
|
29
|
+
async sleep(min, max) {
|
|
30
|
+
await this.sleeper.execute(min, max);
|
|
29
31
|
}
|
|
30
32
|
getDelays() {
|
|
31
33
|
return this.mapper.getDelays();
|
|
@@ -42,6 +44,7 @@ exports.DelayerService = DelayerService;
|
|
|
42
44
|
exports.DelayerService = DelayerService = __decorate([
|
|
43
45
|
(0, common_1.Injectable)(),
|
|
44
46
|
__metadata("design:paramtypes", [delayer_sleeper_service_1.DelayerSleepService,
|
|
45
|
-
delayer_mapper_service_1.DelayerMapService
|
|
47
|
+
delayer_mapper_service_1.DelayerMapService,
|
|
48
|
+
delayer_config_service_1.DelayerConfigService])
|
|
46
49
|
], DelayerService);
|
|
47
50
|
//# sourceMappingURL=delayer.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delayer.service.js","sourceRoot":"","sources":["../../../src/modules/delayer/delayer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,iFAA0E;AAC1E,+EAAuE;
|
|
1
|
+
{"version":3,"file":"delayer.service.js","sourceRoot":"","sources":["../../../src/modules/delayer/delayer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,iFAA0E;AAC1E,+EAAuE;AACvE,+EAA0E;AAInE,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YACmB,OAA4B,EAC5B,MAAyB,EACzB,MAA4B;QAF5B,YAAO,GAAP,OAAO,CAAqB;QAC5B,WAAM,GAAN,MAAM,CAAmB;QACzB,WAAM,GAAN,MAAM,CAAsB;IAC5C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAY,EAAE,MAAc,IAAI,EAAE,MAAc,IAAI;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,UAAkB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAY,EAAE,GAAY;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AA/BY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAGiB,6CAAmB;QACpB,0CAAiB;QACjB,6CAAoB;GAJpC,cAAc,CA+B1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayer-map-config.js","sourceRoot":"","sources":["../../../../src/modules/delayer/types/delayer-map-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayer-settings.js","sourceRoot":"","sources":["../../../../src/modules/delayer/types/delayer-settings.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayer-status-multiplier.js","sourceRoot":"","sources":["../../../../src/modules/delayer/types/delayer-status-multiplier.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
import { DelayerSettings } from '../types/delayer-settings';
|
|
4
|
+
import { DelayerMapConfig } from '../types/delayer-map-config';
|
|
5
|
+
export declare class DelayerConfigService {
|
|
6
|
+
private readonly logger;
|
|
7
|
+
private readonly config;
|
|
8
|
+
private delay;
|
|
9
|
+
private settings;
|
|
10
|
+
private multiplier;
|
|
11
|
+
private map;
|
|
12
|
+
constructor(logger: Logger, config: ConfigService);
|
|
13
|
+
update(status: number): number;
|
|
14
|
+
getRandom(min?: number, max?: number): number;
|
|
15
|
+
getConfig(): DelayerSettings;
|
|
16
|
+
getDelay(): number;
|
|
17
|
+
getMapConfig(): DelayerMapConfig;
|
|
18
|
+
reset(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DelayerConfigService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
18
|
+
const delayer_service_1 = require("../delayer.service");
|
|
19
|
+
const timestamp_logger_1 = require("../../../common/logger/timestamp.logger");
|
|
20
|
+
let DelayerConfigService = class DelayerConfigService {
|
|
21
|
+
constructor(logger, config) {
|
|
22
|
+
this.logger = logger;
|
|
23
|
+
this.config = config;
|
|
24
|
+
this.settings = {
|
|
25
|
+
default: this.config.get('DELAY_DEFAULT', 100),
|
|
26
|
+
min: this.config.get('DELAY_MIN', 300),
|
|
27
|
+
max: this.config.get('DELAY_MAX', 500),
|
|
28
|
+
step: this.config.get('DELAY_STEP', 50),
|
|
29
|
+
};
|
|
30
|
+
this.multiplier = {
|
|
31
|
+
ok: this.config.get('DELAY_200_MULTIPLIER', 1),
|
|
32
|
+
forbidden: this.config.get('DELAY_403_MULTIPLIER', 1),
|
|
33
|
+
tooManyRequests: this.config.get('DELAY_429_MULTIPLIER', 2),
|
|
34
|
+
};
|
|
35
|
+
this.map = {
|
|
36
|
+
max: this.config.get('DELAY_MAP_MAX', 60000),
|
|
37
|
+
step: this.config.get('DELAY_MAP_INCREMENT', 1000),
|
|
38
|
+
};
|
|
39
|
+
this.delay = this.settings.default;
|
|
40
|
+
}
|
|
41
|
+
update(status) {
|
|
42
|
+
const random = this.getRandom();
|
|
43
|
+
switch (status) {
|
|
44
|
+
case common_1.HttpStatus.OK:
|
|
45
|
+
this.delay -= random * this.multiplier.ok;
|
|
46
|
+
break;
|
|
47
|
+
case common_1.HttpStatus.FORBIDDEN:
|
|
48
|
+
this.delay += random * this.multiplier.forbidden;
|
|
49
|
+
break;
|
|
50
|
+
case common_1.HttpStatus.TOO_MANY_REQUESTS:
|
|
51
|
+
this.delay += random * this.multiplier.tooManyRequests;
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
this.delay = Math.max(this.delay, this.settings.step);
|
|
57
|
+
this.logger.log(`🔄 ${this.delay}ms`);
|
|
58
|
+
return this.delay;
|
|
59
|
+
}
|
|
60
|
+
getRandom(min, max) {
|
|
61
|
+
const minVal = min ?? this.settings.min;
|
|
62
|
+
const maxVal = max ?? this.settings.max;
|
|
63
|
+
return Math.floor(Math.random() * (maxVal - minVal + 1)) + minVal;
|
|
64
|
+
}
|
|
65
|
+
getConfig() {
|
|
66
|
+
return { ...this.settings };
|
|
67
|
+
}
|
|
68
|
+
getDelay() {
|
|
69
|
+
return this.delay;
|
|
70
|
+
}
|
|
71
|
+
getMapConfig() {
|
|
72
|
+
return { ...this.map };
|
|
73
|
+
}
|
|
74
|
+
reset() {
|
|
75
|
+
this.delay = this.settings.default;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
exports.DelayerConfigService = DelayerConfigService;
|
|
79
|
+
exports.DelayerConfigService = DelayerConfigService = __decorate([
|
|
80
|
+
(0, common_1.Injectable)(),
|
|
81
|
+
__param(0, (0, timestamp_logger_1.InjectLogger)(delayer_service_1.DelayerService)),
|
|
82
|
+
__metadata("design:paramtypes", [common_1.Logger,
|
|
83
|
+
config_1.ConfigService])
|
|
84
|
+
], DelayerConfigService);
|
|
85
|
+
//# sourceMappingURL=delayer-config.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayer-config.service.js","sourceRoot":"","sources":["../../../../src/modules/delayer/use-cases/delayer-config.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
2
|
import { DelayRange } from '../../../common/types/delay-range';
|
|
3
|
+
import { DelayerConfigService } from './delayer-config.service';
|
|
3
4
|
export declare class DelayerMapService {
|
|
4
5
|
private readonly logger;
|
|
6
|
+
private readonly config;
|
|
5
7
|
private map;
|
|
6
|
-
constructor(logger:
|
|
8
|
+
constructor(logger: Logger, config: DelayerConfigService);
|
|
7
9
|
wait(url?: string, min?: number, max?: number): Promise<void>;
|
|
8
10
|
getDelays(): Map<string, DelayRange>;
|
|
9
11
|
reset(): void;
|
|
@@ -8,27 +8,37 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.DelayerMapService = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const
|
|
17
|
+
const delayer_service_1 = require("../delayer.service");
|
|
18
|
+
const timestamp_logger_1 = require("../../../common/logger/timestamp.logger");
|
|
19
|
+
const delayer_config_service_1 = require("./delayer-config.service");
|
|
15
20
|
let DelayerMapService = class DelayerMapService {
|
|
16
|
-
constructor(logger) {
|
|
21
|
+
constructor(logger, config) {
|
|
17
22
|
this.logger = logger;
|
|
23
|
+
this.config = config;
|
|
18
24
|
this.map = new Map();
|
|
19
25
|
}
|
|
20
|
-
async wait(url, min
|
|
26
|
+
async wait(url, min, max) {
|
|
21
27
|
if (url) {
|
|
22
28
|
const delay = this.map.get(url);
|
|
23
29
|
if (delay) {
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
const mapConfig = this.config.getMapConfig();
|
|
31
|
+
min = Math.min(mapConfig.max, delay.min + mapConfig.step);
|
|
32
|
+
max = Math.min(mapConfig.max, delay.max + mapConfig.step);
|
|
26
33
|
this.logger.log(`🔇 ${url}`);
|
|
27
34
|
this.logger.log(`🔂 Increasing range: ${min}ms - ${max}ms`);
|
|
28
35
|
}
|
|
29
36
|
this.map.set(url, { min, max });
|
|
30
37
|
}
|
|
31
|
-
const
|
|
38
|
+
const config = this.config.getConfig();
|
|
39
|
+
const finalMin = min ?? config.min;
|
|
40
|
+
const finalMax = max ?? config.max;
|
|
41
|
+
const delay = this.config.getRandom(finalMin, finalMax);
|
|
32
42
|
this.logger.log(`⏳ Waiting ${delay}ms ...`);
|
|
33
43
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
34
44
|
}
|
|
@@ -42,6 +52,8 @@ let DelayerMapService = class DelayerMapService {
|
|
|
42
52
|
exports.DelayerMapService = DelayerMapService;
|
|
43
53
|
exports.DelayerMapService = DelayerMapService = __decorate([
|
|
44
54
|
(0, common_1.Injectable)(),
|
|
45
|
-
|
|
55
|
+
__param(0, (0, timestamp_logger_1.InjectLogger)(delayer_service_1.DelayerService)),
|
|
56
|
+
__metadata("design:paramtypes", [common_1.Logger,
|
|
57
|
+
delayer_config_service_1.DelayerConfigService])
|
|
46
58
|
], DelayerMapService);
|
|
47
59
|
//# sourceMappingURL=delayer-mapper.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delayer-mapper.service.js","sourceRoot":"","sources":["../../../../src/modules/delayer/use-cases/delayer-mapper.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delayer-mapper.service.js","sourceRoot":"","sources":["../../../../src/modules/delayer/use-cases/delayer-mapper.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,wDAAoD;AAEpD,8EAAuE;AACvE,qEAAgE;AAGzD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAG5B,YACgC,MAA+B,EAC5C,MAA4B;QADE,WAAM,GAAN,MAAM,CAAQ;QAC5C,WAAM,GAAN,MAAM,CAAsB;QAJvC,QAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;IAKzC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAY,EAAE,GAAY,EAAE,GAAY;QACjD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC7C,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1D,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACF,CAAA;AAtCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,+BAAY,EAAC,gCAAc,CAAC,CAAA;qCAA0B,eAAM;QACpC,6CAAoB;GALpC,iBAAiB,CAsC7B"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { DelayerConfigService } from './delayer-config.service';
|
|
2
3
|
export declare class DelayerSleepService {
|
|
3
4
|
private readonly logger;
|
|
4
|
-
private
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
private max;
|
|
8
|
-
constructor(logger: DelayerLoggerService);
|
|
9
|
-
update(statusCode: number): number;
|
|
5
|
+
private readonly config;
|
|
6
|
+
constructor(logger: Logger, config: DelayerConfigService);
|
|
7
|
+
update(status: number): number;
|
|
10
8
|
execute(min?: number, max?: number): Promise<void>;
|
|
11
9
|
getDelay(): number;
|
|
12
10
|
reset(): void;
|
|
@@ -8,55 +8,42 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.DelayerSleepService = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const
|
|
17
|
+
const delayer_service_1 = require("../delayer.service");
|
|
18
|
+
const delayer_config_service_1 = require("./delayer-config.service");
|
|
19
|
+
const timestamp_logger_1 = require("../../../common/logger/timestamp.logger");
|
|
15
20
|
let DelayerSleepService = class DelayerSleepService {
|
|
16
|
-
constructor(logger) {
|
|
21
|
+
constructor(logger, config) {
|
|
17
22
|
this.logger = logger;
|
|
18
|
-
this.
|
|
19
|
-
this.min = 300;
|
|
20
|
-
this.max = 500;
|
|
21
|
-
this.delay = this.default;
|
|
23
|
+
this.config = config;
|
|
22
24
|
}
|
|
23
|
-
update(
|
|
24
|
-
|
|
25
|
-
const delay = Math.floor(random) + this.min;
|
|
26
|
-
switch (statusCode) {
|
|
27
|
-
case common_1.HttpStatus.OK:
|
|
28
|
-
this.delay -= delay;
|
|
29
|
-
break;
|
|
30
|
-
case common_1.HttpStatus.FORBIDDEN:
|
|
31
|
-
this.delay += delay;
|
|
32
|
-
break;
|
|
33
|
-
case common_1.HttpStatus.TOO_MANY_REQUESTS:
|
|
34
|
-
this.delay += delay * 2;
|
|
35
|
-
break;
|
|
36
|
-
default:
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
this.delay = this.delay >= this.default ? this.delay : this.default;
|
|
40
|
-
this.logger.log(`🔄 ${this.delay}ms`);
|
|
41
|
-
return this.delay;
|
|
25
|
+
update(status) {
|
|
26
|
+
return this.config.update(status);
|
|
42
27
|
}
|
|
43
|
-
async execute(min
|
|
44
|
-
const
|
|
45
|
-
const delay =
|
|
28
|
+
async execute(min, max) {
|
|
29
|
+
const config = this.config.getConfig();
|
|
30
|
+
const delay = this.config.getRandom(min ?? config.min, max ?? config.max);
|
|
46
31
|
this.logger.log(`💤 Sleeping ${delay}ms...`);
|
|
47
32
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
48
33
|
this.logger.log(`🥱 Slept ${delay}ms...`);
|
|
49
34
|
}
|
|
50
35
|
getDelay() {
|
|
51
|
-
return this.
|
|
36
|
+
return this.config.getDelay();
|
|
52
37
|
}
|
|
53
38
|
reset() {
|
|
54
|
-
this.
|
|
39
|
+
this.config.reset();
|
|
55
40
|
}
|
|
56
41
|
};
|
|
57
42
|
exports.DelayerSleepService = DelayerSleepService;
|
|
58
43
|
exports.DelayerSleepService = DelayerSleepService = __decorate([
|
|
59
44
|
(0, common_1.Injectable)(),
|
|
60
|
-
|
|
45
|
+
__param(0, (0, timestamp_logger_1.InjectLogger)(delayer_service_1.DelayerService)),
|
|
46
|
+
__metadata("design:paramtypes", [common_1.Logger,
|
|
47
|
+
delayer_config_service_1.DelayerConfigService])
|
|
61
48
|
], DelayerSleepService);
|
|
62
49
|
//# sourceMappingURL=delayer-sleeper.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delayer-sleeper.service.js","sourceRoot":"","sources":["../../../../src/modules/delayer/use-cases/delayer-sleeper.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delayer-sleeper.service.js","sourceRoot":"","sources":["../../../../src/modules/delayer/use-cases/delayer-sleeper.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,wDAAoD;AACpD,qEAAgE;AAChE,8EAAuE;AAGhE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YACiD,MAAc,EAC5C,MAA4B;QADE,WAAM,GAAN,MAAM,CAAQ;QAC5C,WAAM,GAAN,MAAM,CAAsB;IAC5C,CAAC;IAEJ,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY,EAAE,GAAY;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF,CAAA;AA1BY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,+BAAY,EAAC,gCAAc,CAAC,CAAA;qCAA0B,eAAM;QACpC,6CAAoB;GAHpC,mBAAmB,CA0B/B"}
|
package/dist/modules/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export * from './delayer/delayer.module';
|
|
2
2
|
export * from './delayer/delayer.service';
|
|
3
|
-
export * from './delayer/use-cases/delayer-logger.service';
|
|
4
3
|
export * from './delayer/use-cases/delayer-mapper.service';
|
|
5
4
|
export * from './delayer/use-cases/delayer-sleeper.service';
|
|
5
|
+
export * from './delayer/use-cases/delayer-config.service';
|
|
6
6
|
export * from './processor/processor.module';
|
|
7
7
|
export * from './processor/processor.service';
|
|
8
|
+
export * from './publisher/publisher.module';
|
|
9
|
+
export * from './publisher/publisher.service';
|
|
8
10
|
export * from './rabbitmq/env/rabbitmq.env.config';
|
|
9
11
|
export * from './rabbitmq/env/rabbitmq.env.validation';
|
|
10
12
|
export * from './rabbitmq/rabbitmq.module';
|
|
@@ -15,6 +17,8 @@ export * from './telegram/env/telegram.env.config';
|
|
|
15
17
|
export * from './telegram/env/telegram.env.validation';
|
|
16
18
|
export * from './telegram/telegram.module';
|
|
17
19
|
export * from './telegram/telegram.service';
|
|
20
|
+
export * from './test/schedule.service';
|
|
21
|
+
export * from './test/schedule.module';
|
|
18
22
|
export * from './web-share/env/web-share.env.config';
|
|
19
23
|
export * from './web-share/env/web-share.env.validation';
|
|
20
24
|
export * from './web-share/web-share.module';
|
package/dist/modules/index.js
CHANGED
|
@@ -16,11 +16,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./delayer/delayer.module"), exports);
|
|
18
18
|
__exportStar(require("./delayer/delayer.service"), exports);
|
|
19
|
-
__exportStar(require("./delayer/use-cases/delayer-logger.service"), exports);
|
|
20
19
|
__exportStar(require("./delayer/use-cases/delayer-mapper.service"), exports);
|
|
21
20
|
__exportStar(require("./delayer/use-cases/delayer-sleeper.service"), exports);
|
|
21
|
+
__exportStar(require("./delayer/use-cases/delayer-config.service"), exports);
|
|
22
22
|
__exportStar(require("./processor/processor.module"), exports);
|
|
23
23
|
__exportStar(require("./processor/processor.service"), exports);
|
|
24
|
+
__exportStar(require("./publisher/publisher.module"), exports);
|
|
25
|
+
__exportStar(require("./publisher/publisher.service"), exports);
|
|
24
26
|
__exportStar(require("./rabbitmq/env/rabbitmq.env.config"), exports);
|
|
25
27
|
__exportStar(require("./rabbitmq/env/rabbitmq.env.validation"), exports);
|
|
26
28
|
__exportStar(require("./rabbitmq/rabbitmq.module"), exports);
|
|
@@ -31,6 +33,8 @@ __exportStar(require("./telegram/env/telegram.env.config"), exports);
|
|
|
31
33
|
__exportStar(require("./telegram/env/telegram.env.validation"), exports);
|
|
32
34
|
__exportStar(require("./telegram/telegram.module"), exports);
|
|
33
35
|
__exportStar(require("./telegram/telegram.service"), exports);
|
|
36
|
+
__exportStar(require("./test/schedule.service"), exports);
|
|
37
|
+
__exportStar(require("./test/schedule.module"), exports);
|
|
34
38
|
__exportStar(require("./web-share/env/web-share.env.config"), exports);
|
|
35
39
|
__exportStar(require("./web-share/env/web-share.env.validation"), exports);
|
|
36
40
|
__exportStar(require("./web-share/web-share.module"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,6EAA2D;AAC3D,6EAA2D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,6EAA2D;AAC3D,8EAA4D;AAC5D,6EAA2D;AAE3D,+DAA6C;AAC7C,gEAA8C;AAE9C,+DAA6C;AAC7C,gEAA8C;AAE9C,qEAAmD;AACnD,yEAAuD;AACvD,6DAA2C;AAC3C,8DAA4C;AAE5C,2DAAyC;AACzC,4DAA0C;AAE1C,qEAAmD;AACnD,yEAAuD;AACvD,6DAA2C;AAC3C,8DAA4C;AAE5C,0DAAwC;AACxC,yDAAuC;AAEvC,uEAAqD;AACrD,2EAAyD;AACzD,+DAA6C;AAC7C,gEAA8C"}
|
|
@@ -10,15 +10,17 @@ exports.ProcessorModule = void 0;
|
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const rabbitmq_module_1 = require("../rabbitmq/rabbitmq.module");
|
|
12
12
|
const processor_service_1 = require("./processor.service");
|
|
13
|
+
const queue_name_1 = require("./enum/queue.name");
|
|
14
|
+
const queue_token_1 = require("./enum/queue.token");
|
|
13
15
|
let ProcessorModule = class ProcessorModule {
|
|
14
16
|
};
|
|
15
17
|
exports.ProcessorModule = ProcessorModule;
|
|
16
18
|
exports.ProcessorModule = ProcessorModule = __decorate([
|
|
17
19
|
(0, common_1.Module)({
|
|
18
20
|
imports: [
|
|
19
|
-
rabbitmq_module_1.RabbitMQModule.registerQueue(
|
|
20
|
-
rabbitmq_module_1.RabbitMQModule.registerQueue(
|
|
21
|
-
rabbitmq_module_1.RabbitMQModule.registerQueue(
|
|
21
|
+
rabbitmq_module_1.RabbitMQModule.registerQueue(queue_name_1.QueueName.DEV, queue_token_1.QueueToken.DEV),
|
|
22
|
+
rabbitmq_module_1.RabbitMQModule.registerQueue(queue_name_1.QueueName.QA, queue_token_1.QueueToken.QA),
|
|
23
|
+
rabbitmq_module_1.RabbitMQModule.registerQueue(queue_name_1.QueueName.PROD, queue_token_1.QueueToken.PROD),
|
|
22
24
|
],
|
|
23
25
|
providers: [processor_service_1.ProcessorService],
|
|
24
26
|
exports: [processor_service_1.ProcessorService],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.module.js","sourceRoot":"","sources":["../../../src/modules/processor/processor.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,iEAA6D;AAC7D,2DAAuD;
|
|
1
|
+
{"version":3,"file":"processor.module.js","sourceRoot":"","sources":["../../../src/modules/processor/processor.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,iEAA6D;AAC7D,2DAAuD;AACvD,kDAA8C;AAC9C,oDAAgD;AAWzC,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAT3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,gCAAc,CAAC,aAAa,CAAC,sBAAS,CAAC,GAAG,EAAE,wBAAU,CAAC,GAAG,CAAC;YAC3D,gCAAc,CAAC,aAAa,CAAC,sBAAS,CAAC,EAAE,EAAE,wBAAU,CAAC,EAAE,CAAC;YACzD,gCAAc,CAAC,aAAa,CAAC,sBAAS,CAAC,IAAI,EAAE,wBAAU,CAAC,IAAI,CAAC;SAC9D;QACD,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PublisherModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const processor_module_1 = require("../processor/processor.module");
|
|
12
|
+
const publisher_service_1 = require("./publisher.service");
|
|
13
|
+
const timestamp_logger_1 = require("../../common/logger/timestamp.logger");
|
|
14
|
+
let PublisherModule = class PublisherModule {
|
|
15
|
+
};
|
|
16
|
+
exports.PublisherModule = PublisherModule;
|
|
17
|
+
exports.PublisherModule = PublisherModule = __decorate([
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
imports: [processor_module_1.ProcessorModule],
|
|
20
|
+
providers: [publisher_service_1.PublisherService, (0, timestamp_logger_1.LoggerProvider)(publisher_service_1.PublisherService)],
|
|
21
|
+
exports: [publisher_service_1.PublisherService],
|
|
22
|
+
})
|
|
23
|
+
], PublisherModule);
|
|
24
|
+
//# sourceMappingURL=publisher.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publisher.module.js","sourceRoot":"","sources":["../../../src/modules/publisher/publisher.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,oEAAgE;AAEhE,2DAAuD;AACvD,2EAAsE;AAO/D,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAL3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kCAAe,CAAC;QAC1B,SAAS,EAAE,CAAC,oCAAgB,EAAE,IAAA,iCAAc,EAAC,oCAAgB,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { ProcessorService } from '../processor/processor.service';
|
|
3
|
+
export declare class PublisherService {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly processor;
|
|
6
|
+
constructor(logger: Logger, processor: ProcessorService);
|
|
7
|
+
load(slug: string): Promise<any>;
|
|
8
|
+
publish(slug: string): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PublisherService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const path_1 = require("path");
|
|
19
|
+
const processor_service_1 = require("../processor/processor.service");
|
|
20
|
+
const output_1 = require("../../common/constant/output");
|
|
21
|
+
const timestamp_logger_1 = require("../../common/logger/timestamp.logger");
|
|
22
|
+
let PublisherService = class PublisherService {
|
|
23
|
+
constructor(logger, processor) {
|
|
24
|
+
this.logger = logger;
|
|
25
|
+
this.processor = processor;
|
|
26
|
+
}
|
|
27
|
+
async load(slug) {
|
|
28
|
+
try {
|
|
29
|
+
const filename = `${slug}_data.json`;
|
|
30
|
+
const filepath = (0, path_1.join)(output_1.OUTPUT_PATH, filename);
|
|
31
|
+
const data = await fs_1.promises.readFile(filepath, 'utf-8');
|
|
32
|
+
const result = JSON.parse(data);
|
|
33
|
+
if (result) {
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
const { message } = error;
|
|
40
|
+
this.logger.error(`💥 Failed to load data`);
|
|
41
|
+
this.logger.error(message);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async publish(slug) {
|
|
45
|
+
try {
|
|
46
|
+
const result = await this.load(slug);
|
|
47
|
+
await this.processor.send(result);
|
|
48
|
+
this.logger.log('Scraping results published to RabbitMQ');
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const { message } = error;
|
|
52
|
+
this.logger.error(`💥 Failed to send RabbitMQ message`);
|
|
53
|
+
this.logger.error(message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.PublisherService = PublisherService;
|
|
58
|
+
exports.PublisherService = PublisherService = __decorate([
|
|
59
|
+
(0, common_1.Injectable)(),
|
|
60
|
+
__param(0, (0, timestamp_logger_1.InjectLogger)(PublisherService)),
|
|
61
|
+
__metadata("design:paramtypes", [common_1.Logger,
|
|
62
|
+
processor_service_1.ProcessorService])
|
|
63
|
+
], PublisherService);
|
|
64
|
+
//# sourceMappingURL=publisher.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publisher.service.js","sourceRoot":"","sources":["../../../src/modules/publisher/publisher.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,2BAAoC;AACpC,+BAA4B;AAE5B,sEAAkE;AAClE,yDAA2D;AAC3D,2EAAoE;AAG7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAEmB,MAAc,EACd,SAA2B;QAD3B,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAkB;IAC3C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,IAAI,YAAY,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,oBAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,KAAc,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,KAAc,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF,CAAA;AAnCY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,+BAAY,EAAC,gBAAgB,CAAC,CAAA;qCACN,eAAM;QACH,oCAAgB;GAJnC,gBAAgB,CAmC5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TestScheduleModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const schedule_service_1 = require("./schedule.service");
|
|
12
|
+
const timestamp_logger_1 = require("../../common/logger/timestamp.logger");
|
|
13
|
+
let TestScheduleModule = class TestScheduleModule {
|
|
14
|
+
};
|
|
15
|
+
exports.TestScheduleModule = TestScheduleModule;
|
|
16
|
+
exports.TestScheduleModule = TestScheduleModule = __decorate([
|
|
17
|
+
(0, common_1.Module)({
|
|
18
|
+
providers: [schedule_service_1.TestScheduleService, (0, timestamp_logger_1.LoggerProvider)(schedule_service_1.TestScheduleService)],
|
|
19
|
+
exports: [schedule_service_1.TestScheduleService],
|
|
20
|
+
})
|
|
21
|
+
], TestScheduleModule);
|
|
22
|
+
//# sourceMappingURL=schedule.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.module.js","sourceRoot":"","sources":["../../../src/modules/test/schedule.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,yDAAyD;AACzD,2EAAsE;AAM/D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IAJ9B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,sCAAmB,EAAE,IAAA,iCAAc,EAAC,sCAAmB,CAAC,CAAC;QACrE,OAAO,EAAE,CAAC,sCAAmB,CAAC;KAC/B,CAAC;GACW,kBAAkB,CAAG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TestScheduleService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const schedule_1 = require("@nestjs/schedule");
|
|
18
|
+
const timestamp_logger_1 = require("../../common/logger/timestamp.logger");
|
|
19
|
+
let TestScheduleService = class TestScheduleService {
|
|
20
|
+
constructor(logger) {
|
|
21
|
+
this.logger = logger;
|
|
22
|
+
}
|
|
23
|
+
test() {
|
|
24
|
+
this.logger.debug('⏲️ Testing schedules');
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.TestScheduleService = TestScheduleService;
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, schedule_1.Cron)(schedule_1.CronExpression.EVERY_HOUR),
|
|
30
|
+
__metadata("design:type", Function),
|
|
31
|
+
__metadata("design:paramtypes", []),
|
|
32
|
+
__metadata("design:returntype", void 0)
|
|
33
|
+
], TestScheduleService.prototype, "test", null);
|
|
34
|
+
exports.TestScheduleService = TestScheduleService = __decorate([
|
|
35
|
+
(0, common_1.Injectable)(),
|
|
36
|
+
__param(0, (0, timestamp_logger_1.InjectLogger)(TestScheduleService)),
|
|
37
|
+
__metadata("design:paramtypes", [common_1.Logger])
|
|
38
|
+
], TestScheduleService);
|
|
39
|
+
//# sourceMappingURL=schedule.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.service.js","sourceRoot":"","sources":["../../../src/modules/test/schedule.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+CAAwD;AAExD,2EAAoE;AAG7D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAEmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAGJ,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAVY,kDAAmB;AAO9B;IADC,IAAA,eAAI,EAAC,yBAAc,CAAC,UAAU,CAAC;;;;+CAG/B;8BATU,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,+BAAY,EAAC,mBAAmB,CAAC,CAAA;qCACT,eAAM;GAHtB,mBAAmB,CAU/B"}
|
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare class DelayerLoggerService {
|
|
2
|
-
private readonly logger;
|
|
3
|
-
constructor();
|
|
4
|
-
log(message: string): void;
|
|
5
|
-
debug(message: string): void;
|
|
6
|
-
verbose(message: string): void;
|
|
7
|
-
warn(message: string): void;
|
|
8
|
-
error(message: string): void;
|
|
9
|
-
fatal(message: string): void;
|
|
10
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.DelayerLoggerService = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const delayer_service_1 = require("../delayer.service");
|
|
15
|
-
let DelayerLoggerService = class DelayerLoggerService {
|
|
16
|
-
constructor() {
|
|
17
|
-
const options = { timestamp: true };
|
|
18
|
-
this.logger = new common_1.Logger(delayer_service_1.DelayerService.name, options);
|
|
19
|
-
}
|
|
20
|
-
log(message) {
|
|
21
|
-
this.logger.log(message);
|
|
22
|
-
}
|
|
23
|
-
debug(message) {
|
|
24
|
-
this.logger.debug(message);
|
|
25
|
-
}
|
|
26
|
-
verbose(message) {
|
|
27
|
-
this.logger.verbose(message);
|
|
28
|
-
}
|
|
29
|
-
warn(message) {
|
|
30
|
-
this.logger.warn(message);
|
|
31
|
-
}
|
|
32
|
-
error(message) {
|
|
33
|
-
this.logger.error(message);
|
|
34
|
-
}
|
|
35
|
-
fatal(message) {
|
|
36
|
-
this.logger.fatal(message);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
exports.DelayerLoggerService = DelayerLoggerService;
|
|
40
|
-
exports.DelayerLoggerService = DelayerLoggerService = __decorate([
|
|
41
|
-
(0, common_1.Injectable)(),
|
|
42
|
-
__metadata("design:paramtypes", [])
|
|
43
|
-
], DelayerLoggerService);
|
|
44
|
-
//# sourceMappingURL=delayer-logger.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delayer-logger.service.js","sourceRoot":"","sources":["../../../../src/modules/delayer/use-cases/delayer-logger.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AAEpD,wDAAoD;AAG7C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE/B;QACE,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,gCAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AA9BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;;GACA,oBAAoB,CA8BhC"}
|