mirror of
https://github.com/danbulant/covid
synced 2026-07-08 12:42:34 +00:00
Create updater
This commit is contained in:
parent
489c9a8c4b
commit
49c2a3dca8
1 changed files with 50 additions and 4 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
const got = require("got");
|
const got = require("got");
|
||||||
const cheerio = require("cheerio");
|
const cheerio = require("cheerio");
|
||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
function execShellCommand(cmd) {
|
function execShellCommand(cmd) {
|
||||||
const exec = require('child_process').exec;
|
const exec = require('child_process').exec;
|
||||||
|
|
@ -17,20 +18,65 @@ module.exports = async () => {
|
||||||
console.log("Fetching...");
|
console.log("Fetching...");
|
||||||
var res = await execShellCommand("curl https://www.worldometers.info/coronavirus/");
|
var res = await execShellCommand("curl https://www.worldometers.info/coronavirus/");
|
||||||
|
|
||||||
|
var out = {};
|
||||||
|
|
||||||
console.log("Parsing");
|
console.log("Parsing");
|
||||||
const $ = cheerio.load(res);
|
const $ = cheerio.load(res);
|
||||||
var table = $("tbody");
|
var lines = $("tbody")[0].children;
|
||||||
var cases = $(".maincounter-number");
|
var cases = $(".maincounter-number");
|
||||||
|
|
||||||
var all = cases[0].childNodes[1].children[0].data;
|
var all = cases[0].childNodes[1].children[0].data;
|
||||||
var death = cases[1].childNodes[1].children[0].data;
|
var death = cases[1].childNodes[1].children[0].data;
|
||||||
var recovered = cases[2].childNodes[1].children[0].data;
|
var recovered = cases[2].childNodes[1].children[0].data;
|
||||||
|
|
||||||
console.log("[ALL] " + all);
|
var countries = {};
|
||||||
console.log("[DEATH] " + death);
|
|
||||||
console.log("[RECOVERED] " + recovered);
|
for(var i = 0; i < lines.length; i++){
|
||||||
|
if(i % 2 != 1)continue;
|
||||||
|
|
||||||
|
var name = lines[i].children[1].children[1];
|
||||||
|
|
||||||
|
if(!name)break;
|
||||||
|
|
||||||
|
if(name.type == "text"){
|
||||||
|
name = name.data;
|
||||||
|
} else {
|
||||||
|
//link
|
||||||
|
name = name.children[0].data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var o = {};
|
||||||
|
var lang = [
|
||||||
|
"Country", null, "cases", null, "deaths", "recovered", "active", "serious", "casePerMil"
|
||||||
|
];
|
||||||
|
var pt = 0;
|
||||||
|
|
||||||
|
for(var u = 0; u < lines[i].children.length; u++){
|
||||||
|
if(lines[i].children[u].type != "tag")continue;
|
||||||
|
if(lang[pt] == null){
|
||||||
|
pt++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
o[lang[pt]] = lines[i].children[u].children[0].data.trim();
|
||||||
|
pt++;
|
||||||
|
}
|
||||||
|
|
||||||
|
o["Country"] = name;
|
||||||
|
countries[name] = o;
|
||||||
|
}
|
||||||
|
|
||||||
console.log("Done");
|
console.log("Done");
|
||||||
|
|
||||||
|
out.global = {
|
||||||
|
all,
|
||||||
|
death,
|
||||||
|
recovered
|
||||||
|
}
|
||||||
|
out.contries = countries;
|
||||||
|
|
||||||
|
fs.writeFileSync(__dirname + "/cases.json", JSON.stringify(out));
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue