Skip to content

Instantly share code, notes, and snippets.

@djsnipa1
Last active December 8, 2020 23:35
Show Gist options
  • Save djsnipa1/dd6350a90a4031a894538534af40d8a2 to your computer and use it in GitHub Desktop.
Save djsnipa1/dd6350a90a4031a894538534af40d8a2 to your computer and use it in GitHub Desktop.
Parse JSON Counties
<div id="output"></div>
<div id="output2"></div>
var data = [{
"name": "Afghanistan",
"code": "AF"
}, {
"name": "Åland Islands",
"code": "AX"
}, {
"name": "Albania",
"code": "AL"
}, {
"name": "Algeria",
"code": "DZ"
}];
/*
function getCountryByCode(code) {
return data.filter(
function(data){return data.code == code}
);
}
var found = getCountryByCode('DZ');
document.getElementById('output').innerHTML=found[0].name;
*/
// change "COUNTRY" to a value from https://coronavirus-19-api.herokuapp.com/countries/
const COUNTY = "MARION"
const API__URL = "https://disease.sh/v3/covid-19/nyt/counties/"+COUNTY+"?lastdays=1"
console.log("about to fetch covid shit");
fetch(API__URL).then(response => {
console.log(response);
return.response
})
console.log(API__URL);
/*
const API__REQ = new Request(API__URL)
const API__RES = await API__REQ.loadJSON()
const TEXT__TITLE = { default: `🦠 COVID Statistics for ${COUNTY}`, smallWidget: "🦠 COVID Stats" }
const TEXT__TOTAL_CASES = "Total Cases"
const TEXT__CASES_TODAY = "Cases Today"
const TEXT__TOTAL_DEATHS = "Total Deaths"
const TEXT__RECOVERED = "Recovered"
const TEXT__CRITICAL = "Critical"
const STAT__TOTAL_CASES = `${API__RES.cases}`
const STAT__CASES_TODAY = `${API__RES.todayCases}`
const STAT__TOTAL_DEATHS = `${API__RES.deaths}`
const STAT__RECOVERED = `${API__RES.recovered}`
const STAT__CRITICAL = `${API__RES.critical}`
const SIRI_TEXT = `There are ${STAT__TOTAL_CASES} cases in ${COUNTY}, and ${STAT__CASES_TODAY} new cases registered today.`
const FONT__TITLE_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMTBold', SIZE: 16, OPACITY: 1 }
const FONT__STAT_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMT', SIZE: 20, OPACITY: 0.95 }
const FONT__NAME_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMTBold', SIZE: 12, OPACITY: 0.5 }
if (true || config.runsInWidget) {
let widget = createWidget()
widget.presentLarge()
Script.setWidget(widget)
Script.complete()
} else {
let table = createStatTable()
if (config.runsWithSiri) {
Speech.speak(SIRI_TEXT)
}
// table.present(true)
}
function createStatTable() {
let table = new UITable()
table.showSeparators = true
table.addRow(createStatHeaderRow(TEXT__TITLE.default))
table.addRow(createStatRow(TEXT__TOTAL_CASES, STAT__TOTAL_CASES))
table.addRow(createStatRow(TEXT__CASES_TODAY, STAT__CASES_TODAY))
table.addRow(createStatRow(TEXT__TOTAL_DEATHS, STAT__TOTAL_DEATHS))
table.addRow(createStatRow(TEXT__RECOVERED, STAT__RECOVERED))
table.addRow(createStatRow(TEXT__CRITICAL, STAT__CRITICAL))
return table
}
function createStatHeaderRow(name) {
let headerRow = new UITableRow()
headerRow.isHeader = true
headerRow.addText(name)
return headerRow
}
function createStatRow(name, value) {
let row = new UITableRow()
row.addText(name)
row.addText(value.toString()).rightAligned()
return row
}
function setWidgetTextStyle(text, type) {
const FONT = type === "TITLE" ? FONT__TITLE_TEXT : type === "STAT" ? FONT__STAT_TEXT : FONT__NAME_TEXT
text.fontName = FONT.FAMILY
text.textColor = FONT.COLOR
text.textOpacity = FONT.OPACITY
text.textSize = FONT.SIZE
}
function createWidget() {
const widget = new ListWidget()
widget.useDefaultPadding()
widget.backgroundColor = new Color('#181818')
// Widget Title
const widgetTitle = widget.addText(config.widgetFamily === "small" ? TEXT__TITLE.smallWidget : TEXT__TITLE.default)
setWidgetTextStyle(widgetTitle, "TITLE")
widget.addSpacer(config.widgetFamily !== "large" ? 20 : 40)
// Cases Today
const casesTodayStat = widget.addText(STAT__CASES_TODAY)
setWidgetTextStyle(casesTodayStat, 'STAT')
widget.addSpacer(1.5)
const casesTodayName = widget.addText(TEXT__CASES_TODAY)
setWidgetTextStyle(casesTodayName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
if (config.widgetFamily === "large") {
// Total Cases
const totalCasesStat = widget.addText(STAT__TOTAL_CASES)
setWidgetTextStyle(totalCasesStat, 'STAT')
widget.addSpacer(1.5)
const totalCasesName = widget.addText(TEXT__TOTAL_CASES)
setWidgetTextStyle(totalCasesName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
// Critical
const criticalStat = widget.addText(STAT__CRITICAL)
setWidgetTextStyle(criticalStat, 'STAT')
widget.addSpacer(1.5)
const criticalName = widget.addText(TEXT__CRITICAL)
setWidgetTextStyle(criticalName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
}
if (config.widgetFamily === "large") {
// Recovered
const recoveredStat = widget.addText(STAT__RECOVERED)
setWidgetTextStyle(recoveredStat, 'STAT')
widget.addSpacer(1.5)
const recoveredName = widget.addText(TEXT__RECOVERED)
setWidgetTextStyle(recoveredName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
}
// Total Deaths
const totalDeathsStat = widget.addText(STAT__TOTAL_DEATHS)
setWidgetTextStyle(totalDeathsStat, 'STAT')
widget.addSpacer(1.5)
const totalDeathsName = widget.addText(TEXT__TOTAL_DEATHS)
setWidgetTextStyle(totalDeathsName, 'NAME')
return widget
}// change "COUNTRY" to a value from https://coronavirus-19-api.herokuapp.com/countries/
const COUNTY = "MARION"
const API__URL = `https://disease.sh/v3/covid-19/nyt/counties/${COUNTY}?lastdays=1`
const API__REQ = new Request(API__URL)
const API__RES = await API__REQ.loadJSON()
const TEXT__TITLE = { default: `🦠 COVID Statistics for ${COUNTY}`, smallWidget: "🦠 COVID Stats" }
const TEXT__TOTAL_CASES = "Total Cases"
const TEXT__CASES_TODAY = "Cases Today"
const TEXT__TOTAL_DEATHS = "Total Deaths"
const TEXT__RECOVERED = "Recovered"
const TEXT__CRITICAL = "Critical"
const STAT__TOTAL_CASES = `${API__RES.cases}`
const STAT__CASES_TODAY = `${API__RES.todayCases}`
const STAT__TOTAL_DEATHS = `${API__RES.deaths}`
const STAT__RECOVERED = `${API__RES.recovered}`
const STAT__CRITICAL = `${API__RES.critical}`
const SIRI_TEXT = `There are ${STAT__TOTAL_CASES} cases in ${COUNTY}, and ${STAT__CASES_TODAY} new cases registered today.`
const FONT__TITLE_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMTBold', SIZE: 16, OPACITY: 1 }
const FONT__STAT_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMT', SIZE: 20, OPACITY: 0.95 }
const FONT__NAME_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMTBold', SIZE: 12, OPACITY: 0.5 }
if (true || config.runsInWidget) {
let widget = createWidget()
widget.presentLarge()
Script.setWidget(widget)
Script.complete()
} else {
let table = createStatTable()
if (config.runsWithSiri) {
Speech.speak(SIRI_TEXT)
}
// table.present(true)
}
function createStatTable() {
let table = new UITable()
table.showSeparators = true
table.addRow(createStatHeaderRow(TEXT__TITLE.default))
table.addRow(createStatRow(TEXT__TOTAL_CASES, STAT__TOTAL_CASES))
table.addRow(createStatRow(TEXT__CASES_TODAY, STAT__CASES_TODAY))
table.addRow(createStatRow(TEXT__TOTAL_DEATHS, STAT__TOTAL_DEATHS))
table.addRow(createStatRow(TEXT__RECOVERED, STAT__RECOVERED))
table.addRow(createStatRow(TEXT__CRITICAL, STAT__CRITICAL))
return table
}
function createStatHeaderRow(name) {
let headerRow = new UITableRow()
headerRow.isHeader = true
headerRow.addText(name)
return headerRow
}
function createStatRow(name, value) {
let row = new UITableRow()
row.addText(name)
row.addText(value.toString()).rightAligned()
return row
}
function setWidgetTextStyle(text, type) {
const FONT = type === "TITLE" ? FONT__TITLE_TEXT : type === "STAT" ? FONT__STAT_TEXT : FONT__NAME_TEXT
text.fontName = FONT.FAMILY
text.textColor = FONT.COLOR
text.textOpacity = FONT.OPACITY
text.textSize = FONT.SIZE
}
function createWidget() {
const widget = new ListWidget()
widget.useDefaultPadding()
widget.backgroundColor = new Color('#181818')
// Widget Title
const widgetTitle = widget.addText(config.widgetFamily === "small" ? TEXT__TITLE.smallWidget : TEXT__TITLE.default)
setWidgetTextStyle(widgetTitle, "TITLE")
widget.addSpacer(config.widgetFamily !== "large" ? 20 : 40)
// Cases Today
const casesTodayStat = widget.addText(STAT__CASES_TODAY)
setWidgetTextStyle(casesTodayStat, 'STAT')
widget.addSpacer(1.5)
const casesTodayName = widget.addText(TEXT__CASES_TODAY)
setWidgetTextStyle(casesTodayName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
if (config.widgetFamily === "large") {
// Total Cases
const totalCasesStat = widget.addText(STAT__TOTAL_CASES)
setWidgetTextStyle(totalCasesStat, 'STAT')
widget.addSpacer(1.5)
const totalCasesName = widget.addText(TEXT__TOTAL_CASES)
setWidgetTextStyle(totalCasesName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
// Critical
const criticalStat = widget.addText(STAT__CRITICAL)
setWidgetTextStyle(criticalStat, 'STAT')
widget.addSpacer(1.5)
const criticalName = widget.addText(TEXT__CRITICAL)
setWidgetTextStyle(criticalName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
}
if (config.widgetFamily === "large") {
// Recovered
const recoveredStat = widget.addText(STAT__RECOVERED)
setWidgetTextStyle(recoveredStat, 'STAT')
widget.addSpacer(1.5)
const recoveredName = widget.addText(TEXT__RECOVERED)
setWidgetTextStyle(recoveredName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
}
// Total Deaths
const totalDeathsStat = widget.addText(STAT__TOTAL_DEATHS)
setWidgetTextStyle(totalDeathsStat, 'STAT')
widget.addSpacer(1.5)
const totalDeathsName = widget.addText(TEXT__TOTAL_DEATHS)
setWidgetTextStyle(totalDeathsName, 'NAME')
return widget
}
// change "COUNTRY" to a value from https://coronavirus-19-api.herokuapp.com/countries/
const COUNTY = "MARION"
const API__URL = `https://disease.sh/v3/covid-19/nyt/counties/${COUNTY}?lastdays=1`
const API__REQ = new Request(API__URL)
const API__RES = await API__REQ.loadJSON()
const TEXT__TITLE = { default: `🦠 COVID Statistics for ${COUNTY}`, smallWidget: "🦠 COVID Stats" }
const TEXT__TOTAL_CASES = "Total Cases"
const TEXT__CASES_TODAY = "Cases Today"
const TEXT__TOTAL_DEATHS = "Total Deaths"
const TEXT__RECOVERED = "Recovered"
const TEXT__CRITICAL = "Critical"
const STAT__TOTAL_CASES = `${API__RES.cases}`
const STAT__CASES_TODAY = `${API__RES.todayCases}`
const STAT__TOTAL_DEATHS = `${API__RES.deaths}`
const STAT__RECOVERED = `${API__RES.recovered}`
const STAT__CRITICAL = `${API__RES.critical}`
const SIRI_TEXT = `There are ${STAT__TOTAL_CASES} cases in ${COUNTY}, and ${STAT__CASES_TODAY} new cases registered today.`
const FONT__TITLE_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMTBold', SIZE: 16, OPACITY: 1 }
const FONT__STAT_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMT', SIZE: 20, OPACITY: 0.95 }
const FONT__NAME_TEXT = { COLOR: Color.white(), FAMILY: 'ArialRoundedMTBold', SIZE: 12, OPACITY: 0.5 }
document.getElementById('output2').innerHTML=${API__RES};
/*
if (true || config.runsInWidget) {
let widget = createWidget()
widget.presentLarge()
Script.setWidget(widget)
Script.complete()
} else {
let table = createStatTable()
if (config.runsWithSiri) {
Speech.speak(SIRI_TEXT)
}
// table.present(true)
}
function createStatTable() {
let table = new UITable()
table.showSeparators = true
table.addRow(createStatHeaderRow(TEXT__TITLE.default))
table.addRow(createStatRow(TEXT__TOTAL_CASES, STAT__TOTAL_CASES))
table.addRow(createStatRow(TEXT__CASES_TODAY, STAT__CASES_TODAY))
table.addRow(createStatRow(TEXT__TOTAL_DEATHS, STAT__TOTAL_DEATHS))
table.addRow(createStatRow(TEXT__RECOVERED, STAT__RECOVERED))
table.addRow(createStatRow(TEXT__CRITICAL, STAT__CRITICAL))
return table
}
function createStatHeaderRow(name) {
let headerRow = new UITableRow()
headerRow.isHeader = true
headerRow.addText(name)
return headerRow
}
function createStatRow(name, value) {
let row = new UITableRow()
row.addText(name)
row.addText(value.toString()).rightAligned()
return row
}
function setWidgetTextStyle(text, type) {
const FONT = type === "TITLE" ? FONT__TITLE_TEXT : type === "STAT" ? FONT__STAT_TEXT : FONT__NAME_TEXT
text.fontName = FONT.FAMILY
text.textColor = FONT.COLOR
text.textOpacity = FONT.OPACITY
text.textSize = FONT.SIZE
}
function createWidget() {
const widget = new ListWidget()
widget.useDefaultPadding()
widget.backgroundColor = new Color('#181818')
// Widget Title
const widgetTitle = widget.addText(config.widgetFamily === "small" ? TEXT__TITLE.smallWidget : TEXT__TITLE.default)
setWidgetTextStyle(widgetTitle, "TITLE")
widget.addSpacer(config.widgetFamily !== "large" ? 20 : 40)
// Cases Today
const casesTodayStat = widget.addText(STAT__CASES_TODAY)
setWidgetTextStyle(casesTodayStat, 'STAT')
widget.addSpacer(1.5)
const casesTodayName = widget.addText(TEXT__CASES_TODAY)
setWidgetTextStyle(casesTodayName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
if (config.widgetFamily === "large") {
// Total Cases
const totalCasesStat = widget.addText(STAT__TOTAL_CASES)
setWidgetTextStyle(totalCasesStat, 'STAT')
widget.addSpacer(1.5)
const totalCasesName = widget.addText(TEXT__TOTAL_CASES)
setWidgetTextStyle(totalCasesName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
// Critical
const criticalStat = widget.addText(STAT__CRITICAL)
setWidgetTextStyle(criticalStat, 'STAT')
widget.addSpacer(1.5)
const criticalName = widget.addText(TEXT__CRITICAL)
setWidgetTextStyle(criticalName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
}
if (config.widgetFamily === "large") {
// Recovered
const recoveredStat = widget.addText(STAT__RECOVERED)
setWidgetTextStyle(recoveredStat, 'STAT')
widget.addSpacer(1.5)
const recoveredName = widget.addText(TEXT__RECOVERED)
setWidgetTextStyle(recoveredName, 'NAME')
widget.addSpacer(config.widgetFamily !== "large" ? 12 : 16)
}
// Total Deaths
const totalDeathsStat = widget.addText(STAT__TOTAL_DEATHS)
setWidgetTextStyle(totalDeathsStat, 'STAT')
widget.addSpacer(1.5)
const totalDeathsName = widget.addText(TEXT__TOTAL_DEATHS)
setWidgetTextStyle(totalDeathsName, 'NAME')
return widget
}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment