mirror of
https://github.com/danbulant/covid
synced 2026-05-19 03:48: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 cheerio = require("cheerio");
|
||||
const fs = require("fs");
|
||||
|
||||
function execShellCommand(cmd) {
|
||||
const exec = require('child_process').exec;
|
||||
|
|
@ -17,20 +18,65 @@ module.exports = async () => {
|
|||
console.log("Fetching...");
|
||||
var res = await execShellCommand("curl https://www.worldometers.info/coronavirus/");
|
||||
|
||||
var out = {};
|
||||
|
||||
console.log("Parsing");
|
||||
const $ = cheerio.load(res);
|
||||
var table = $("tbody");
|
||||
var lines = $("tbody")[0].children;
|
||||
var cases = $(".maincounter-number");
|
||||
|
||||
var all = cases[0].childNodes[1].children[0].data;
|
||||
var death = cases[1].childNodes[1].children[0].data;
|
||||
var recovered = cases[2].childNodes[1].children[0].data;
|
||||
|
||||
console.log("[ALL] " + all);
|
||||
console.log("[DEATH] " + death);
|
||||
console.log("[RECOVERED] " + recovered);
|
||||
var countries = {};
|
||||
|
||||
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");
|
||||
|
||||
out.global = {
|
||||
all,
|
||||
death,
|
||||
recovered
|
||||
}
|
||||
out.contries = countries;
|
||||
|
||||
fs.writeFileSync(__dirname + "/cases.json", JSON.stringify(out));
|
||||
return out;
|
||||
}
|
||||
|
||||
(async () => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue