theelector/data/generateCallManifest.js
2020-11-05 16:22:14 -05:00

58 lines
1.5 KiB
JavaScript

import fs from "fs";
import {votes} from "./stateData.js";
export async function generateCallManifest(
data = {
"NA": {
"winner": "NODATA",
"resultNow": "0",
"resultBlock": "0"
}
}
,
location = "manifest.txt") {
let manifest = fs.createWriteStream(location,)
let now = new Date(Date.now())
manifest.write(
"TheElector: automated election call reporting system\n" +
"-----------\n" +
"MANIFEST DATA\n" +
"Generated: " + (now.getMonth() + 1) + "/" + (now.getDay() + 1) + " " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + " Hours local\n" +
"-----------\n"
)
// Alphabetical list
manifest.write("BY STATE ALPHABETICALLY: \n")
for (const state in data) {
let time = new Date(data[state].resultNow * 1000)
manifest.write("State: " + state + "\n");
manifest.write("Call: " + data[state].winner + "\n");
manifest.write("Time called: " + (time.getMonth() + 1) + "/" + (time.getDay() + 1) + " " +
time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds() + "\n");
manifest.write("-----------" + "\n");
}
// Counts up votes per side
manifest.write("VOTES PER SIDE: \n")
let trump = 0;
let biden = 0;
for (const state in data) {
if (data[state].winner === "Trump")
trump = trump + votes[state]
if (data[state].winner === "Biden")
biden = biden + votes[state]
}
manifest.write("BIDEN:" + biden + "\n")
manifest.write("TRUMP:" + trump + "\n")
manifest.write("-----------" + "\n")
//end of file
manifest.write("Election data provided by the Associated Press")
manifest.close()
}