Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- COVID-19 Tracker for CC
- -- Country Cases
- -- API: corona.lmao.ninja
- -- Program by Lemmmy - GPLv3
- local util = require("covid19.util")
- local gfx = require("covid19.gfx")
- local Grid = require("covid19.grid")
- local HEADER = "COVID-19 Country Cases"
- local FOOTER = "By Lemmmy - Updates every 15 mins - API: corona.lmao.ninja"
- local DATA_URL = "https://corona.lmao.ninja/countries"
- local CACHE_FILE = ".country-cache.json"
- local mon, w, h = util.handleMonitorArg(...)
- mon.setPaletteColour(colours.cyan, 0xBFFFB8)
- local function main()
- mon.clear()
- -- prep screen
- gfx.drawHeader(mon, HEADER)
- gfx.drawFooter(mon, FOOTER)
- local centerY = gfx.drawLoading(mon)
- -- fetch data
- local data = util.cachedJSONRequest(DATA_URL, CACHE_FILE)
- util.scoreData(data)
- gfx.clearLoading(mon, centerY)
- -- grid
- local grid = Grid.new(mon, 3, 5, h - 6)
- grid:addColumn(18, "Country", false)
- grid:addColumn(10, " Cases ", true, colours.orange)
- grid:addColumn(9, "(today)", true)
- grid:addColumn(12, "Recoveries", true, colours.green)
- grid:addColumn(10, " Deaths ", true, colours.red)
- grid:addColumn(9, "(today)", true)
- for i, datum in pairs(data) do
- if i > grid.h - 3 then break end
- grid:addRow({
- { text = datum.country },
- { text = datum.cases },
- { text = datum.todayCases, colour = datum.todayCasesColour },
- { text = datum.recovered, colour = datum.recoveredColour },
- { text = datum.deaths },
- { text = datum.todayDeaths, colour = datum.todayDeathsColour }
- })
- end
- grid:draw()
- end
- util.mainLoop(main)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement