@rafikidota/cuba-ofertas-scraping 0.16.0 → 0.18.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/common/class/scraping-result.d.ts +7 -3
- package/dist/common/class/scraping-result.js +5 -0
- package/dist/common/class/scraping-result.js.map +1 -1
- package/dist/common/interface/scraping-result.interface.d.ts +5 -2
- package/dist/compression/compression.module.d.ts +2 -0
- package/dist/compression/compression.module.js +21 -0
- package/dist/compression/compression.module.js.map +1 -0
- package/dist/compression/compression.service.d.ts +3 -0
- package/dist/compression/compression.service.js +73 -0
- package/dist/compression/compression.service.js.map +1 -0
- package/dist/modules/repository/repository.module.js +4 -2
- package/dist/modules/repository/repository.module.js.map +1 -1
- package/dist/modules/repository/repository.service.d.ts +6 -1
- package/dist/modules/repository/repository.service.js +23 -2
- package/dist/modules/repository/repository.service.js.map +1 -1
- package/dist/modules/repository/services/provider.repository.service.d.ts +9 -0
- package/dist/modules/repository/services/provider.repository.service.js +45 -0
- package/dist/modules/repository/services/provider.repository.service.js.map +1 -0
- package/dist/modules/telegram/services/telegram-util.service.js +7 -3
- package/dist/modules/telegram/services/telegram-util.service.js.map +1 -1
- package/dist/modules/telegram/telegram.module.js +2 -1
- package/dist/modules/telegram/telegram.module.js.map +1 -1
- package/dist/modules/telegram/use-cases/telegram-send-scraped-data.use-case.d.ts +3 -1
- package/dist/modules/telegram/use-cases/telegram-send-scraped-data.use-case.js +7 -3
- package/dist/modules/telegram/use-cases/telegram-send-scraped-data.use-case.js.map +1 -1
- package/package.json +3 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ScrapingTypeEnum } from '../enum/scraping-type.enum';
|
|
2
|
-
import { Category } from './category';
|
|
3
|
-
import { Product } from './product';
|
|
4
2
|
import { ScrapingReport } from '../types/report';
|
|
5
3
|
import { IScrapingResult } from '../interface/scraping-result.interface';
|
|
4
|
+
import { Category } from './category';
|
|
5
|
+
import { Product } from './product';
|
|
6
|
+
import { Provider } from './provider';
|
|
6
7
|
export declare class ScrapingResult {
|
|
7
8
|
private id;
|
|
8
9
|
private status;
|
|
@@ -14,8 +15,10 @@ export declare class ScrapingResult {
|
|
|
14
15
|
private durationSeconds;
|
|
15
16
|
private categories;
|
|
16
17
|
private products;
|
|
17
|
-
private
|
|
18
|
+
private providers;
|
|
18
19
|
private totalCategories;
|
|
20
|
+
private totalProducts;
|
|
21
|
+
private totalProviders;
|
|
19
22
|
private error?;
|
|
20
23
|
private report?;
|
|
21
24
|
constructor(slug: string);
|
|
@@ -23,6 +26,7 @@ export declare class ScrapingResult {
|
|
|
23
26
|
getData(): IScrapingResult;
|
|
24
27
|
setCategories(categories: Category[]): void;
|
|
25
28
|
setProducts(products: Product[]): void;
|
|
29
|
+
setProviders(providers: Provider[]): void;
|
|
26
30
|
setReport(report: ScrapingReport): void;
|
|
27
31
|
finish(): void;
|
|
28
32
|
fail(error: string): void;
|
|
@@ -9,6 +9,7 @@ class ScrapingResult {
|
|
|
9
9
|
this.status = scraping_result_status_enum_1.ScrapingResultStatusEnum.PENDING;
|
|
10
10
|
this.categories = [];
|
|
11
11
|
this.products = [];
|
|
12
|
+
this.providers = [];
|
|
12
13
|
this.slug = slug;
|
|
13
14
|
}
|
|
14
15
|
start(type = scraping_type_enum_1.ScrapingTypeEnum.GENERAL) {
|
|
@@ -25,12 +26,16 @@ class ScrapingResult {
|
|
|
25
26
|
setProducts(products) {
|
|
26
27
|
this.products = products;
|
|
27
28
|
}
|
|
29
|
+
setProviders(providers) {
|
|
30
|
+
this.providers = providers;
|
|
31
|
+
}
|
|
28
32
|
setReport(report) {
|
|
29
33
|
this.report = report;
|
|
30
34
|
}
|
|
31
35
|
finish() {
|
|
32
36
|
this.totalProducts = this.products.length;
|
|
33
37
|
this.totalCategories = this.categories.length;
|
|
38
|
+
this.totalProviders = this.providers.length;
|
|
34
39
|
this.endTime = new Date();
|
|
35
40
|
const start = this.startTime.getTime();
|
|
36
41
|
const end = this.endTime.getTime();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scraping-result.js","sourceRoot":"","sources":["../../../src/common/class/scraping-result.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAC/E,mEAA8D;
|
|
1
|
+
{"version":3,"file":"scraping-result.js","sourceRoot":"","sources":["../../../src/common/class/scraping-result.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAC/E,mEAA8D;AAO9D,MAAa,cAAc;IAkBzB,YAAY,IAAY;QACtB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,sDAAwB,CAAC,OAAO,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAyB,qCAAgB,CAAC,OAAO;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,sDAAwB,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,IAAkC,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,QAAmB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,SAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,MAAsB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,sDAAwB,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,sDAAwB,CAAC,MAAM,CAAC;IAChD,CAAC;CACF;AApED,wCAoEC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ScrapingResultStatusEnum } from '../enum/scraping-result-status.enum';
|
|
2
2
|
import { ScrapingTypeEnum } from '../enum/scraping-type.enum';
|
|
3
|
+
import { ScrapingReport } from '../types/report';
|
|
3
4
|
import { Category } from '../class/category';
|
|
4
5
|
import { Product } from '../class/product';
|
|
5
|
-
import {
|
|
6
|
+
import { Provider } from '../class/provider';
|
|
6
7
|
export interface IScrapingResult {
|
|
7
8
|
id: string;
|
|
8
9
|
status: ScrapingResultStatusEnum;
|
|
@@ -14,8 +15,10 @@ export interface IScrapingResult {
|
|
|
14
15
|
durationSeconds: number;
|
|
15
16
|
categories: Category[];
|
|
16
17
|
products: Product[];
|
|
17
|
-
|
|
18
|
+
providers: Provider[];
|
|
18
19
|
totalCategories: number;
|
|
20
|
+
totalProducts: number;
|
|
21
|
+
totalProviders: number;
|
|
19
22
|
error?: string;
|
|
20
23
|
report?: ScrapingReport;
|
|
21
24
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.CompressionModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const compression_service_1 = require("./compression.service");
|
|
12
|
+
let CompressionModule = class CompressionModule {
|
|
13
|
+
};
|
|
14
|
+
exports.CompressionModule = CompressionModule;
|
|
15
|
+
exports.CompressionModule = CompressionModule = __decorate([
|
|
16
|
+
(0, common_1.Module)({
|
|
17
|
+
providers: [compression_service_1.CompressionService],
|
|
18
|
+
exports: [compression_service_1.CompressionService],
|
|
19
|
+
})
|
|
20
|
+
], CompressionModule);
|
|
21
|
+
//# sourceMappingURL=compression.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.module.js","sourceRoot":"","sources":["../../src/compression/compression.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,+DAA2D;AAMpD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAJ7B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,wCAAkB,CAAC;QAC/B,OAAO,EAAE,CAAC,wCAAkB,CAAC;KAC9B,CAAC;GACW,iBAAiB,CAAG"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.CompressionService = void 0;
|
|
46
|
+
const common_1 = require("@nestjs/common");
|
|
47
|
+
const fs_1 = require("fs");
|
|
48
|
+
const fs_2 = require("fs");
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
const archiver_1 = __importDefault(require("archiver"));
|
|
51
|
+
let CompressionService = class CompressionService {
|
|
52
|
+
async zip(jsonData, filePath) {
|
|
53
|
+
const parsedPath = path.parse(filePath);
|
|
54
|
+
const zipFileName = `${parsedPath.name}.zip`;
|
|
55
|
+
const zipPath = path.join(parsedPath.dir, zipFileName);
|
|
56
|
+
await fs_2.promises.mkdir(parsedPath.dir, { recursive: true });
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
const output = (0, fs_1.createWriteStream)(zipPath);
|
|
59
|
+
const archive = (0, archiver_1.default)('zip', { zlib: { level: 9 } });
|
|
60
|
+
output.on('close', () => resolve(zipPath));
|
|
61
|
+
archive.on('error', reject);
|
|
62
|
+
archive.pipe(output);
|
|
63
|
+
const data = JSON.stringify(jsonData, null, 2);
|
|
64
|
+
archive.append(data, { name: `${parsedPath.name}.json` });
|
|
65
|
+
archive.finalize();
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.CompressionService = CompressionService;
|
|
70
|
+
exports.CompressionService = CompressionService = __decorate([
|
|
71
|
+
(0, common_1.Injectable)()
|
|
72
|
+
], CompressionService);
|
|
73
|
+
//# sourceMappingURL=compression.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.service.js","sourceRoot":"","sources":["../../src/compression/compression.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,2BAAuC;AACvC,2BAAoC;AACpC,2CAA6B;AAE7B,wDAAgC;AAGzB,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,KAAK,CAAC,GAAG,CAAC,QAAa,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEvD,MAAM,aAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAA,sBAAiB,EAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAExD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AArBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAqB9B"}
|
|
@@ -9,9 +9,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.RepositoryModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const repository_service_1 = require("./repository.service");
|
|
12
|
+
const category_repository_service_1 = require("./services/category.repository.service");
|
|
12
13
|
const product_repository_service_1 = require("./services/product.repository.service");
|
|
14
|
+
const provider_repository_service_1 = require("./services/provider.repository.service");
|
|
13
15
|
const province_repository_service_1 = require("./services/province.repository.service");
|
|
14
|
-
const category_repository_service_1 = require("./services/category.repository.service");
|
|
15
16
|
let RepositoryModule = class RepositoryModule {
|
|
16
17
|
};
|
|
17
18
|
exports.RepositoryModule = RepositoryModule;
|
|
@@ -19,9 +20,10 @@ exports.RepositoryModule = RepositoryModule = __decorate([
|
|
|
19
20
|
(0, common_1.Module)({
|
|
20
21
|
providers: [
|
|
21
22
|
repository_service_1.RepositoryService,
|
|
23
|
+
category_repository_service_1.CategoryRepositoryService,
|
|
22
24
|
product_repository_service_1.ProductRepositoryService,
|
|
25
|
+
provider_repository_service_1.ProviderRepositoryService,
|
|
23
26
|
province_repository_service_1.ProvinceRepositoryService,
|
|
24
|
-
category_repository_service_1.CategoryRepositoryService,
|
|
25
27
|
],
|
|
26
28
|
exports: [repository_service_1.RepositoryService],
|
|
27
29
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.module.js","sourceRoot":"","sources":["../../../src/modules/repository/repository.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,6DAAyD;AACzD,sFAAiF;AACjF,wFAAmF;AACnF,wFAAmF;
|
|
1
|
+
{"version":3,"file":"repository.module.js","sourceRoot":"","sources":["../../../src/modules/repository/repository.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,6DAAyD;AACzD,wFAAmF;AACnF,sFAAiF;AACjF,wFAAmF;AACnF,wFAAmF;AAY5E,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAV5B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,sCAAiB;YACjB,uDAAyB;YACzB,qDAAwB;YACxB,uDAAyB;YACzB,uDAAyB;SAC1B;QACD,OAAO,EAAE,CAAC,sCAAiB,CAAC;KAC7B,CAAC;GACW,gBAAgB,CAAG"}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { ProvinceRepositoryService } from './services/province.repository.service';
|
|
2
2
|
import { CategoryRepositoryService } from './services/category.repository.service';
|
|
3
|
+
import { ProviderRepositoryService } from './services/provider.repository.service';
|
|
3
4
|
import { ProductRepositoryService } from './services/product.repository.service';
|
|
4
5
|
import { Province } from '../../common/class/province';
|
|
5
6
|
import { Category } from '../../common/class/category';
|
|
7
|
+
import { Provider } from '../../common/class/provider';
|
|
6
8
|
import { Product } from '../../common/class/product';
|
|
7
9
|
export declare class RepositoryService {
|
|
8
10
|
private readonly province;
|
|
9
11
|
private readonly category;
|
|
12
|
+
private readonly provider;
|
|
10
13
|
private readonly product;
|
|
11
14
|
private logger;
|
|
12
|
-
constructor(province: ProvinceRepositoryService, category: CategoryRepositoryService, product: ProductRepositoryService);
|
|
15
|
+
constructor(province: ProvinceRepositoryService, category: CategoryRepositoryService, provider: ProviderRepositoryService, product: ProductRepositoryService);
|
|
13
16
|
getCategories(): Category[];
|
|
14
17
|
getProducts(): Product[];
|
|
18
|
+
getProviders(): Provider[];
|
|
15
19
|
getProvinces(): Province[];
|
|
16
20
|
saveCategories(categories: Category[]): void;
|
|
17
21
|
saveProducts(products: Product[]): void;
|
|
22
|
+
saveProviders(providers: Provider[]): void;
|
|
18
23
|
saveProvinces(provinces: Province[]): void;
|
|
19
24
|
reset(): void;
|
|
20
25
|
}
|
|
@@ -15,13 +15,15 @@ const common_1 = require("@nestjs/common");
|
|
|
15
15
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
16
16
|
const province_repository_service_1 = require("./services/province.repository.service");
|
|
17
17
|
const category_repository_service_1 = require("./services/category.repository.service");
|
|
18
|
+
const provider_repository_service_1 = require("./services/provider.repository.service");
|
|
18
19
|
const product_repository_service_1 = require("./services/product.repository.service");
|
|
19
20
|
const logger_1 = require("../../common/logger/logger");
|
|
20
21
|
const event_enum_1 = require("../../common/enum/event.enum");
|
|
21
22
|
let RepositoryService = RepositoryService_1 = class RepositoryService {
|
|
22
|
-
constructor(province, category, product) {
|
|
23
|
+
constructor(province, category, provider, product) {
|
|
23
24
|
this.province = province;
|
|
24
25
|
this.category = category;
|
|
26
|
+
this.provider = provider;
|
|
25
27
|
this.product = product;
|
|
26
28
|
this.logger = new logger_1.Logger(RepositoryService_1.name);
|
|
27
29
|
}
|
|
@@ -31,6 +33,9 @@ let RepositoryService = RepositoryService_1 = class RepositoryService {
|
|
|
31
33
|
getProducts() {
|
|
32
34
|
return this.product.getProducts();
|
|
33
35
|
}
|
|
36
|
+
getProviders() {
|
|
37
|
+
return this.provider.getProviders();
|
|
38
|
+
}
|
|
34
39
|
getProvinces() {
|
|
35
40
|
return this.province.getProvinces();
|
|
36
41
|
}
|
|
@@ -40,11 +45,20 @@ let RepositoryService = RepositoryService_1 = class RepositoryService {
|
|
|
40
45
|
saveProducts(products) {
|
|
41
46
|
this.product.saveProducts(products);
|
|
42
47
|
}
|
|
48
|
+
saveProviders(providers) {
|
|
49
|
+
this.provider.saveProviders(providers);
|
|
50
|
+
}
|
|
43
51
|
saveProvinces(provinces) {
|
|
44
52
|
this.province.saveProvinces(provinces);
|
|
45
53
|
}
|
|
46
54
|
reset() {
|
|
47
|
-
|
|
55
|
+
const services = [
|
|
56
|
+
this.province,
|
|
57
|
+
this.category,
|
|
58
|
+
this.provider,
|
|
59
|
+
this.product,
|
|
60
|
+
];
|
|
61
|
+
services.forEach((x) => x.reset());
|
|
48
62
|
this.logger.log('✅ Repository reset successfully');
|
|
49
63
|
}
|
|
50
64
|
};
|
|
@@ -61,6 +75,12 @@ __decorate([
|
|
|
61
75
|
__metadata("design:paramtypes", [Array]),
|
|
62
76
|
__metadata("design:returntype", void 0)
|
|
63
77
|
], RepositoryService.prototype, "saveProducts", null);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, event_emitter_1.OnEvent)(event_enum_1.ScrapingEvent.SAVE_PROVIDERS),
|
|
80
|
+
__metadata("design:type", Function),
|
|
81
|
+
__metadata("design:paramtypes", [Array]),
|
|
82
|
+
__metadata("design:returntype", void 0)
|
|
83
|
+
], RepositoryService.prototype, "saveProviders", null);
|
|
64
84
|
__decorate([
|
|
65
85
|
(0, event_emitter_1.OnEvent)(event_enum_1.ScrapingEvent.SAVE_PROVINCES),
|
|
66
86
|
__metadata("design:type", Function),
|
|
@@ -77,6 +97,7 @@ exports.RepositoryService = RepositoryService = RepositoryService_1 = __decorate
|
|
|
77
97
|
(0, common_1.Injectable)(),
|
|
78
98
|
__metadata("design:paramtypes", [province_repository_service_1.ProvinceRepositoryService,
|
|
79
99
|
category_repository_service_1.CategoryRepositoryService,
|
|
100
|
+
provider_repository_service_1.ProviderRepositoryService,
|
|
80
101
|
product_repository_service_1.ProductRepositoryService])
|
|
81
102
|
], RepositoryService);
|
|
82
103
|
//# sourceMappingURL=repository.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.service.js","sourceRoot":"","sources":["../../../src/modules/repository/repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAEhD,wFAAmF;AACnF,wFAAmF;AACnF,sFAAiF;AAEjF,uDAAoD;AACpD,6DAA6D;
|
|
1
|
+
{"version":3,"file":"repository.service.js","sourceRoot":"","sources":["../../../src/modules/repository/repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAEhD,wFAAmF;AACnF,wFAAmF;AACnF,wFAAmF;AACnF,sFAAiF;AAEjF,uDAAoD;AACpD,6DAA6D;AAOtD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG5B,YACmB,QAAmC,EACnC,QAAmC,EACnC,QAAmC,EACnC,OAAiC;QAHjC,aAAQ,GAAR,QAAQ,CAA2B;QACnC,aAAQ,GAAR,QAAQ,CAA2B;QACnC,aAAQ,GAAR,QAAQ,CAA2B;QACnC,YAAO,GAAP,OAAO,CAA0B;QAN5C,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAOjD,CAAC;IAEJ,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAGD,cAAc,CAAC,UAAsB;QACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAGD,YAAY,CAAC,QAAmB;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAGD,aAAa,CAAC,SAAqB;QACjC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAGD,aAAa,CAAC,SAAqB;QACjC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAGD,KAAK;QACH,MAAM,QAAQ,GAAG;YACf,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,OAAO;SACb,CAAC;QACF,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAzDY,8CAAiB;AA2B5B;IADC,IAAA,uBAAO,EAAC,0BAAa,CAAC,eAAe,CAAC;;;;uDAGtC;AAGD;IADC,IAAA,uBAAO,EAAC,0BAAa,CAAC,aAAa,CAAC;;;;qDAGpC;AAGD;IADC,IAAA,uBAAO,EAAC,0BAAa,CAAC,cAAc,CAAC;;;;sDAGrC;AAGD;IADC,IAAA,uBAAO,EAAC,0BAAa,CAAC,cAAc,CAAC;;;;sDAGrC;AAGD;IADC,IAAA,uBAAO,EAAC,0BAAa,CAAC,KAAK,CAAC;;;;8CAU5B;4BAxDU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAKkB,uDAAyB;QACzB,uDAAyB;QACzB,uDAAyB;QAC1B,qDAAwB;GAPzC,iBAAiB,CAyD7B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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.ProviderRepositoryService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const repository_service_1 = require("../repository.service");
|
|
15
|
+
const logger_1 = require("../../../common/logger/logger");
|
|
16
|
+
let ProviderRepositoryService = class ProviderRepositoryService {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.logger = new logger_1.Logger(repository_service_1.RepositoryService.name);
|
|
19
|
+
this.providers = new Map();
|
|
20
|
+
}
|
|
21
|
+
getProviders() {
|
|
22
|
+
const values = this.providers.values();
|
|
23
|
+
return Array.from(values);
|
|
24
|
+
}
|
|
25
|
+
saveProviders(providers) {
|
|
26
|
+
providers.forEach((provider) => {
|
|
27
|
+
const { id, name } = provider.getData();
|
|
28
|
+
if (!this.providers.has(id)) {
|
|
29
|
+
this.providers.set(id, provider);
|
|
30
|
+
this.logger.debug(name);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const { size } = this.providers;
|
|
34
|
+
this.logger.verbose(`✅ ${size} Providers saved successfully`);
|
|
35
|
+
}
|
|
36
|
+
reset() {
|
|
37
|
+
this.providers.clear();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.ProviderRepositoryService = ProviderRepositoryService;
|
|
41
|
+
exports.ProviderRepositoryService = ProviderRepositoryService = __decorate([
|
|
42
|
+
(0, common_1.Injectable)(),
|
|
43
|
+
__metadata("design:paramtypes", [])
|
|
44
|
+
], ProviderRepositoryService);
|
|
45
|
+
//# sourceMappingURL=provider.repository.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/provider.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,8DAA0D;AAC1D,0DAAuD;AAIhD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAIpC;QAHQ,WAAM,GAAG,IAAI,eAAM,CAAC,sCAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;IAEtC,CAAC;IAEhB,YAAY;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,SAAqB;QACjC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF,CAAA;AA1BY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;;GACA,yBAAyB,CA0BrC"}
|
|
@@ -12,16 +12,20 @@ let TelegramUtilService = class TelegramUtilService {
|
|
|
12
12
|
parseTimestamp(date) {
|
|
13
13
|
const locale = 'es-ES';
|
|
14
14
|
const options = {
|
|
15
|
-
year: 'numeric',
|
|
16
|
-
month: '2-digit',
|
|
17
15
|
day: '2-digit',
|
|
16
|
+
month: '2-digit',
|
|
17
|
+
year: 'numeric',
|
|
18
18
|
hour: '2-digit',
|
|
19
19
|
minute: '2-digit',
|
|
20
20
|
second: '2-digit',
|
|
21
21
|
timeZone: 'America/Havana',
|
|
22
22
|
};
|
|
23
23
|
const parsedDate = date.toLocaleString(locale, options);
|
|
24
|
-
|
|
24
|
+
const [datePart, timePart] = parsedDate.split(', ');
|
|
25
|
+
const [day, month, year] = datePart.split('/');
|
|
26
|
+
const formattedDay = day.padStart(2, '0');
|
|
27
|
+
const formattedMonth = month.padStart(2, '0');
|
|
28
|
+
return `${formattedDay}/${formattedMonth}/${year}, ${timePart}`;
|
|
25
29
|
}
|
|
26
30
|
parseDuration(duration) {
|
|
27
31
|
const minutes = Math.ceil(duration / 60);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-util.service.js","sourceRoot":"","sources":["../../../../src/modules/telegram/services/telegram-util.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAGrC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,cAAc,CAAC,IAAU;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC;QACvB,MAAM,OAAO,GAA+B;YAC1C,
|
|
1
|
+
{"version":3,"file":"telegram-util.service.js","sourceRoot":"","sources":["../../../../src/modules/telegram/services/telegram-util.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAGrC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,cAAc,CAAC,IAAU;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC;QACvB,MAAM,OAAO,GAA+B;YAC1C,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE9C,OAAO,GAAG,YAAY,IAAI,cAAc,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAEzC,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,OAAO,GAAG,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAElD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,GAAG,KAAK,IAAI,UAAU,EAAE,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9D,OAAO,GAAG,KAAK,IAAI,UAAU,QAAQ,WAAW,IAAI,YAAY,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,OAAO,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;CACF,CAAA;AA1CY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CA0C/B"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.TelegramModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const storage_module_1 = require("../storage/storage.module");
|
|
12
|
+
const compression_module_1 = require("../../compression/compression.module");
|
|
12
13
|
const telegram_service_1 = require("./telegram.service");
|
|
13
14
|
const telegram_bot_service_1 = require("./services/telegram-bot.service");
|
|
14
15
|
const telegram_util_service_1 = require("./services/telegram-util.service");
|
|
@@ -21,7 +22,7 @@ let TelegramModule = class TelegramModule {
|
|
|
21
22
|
exports.TelegramModule = TelegramModule;
|
|
22
23
|
exports.TelegramModule = TelegramModule = __decorate([
|
|
23
24
|
(0, common_1.Module)({
|
|
24
|
-
imports: [storage_module_1.StorageModule],
|
|
25
|
+
imports: [storage_module_1.StorageModule, compression_module_1.CompressionModule],
|
|
25
26
|
providers: [
|
|
26
27
|
telegram_service_1.TelegramService,
|
|
27
28
|
telegram_bot_service_1.TelegramBotService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.module.js","sourceRoot":"","sources":["../../../src/modules/telegram/telegram.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,8DAA0D;
|
|
1
|
+
{"version":3,"file":"telegram.module.js","sourceRoot":"","sources":["../../../src/modules/telegram/telegram.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,8DAA0D;AAC1D,6EAAyE;AAEzE,yDAAqD;AACrD,0EAAqE;AACrE,4EAAuE;AACvE,+FAAwF;AACxF,iGAA0F;AAC1F,2HAAkH;AAClH,yGAAiG;AAe1F,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAb1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,sCAAiB,CAAC;QAC3C,SAAS,EAAE;YACT,kCAAe;YACf,yCAAkB;YAClB,2CAAmB;YACnB,2DAA0B;YAC1B,6DAA2B;YAC3B,qFAAsC;YACtC,oEAA8B;SAC/B;QACD,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { TelegramScrapedDataBuildCaptionUseCase } from './telegram-scraped-data-build-caption.use-case';
|
|
2
|
+
import { CompressionService } from '../../../compression/compression.service';
|
|
2
3
|
import { StorageService } from '../../storage/storage.service';
|
|
3
4
|
import { TelegramBotService } from '../services/telegram-bot.service';
|
|
4
5
|
import { TelegramSendDocumentUseCase } from './telegram-send-document.use-case';
|
|
5
6
|
export declare class TelegramSendScrapedDataUseCase {
|
|
6
7
|
private readonly storage;
|
|
8
|
+
private readonly compression;
|
|
7
9
|
private readonly bot;
|
|
8
10
|
private readonly buildCaptionUseCase;
|
|
9
11
|
private readonly sendDocumentUseCase;
|
|
10
12
|
private readonly logger;
|
|
11
|
-
constructor(storage: StorageService, bot: TelegramBotService, buildCaptionUseCase: TelegramScrapedDataBuildCaptionUseCase, sendDocumentUseCase: TelegramSendDocumentUseCase);
|
|
13
|
+
constructor(storage: StorageService, compression: CompressionService, bot: TelegramBotService, buildCaptionUseCase: TelegramScrapedDataBuildCaptionUseCase, sendDocumentUseCase: TelegramSendDocumentUseCase);
|
|
12
14
|
private getTopic;
|
|
13
15
|
private load;
|
|
14
16
|
execute(slug: string): Promise<import("telegraf/types").Message.DocumentMessage>;
|
|
@@ -15,12 +15,14 @@ const common_1 = require("@nestjs/common");
|
|
|
15
15
|
const logger_1 = require("../../../common/logger/logger");
|
|
16
16
|
const scraping_type_enum_1 = require("../../../common/enum/scraping-type.enum");
|
|
17
17
|
const telegram_scraped_data_build_caption_use_case_1 = require("./telegram-scraped-data-build-caption.use-case");
|
|
18
|
+
const compression_service_1 = require("../../../compression/compression.service");
|
|
18
19
|
const storage_service_1 = require("../../storage/storage.service");
|
|
19
20
|
const telegram_bot_service_1 = require("../services/telegram-bot.service");
|
|
20
21
|
const telegram_send_document_use_case_1 = require("./telegram-send-document.use-case");
|
|
21
22
|
let TelegramSendScrapedDataUseCase = TelegramSendScrapedDataUseCase_1 = class TelegramSendScrapedDataUseCase {
|
|
22
|
-
constructor(storage, bot, buildCaptionUseCase, sendDocumentUseCase) {
|
|
23
|
+
constructor(storage, compression, bot, buildCaptionUseCase, sendDocumentUseCase) {
|
|
23
24
|
this.storage = storage;
|
|
25
|
+
this.compression = compression;
|
|
24
26
|
this.bot = bot;
|
|
25
27
|
this.buildCaptionUseCase = buildCaptionUseCase;
|
|
26
28
|
this.sendDocumentUseCase = sendDocumentUseCase;
|
|
@@ -40,14 +42,16 @@ let TelegramSendScrapedDataUseCase = TelegramSendScrapedDataUseCase_1 = class Te
|
|
|
40
42
|
const result = await this.load(slug);
|
|
41
43
|
const caption = this.buildCaptionUseCase.execute(result);
|
|
42
44
|
const topic = this.getTopic(result.type);
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
+
const jsonPath = this.storage.getPath(slug);
|
|
46
|
+
const zipPath = await this.compression.zip(result, jsonPath);
|
|
47
|
+
return await this.sendDocumentUseCase.execute(zipPath, caption, topic);
|
|
45
48
|
}
|
|
46
49
|
};
|
|
47
50
|
exports.TelegramSendScrapedDataUseCase = TelegramSendScrapedDataUseCase;
|
|
48
51
|
exports.TelegramSendScrapedDataUseCase = TelegramSendScrapedDataUseCase = TelegramSendScrapedDataUseCase_1 = __decorate([
|
|
49
52
|
(0, common_1.Injectable)(),
|
|
50
53
|
__metadata("design:paramtypes", [storage_service_1.StorageService,
|
|
54
|
+
compression_service_1.CompressionService,
|
|
51
55
|
telegram_bot_service_1.TelegramBotService,
|
|
52
56
|
telegram_scraped_data_build_caption_use_case_1.TelegramScrapedDataBuildCaptionUseCase,
|
|
53
57
|
telegram_send_document_use_case_1.TelegramSendDocumentUseCase])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-send-scraped-data.use-case.js","sourceRoot":"","sources":["../../../../src/modules/telegram/use-cases/telegram-send-scraped-data.use-case.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,0DAAuD;AACvD,gFAA2E;AAC3E,iHAAwG;AAExG,mEAA+D;AAC/D,2EAAsE;AACtE,uFAAgF;AAGzE,IAAM,8BAA8B,sCAApC,MAAM,8BAA8B;IAGzC,YACmB,OAAuB,EACvB,GAAuB,EACvB,mBAA2D,EAC3D,mBAAgD;
|
|
1
|
+
{"version":3,"file":"telegram-send-scraped-data.use-case.js","sourceRoot":"","sources":["../../../../src/modules/telegram/use-cases/telegram-send-scraped-data.use-case.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,0DAAuD;AACvD,gFAA2E;AAC3E,iHAAwG;AAExG,kFAA8E;AAC9E,mEAA+D;AAC/D,2EAAsE;AACtE,uFAAgF;AAGzE,IAAM,8BAA8B,sCAApC,MAAM,8BAA8B;IAGzC,YACmB,OAAuB,EACvB,WAA+B,EAC/B,GAAuB,EACvB,mBAA2D,EAC3D,mBAAgD;QAJhD,YAAO,GAAP,OAAO,CAAgB;QACvB,gBAAW,GAAX,WAAW,CAAoB;QAC/B,QAAG,GAAH,GAAG,CAAoB;QACvB,wBAAmB,GAAnB,mBAAmB,CAAwC;QAC3D,wBAAmB,GAAnB,mBAAmB,CAA6B;QAPlD,WAAM,GAAG,IAAI,eAAM,CAAC,gCAA8B,CAAC,IAAI,CAAC,CAAC;IAQvE,CAAC;IAEI,QAAQ,CAAC,IAAsB;QACrC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAI,IAAI,KAAK,qCAAgB,CAAC,QAAQ,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;CACF,CAAA;AA/BY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;qCAKiB,gCAAc;QACV,wCAAkB;QAC1B,yCAAkB;QACF,qFAAsC;QACtC,6DAA2B;GARxD,8BAA8B,CA+B1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rafikidota/cuba-ofertas-scraping",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Sometimes, the best way to solve your own problems is to help someone else.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,9 +26,11 @@
|
|
|
26
26
|
"@nestjs/event-emitter": "3.0.1",
|
|
27
27
|
"@nestjs/microservices": "11.1.11",
|
|
28
28
|
"@nestjs/schedule": "6.1.0",
|
|
29
|
+
"@types/archiver": "7.0.0",
|
|
29
30
|
"@types/node": "25.0.3",
|
|
30
31
|
"@typescript-eslint/eslint-plugin": "8.52.0",
|
|
31
32
|
"@typescript-eslint/parser": "8.52.0",
|
|
33
|
+
"archiver": "7.0.1",
|
|
32
34
|
"axios": "1.13.2",
|
|
33
35
|
"crawlee": "3.15.3",
|
|
34
36
|
"dotenv": "17.2.3",
|