-
Notifications
You must be signed in to change notification settings - Fork 0
/
save.js
82 lines (66 loc) · 2.95 KB
/
save.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const LottoScraper = require('./lib/LottoScraper');
const moment = require('moment');
const fs = require('fs');
var scraper = new LottoScraper({headless: true});
var global = JSON.parse(fs.readFileSync('./global.json', 'utf8'));
const lotto = async (lottoDraw, customDate = null) => {
let data = defaultValues(lottoDraw, customDate);
let url = await scraper.getLink(data.lotto, data.drawDate);
let results = {};
if (lottoDraw <= 4) results = await searchMinor(url); // Minor Draw
else results = await searchMajor(url); // Major Draw
console.log(results);
if (Object.keys(results).length != 0) {
await saveToFile(getLottoName(lottoDraw), results, data.lottoDate);
}
}
const saveToFile = async (jsonFile, results, lottoDate) => {
let jsonLotto = JSON.parse(fs.readFileSync(`./data/${jsonFile}.json`, 'utf8'));
jsonLotto[lottoDate] = results;
fs.writeFile(`./data/${jsonFile}.json`, JSON.stringify(jsonLotto, null, 2), function(err) {
console.log(moment(lottoDate).format('MMMM-D-YYYY ') + jsonFile.toUpperCase() + ' results stored.');
global[jsonFile].lastDateSearched = lottoDate;
fs.writeFile('./global.json', JSON.stringify(global, null, 2), function(err) {});
});
}
const searchMinor = async (url) => {
let result = await scraper.minorDraw(url);
await scraper.close();
return result;
}
const searchMajor = async (url) => {
let result = await scraper.majorDraw(url);
await scraper.close();
return result;
}
const defaultValues = function(draw, customDate) {
let lottoDraw, lottoDrawDate;
if (draw == global.draws.digit2) lottoDraw = 'digit2';
else if (draw == global.draws.digit3) lottoDraw = 'digit3';
else if (draw == global.draws.stl2d) lottoDraw = 'stl2d';
else if (draw == global.draws.stl3d) lottoDraw = 'stl3d';
else if (draw == global.draws.stlpares) lottoDraw = 'stlpares';
else if (draw == global.draws.digit4) lottoDraw = 'digit4';
else if (draw == global.draws.digit6) lottoDraw = 'digit6';
lottoDrawDate = moment(global[lottoDraw].lastDateSearched).format();
if (customDate != null) lottoDrawDate = customDate;
return {
lotto: lottoDraw,
lottoDate: lottoDrawDate,
drawDate: moment(lottoDrawDate).format('MMMM-D-YYYY').toLowerCase()
}
}
const getLottoName = function(lottoDraw) {
return Object.keys(global.draws)[lottoDraw];
}
void (async() => {
/*let endDate = '2019-06-23T00:00:00+08:00';
let lottoDate = moment(global[getLottoName(global.draws.stl2d)].lastDateSearched).format();
while (lottoDate != endDate) {
lottoDate = moment(lottoDate).add(1, 'days').format();
await lotto(global.draws.stl2d, lottoDate);
}*/
//lottoDate = moment(lottoDate).add(1, 'days').format();
let lottoDate = moment().subtract(1, 'days').format();
await lotto(global.draws.stl2d, lottoDate);
})()