-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
39 lines (30 loc) · 856 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const
TransferwiseSource = require("./sources/transferwise-source");
class ExchangeRateScraper {
static SCRAPING_INTERVAL_IN_MILLIS = 60000;
/** @type {QuotationSource[]} */
sources;
constructor () {
this.sources = [
new TransferwiseSource(),
];
}
/**
* @return {void}
*/
async start() {
this.scrape();
}
async scrape() {
try {
const promises = this.sources.map(source => source.quoteAndPersist());
await Promise.all(promises);
} catch (e) {
console.error(e);
console.error("Something went wrong while running scrapers (see above)");
}
setTimeout(this.scrape.bind(this), ExchangeRateScraper.SCRAPING_INTERVAL_IN_MILLIS);
}
}
const ers = new ExchangeRateScraper();
ers.start();