Skip to content

Commit ed4c8b3

Browse files
modify npm start script logic
1 parent 87006e7 commit ed4c8b3

File tree

3 files changed

+48
-44
lines changed

3 files changed

+48
-44
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "index.js",
66
"type": "module",
77
"scripts": {
8-
"start": "npx tsx src/Scheduler/index.ts",
8+
"start": "npx tsx src/index.ts",
99
"start:scheduler": "npx tsx src/Scheduler/index.ts",
1010
"test": "jest --detectOpenHandles",
1111
"build": "tsc",

src/index.ts

+3-43
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,4 @@
1-
import { v4 as uuid } from 'uuid';
2-
import ScrapersFactory from './ScrapersFactory';
3-
import ScrapableFactory from './ScrapableFactory';
4-
import PathBuilderFactory from './PathBuilderFactory';
5-
import { ListAmCategory, ListAmGeolocation, PathBuilderVariant, ScrapeValidatorVariant } from "./configs/types";
6-
import { ScrapeableVariant, ScraperType, ScrapeType } from "./configs/types";
7-
import { ListAmBaseURL } from './configs/constants';
8-
import { sleep } from "./utils/sleep";
9-
import ScrapeValidatorFactory from './ScrapeValidatorFactory';
10-
import getRandomInterval from './utils/getRandomInterval';
1+
import Main from "./main";
112

12-
class Main {
13-
run = async () => {
14-
const scraperFactory = ScrapersFactory;
15-
const scrapableFactory = ScrapableFactory;
16-
const pathBuilderFactory = PathBuilderFactory;
17-
const scrapeValidatorFactory = ScrapeValidatorFactory;
18-
19-
const scraper = scraperFactory.createScraper(ScraperType.PUPPETTER);
20-
const validator = scrapeValidatorFactory.createScrapeValidator(ScrapeValidatorVariant.LISTAM);
21-
const scrapable = scrapableFactory.createScrapable(ScrapeableVariant.LISTAM, scraper, validator);
22-
const pathBuilder = pathBuilderFactory.createPathBuilder(PathBuilderVariant.LISTAM);
23-
24-
pathBuilder.init('', ListAmCategory.ROOM_FOR_A_RENT);
25-
26-
const scrapeId = uuid();
27-
28-
for (let i = 1; true; i++) {
29-
pathBuilder.reset();
30-
pathBuilder.addPageNumber(i);
31-
pathBuilder.addGeolocation(ListAmGeolocation.YEREVAN);
32-
33-
const finalPath = pathBuilder.build();
34-
console.log(`${ListAmBaseURL}${finalPath}`);
35-
36-
await scrapable.scrape(scrapeId, finalPath, ScrapeType.LIST);
37-
38-
const sleepInterval = getRandomInterval(4000, 10000);
39-
await sleep(sleepInterval);
40-
}
41-
}
42-
};
43-
44-
export default Main;
3+
const main = new Main();
4+
main.run();

src/main.ts

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { v4 as uuid } from 'uuid';
2+
import ScrapersFactory from './ScrapersFactory';
3+
import ScrapableFactory from './ScrapableFactory';
4+
import PathBuilderFactory from './PathBuilderFactory';
5+
import { ListAmCategory, ListAmGeolocation, PathBuilderVariant, ScrapeValidatorVariant } from "./configs/types";
6+
import { ScrapeableVariant, ScraperType, ScrapeType } from "./configs/types";
7+
import { ListAmBaseURL } from './configs/constants';
8+
import { sleep } from "./utils/sleep";
9+
import ScrapeValidatorFactory from './ScrapeValidatorFactory';
10+
import getRandomInterval from './utils/getRandomInterval';
11+
12+
class Main {
13+
run = async () => {
14+
const scraperFactory = ScrapersFactory;
15+
const scrapableFactory = ScrapableFactory;
16+
const pathBuilderFactory = PathBuilderFactory;
17+
const scrapeValidatorFactory = ScrapeValidatorFactory;
18+
19+
const scraper = scraperFactory.createScraper(ScraperType.PUPPETTER);
20+
const validator = scrapeValidatorFactory.createScrapeValidator(ScrapeValidatorVariant.LISTAM);
21+
const scrapable = scrapableFactory.createScrapable(ScrapeableVariant.LISTAM, scraper, validator);
22+
const pathBuilder = pathBuilderFactory.createPathBuilder(PathBuilderVariant.LISTAM);
23+
24+
pathBuilder.init('', ListAmCategory.ROOM_FOR_A_RENT);
25+
26+
const scrapeId = uuid();
27+
28+
for (let i = 1; true; i++) {
29+
pathBuilder.reset();
30+
pathBuilder.addPageNumber(i);
31+
pathBuilder.addGeolocation(ListAmGeolocation.YEREVAN);
32+
33+
const finalPath = pathBuilder.build();
34+
console.log(`${ListAmBaseURL}${finalPath}`);
35+
36+
await scrapable.scrape(scrapeId, finalPath, ScrapeType.LIST);
37+
38+
const sleepInterval = getRandomInterval(4000, 10000);
39+
await sleep(sleepInterval);
40+
}
41+
}
42+
};
43+
44+
export default Main;

0 commit comments

Comments
 (0)