function formatProvinceData(data) { scraperData = data; scraperData.forEach(province => { let D = province.data; console.log() province[1] = { total: D.totalCases ? D.totalCases : D.confirmedCases ? D.confirmedCases : 0, confirmed: D.totalCases ? D.totalCases : D.confirmedCases ? D.confirmedCases : 0, presumptive: '---' } province[2] = { active: D.activeCases ? D.activeCases : province[1].total && D.recoveries && D.deaths ? province[1].total-D.recoveries-D.deaths : province[1].total && D.recoveries ? province[1].total-D.recoveries : province[1].total ? province[1].total : 0, recovered: D.recoveries ? D.recoveries : 0, deaths: D.deaths ? D.deaths : 0 } province[3] = { administered: D.totalTests ? D.totalTests : D.negativeTests && D.pendingTests && (D.totalCases || D.confirmedCases) ? D.negativeTests + D.pendingTests + (D.totalCases ? D.totalCases : D.confirmedCases) : '---', negative: D.negativeTests ? D.negativeTests : '---', pending: D.pendingTests ? D.pendingTests : '---' } }) scraperData.forEach(province => { province[1].array = [province[1].total, province[1].confirmed, province[1].presumptive] province[2].array = [province[2].active, province[2].recovered, province[2].deaths] province[3].array = [province[3].administered, province[3].negative, province[3].pending] }) console.log('Mode: Ind') return scraperData; } function setProvinceTable(province, scraperData) { setTable(province, 1, scraperData) setTable(province, 2, scraperData) setTable(province, 3, scraperData) document.querySelector('.articleBody').querySelectorAll('td').forEach(cell => cell.style.color = '#2c2c2c') document.querySelector('.articleBody').querySelectorAll('td').forEach(cell => cell.classList.add('loaded')) console.log(`Loaded ${province} table`) } function updateTopTable(data) { let today = data.tracking[data.tracking.length - 1] let yesterday = data.tracking[data.tracking.length - 2] function autoFill(cell, autoValue) { let autoArray = ["auto", "autp", "atuo", "auot", "atou", ""] let current = cell.innerText; cell.innerText = autoArray.includes(current.trim().toLowerCase()) ? autoValue : current; } let tableOneCells = document.querySelector('.cases-table').querySelectorAll('td'); autoFill(tableOneCells[0], today.total.toLocaleString()) autoFill(tableOneCells[1], (today.total - yesterday.total).toLocaleString()) let tableTwoCells = document.querySelector('.status-table').querySelectorAll('td'); tableTwoCells[0].innerText = (today.active - BC_FACTOR).toLocaleString(); tableTwoCells[1].innerText = today.recovered.toLocaleString() tableTwoCells[2].innerText = today.deaths.toLocaleString() tableTwoCells.forEach(cell => cell.style.color = '#2c2c2c') tableTwoCells.forEach(cell => cell.classList.add('loaded')) tableOneCells.forEach(cell => cell.style.color = '#2c2c2c'); tableOneCells.forEach(cell => cell.classList.add('loaded')) } const provArray = [{short:'BC', long:'British Columbia'},{short:'AB', long:'Alberta'},{short:'SK', long:'Saskatchewan'},{short:'MB', long:'Manitoba'},{short:'ON', long:'Ontario'},{short:'QC', long:'Quebec'},{short:'NB', long:'New Brunswick'},{short:'NS', long:'Nova Scotia'},{short:'PE', long:'Prince Edward Island'},{short:'NL', long:'Newfoundland and Labrador'},{short:'YT', long:'Yukon'},{short:'NT', long:'Northwest Territories'},{short:'NU', long:'Nunavut'}] function setTable(province, tableNum, scraperData) { let short = provArray.find(prov => prov.long === province).short; let obj = scraperData.find(D => D.province === short) let dataArray = obj[tableNum].array //SUBTRACTING DUE TO B.C.'s BOOKKEEPING if (province === 'British Columbia' && tableNum === 2) { dataArray[0] -= BC_FACTOR; } let head = document.getElementById(getID(province)); let div = head.parentElement; let testTable = div.querySelector(`.tb${tableNum}`) let entries = testTable.querySelectorAll('td') let autoArray = ["auto", "aut", "autp", "atuo", "auot", "atou", ""] entries.forEach((entry, i) => { let current = entry.innerText; entry.innerText = autoArray.includes(current.trim().toLowerCase()) ? `${dataArray[i].toLocaleString()}` : current; }) } function getID (long) { let lower = long.toLowerCase(); let split = lower.split(' '); let hyphen = split.join('-'); return hyphen; }