@taskmagic/apps-scrapeless 0.0.1

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.
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scrapelessCommon = exports.SCRAPELESS_BASE_URL = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ exports.SCRAPELESS_BASE_URL = 'https://api.scrapeless.com';
7
+ function sendRequest(apiKey, method, path, body, queryParams) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ const request = Object.assign(Object.assign({ method, url: path.startsWith('http') ? path : `${exports.SCRAPELESS_BASE_URL}${path}`, headers: {
10
+ 'Content-Type': 'application/json',
11
+ 'x-api-token': apiKey,
12
+ } }, (body !== undefined ? { body } : {})), (queryParams !== undefined ? { queryParams } : {}));
13
+ const response = yield pieces_common_1.httpClient.sendRequest(request);
14
+ return { status: response.status, body: response.body };
15
+ });
16
+ }
17
+ function sleep(ms) {
18
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
+ return new Promise((resolve) => setTimeout(resolve, ms));
20
+ });
21
+ }
22
+ function createScraperTask(apiKey, actor, input) {
23
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
24
+ return sendRequest(apiKey, pieces_common_1.HttpMethod.POST, '/api/v1/scraper/request', {
25
+ actor,
26
+ input,
27
+ async: true,
28
+ });
29
+ });
30
+ }
31
+ function getScraperTaskResult(apiKey, taskId) {
32
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ return sendRequest(apiKey, pieces_common_1.HttpMethod.GET, `/api/v1/scraper/result/${taskId}`);
34
+ });
35
+ }
36
+ function runScraperTask(apiKey, actor, input) {
37
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
38
+ var _a, _b, _c;
39
+ const response = yield createScraperTask(apiKey, actor, input);
40
+ if (response.status === 200) {
41
+ return (_a = response.body) !== null && _a !== void 0 ? _a : null;
42
+ }
43
+ const taskId = (_b = response.body) === null || _b === void 0 ? void 0 : _b.taskId;
44
+ // eslint-disable-next-line no-constant-condition
45
+ while (true) {
46
+ yield sleep(1000);
47
+ const result = yield getScraperTaskResult(apiKey, taskId);
48
+ if (result.status === 200) {
49
+ return (_c = result.body) !== null && _c !== void 0 ? _c : null;
50
+ }
51
+ }
52
+ });
53
+ }
54
+ function universalScrape(apiKey, request) {
55
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
56
+ var _a;
57
+ const response = yield sendRequest(apiKey, pieces_common_1.HttpMethod.POST, '/api/v2/unlocker/request', request);
58
+ return (_a = response.body) !== null && _a !== void 0 ? _a : null;
59
+ });
60
+ }
61
+ function crawlScrapeUrl(apiKey, url, params) {
62
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
63
+ var _a, _b;
64
+ const start = yield sendRequest(apiKey, pieces_common_1.HttpMethod.POST, '/api/v1/crawler/scrape', Object.assign({ url }, params));
65
+ const id = (_a = start.body) === null || _a === void 0 ? void 0 : _a.id;
66
+ if (!id) {
67
+ throw new Error('Failed to start a scrape job');
68
+ }
69
+ // eslint-disable-next-line no-constant-condition
70
+ while (true) {
71
+ const status = yield sendRequest(apiKey, pieces_common_1.HttpMethod.GET, `/api/v1/crawler/scrape/${id}`);
72
+ if (((_b = status.body) === null || _b === void 0 ? void 0 : _b.status) !== 'scraping') {
73
+ return status.body;
74
+ }
75
+ yield sleep(2000);
76
+ }
77
+ });
78
+ }
79
+ function crawlCrawlUrl(apiKey, url, params) {
80
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
81
+ var _a, _b, _c, _d, _e, _f;
82
+ const start = yield sendRequest(apiKey, pieces_common_1.HttpMethod.POST, '/api/v1/crawler/crawl', Object.assign({ url }, params));
83
+ const id = (_a = start.body) === null || _a === void 0 ? void 0 : _a.id;
84
+ if (!id) {
85
+ throw new Error('Failed to start a crawl job');
86
+ }
87
+ let pollInterval = 2000;
88
+ // eslint-disable-next-line no-constant-condition
89
+ while (true) {
90
+ let status = yield sendRequest(apiKey, pieces_common_1.HttpMethod.GET, `/api/v1/crawler/crawl/${id}`);
91
+ const state = (_b = status.body) === null || _b === void 0 ? void 0 : _b.status;
92
+ if (state === 'completed') {
93
+ let data = (_d = (_c = status.body) === null || _c === void 0 ? void 0 : _c.data) !== null && _d !== void 0 ? _d : [];
94
+ while (typeof status.body === 'object' &&
95
+ status.body !== null &&
96
+ 'next' in status.body &&
97
+ status.body.next) {
98
+ if (!Array.isArray(data) || data.length === 0)
99
+ break;
100
+ status = yield sendRequest(apiKey, pieces_common_1.HttpMethod.GET, status.body.next);
101
+ data = data.concat((_f = (_e = status.body) === null || _e === void 0 ? void 0 : _e.data) !== null && _f !== void 0 ? _f : []);
102
+ }
103
+ return Object.assign(Object.assign({}, status.body), { status: 'completed', data });
104
+ }
105
+ else if (['active', 'paused', 'pending', 'queued', 'waiting', 'scraping'].includes(state)) {
106
+ yield sleep(pollInterval);
107
+ pollInterval = Math.max(pollInterval, 2000);
108
+ }
109
+ else {
110
+ throw new Error(`Crawl job failed or was stopped. Status: ${state}`);
111
+ }
112
+ }
113
+ });
114
+ }
115
+ exports.scrapelessCommon = {
116
+ runScraperTask,
117
+ universalScrape,
118
+ crawlScrapeUrl,
119
+ crawlCrawlUrl,
120
+ };
121
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/scrapeless/src/lib/common/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const googleTrendsDataTypeOptions: {
2
+ label: string;
3
+ value: string;
4
+ }[];
5
+ export declare const proxyCountryOptions: {
6
+ label: string;
7
+ value: string;
8
+ }[];