sqlite3 = require "lsqlite3"
db = sqlite3.open('covid_deaths.db')
Write([[
Covid Deaths
]])
local query = [[
SELECT day, last_update, sum_deaths
FROM covid_deaths
ORDER BY day DESC
LIMIT 2
]]
local rows = {}
for v in db:nrows(query) do
rows[#rows + 1] = v
end
function format_int(number)
-- taken from https://stackoverflow.com/questions/10989788/format-integer-in-lua#10992898. thanks!
local i, j, minus, int, fraction = tostring(number):find('([-]?)(%d+)([.]?%d*)')
-- reverse the int-string and append a six-per-em to all blocks of 3 digits
thinsp = " "
int = int:reverse():gsub("(%d%d%d)", "%1" .. thinsp:reverse())
-- reverse the int-string back remove an optional six-per-em and put the
-- optional minus and fractional part back
return minus .. int:reverse():gsub("^ ", "") .. fraction
end
local deaths_yesterday = rows[1]["sum_deaths"] - rows[2]["sum_deaths"]
local description = format_int(rows[1]["sum_deaths"]) .. ' people died from Covid-19. ' .. format_int(deaths_yesterday) .. ' died within the last day.'
Write('
' .. description .. ' Last update: ' .. rows[1]["last_update"] .. ' UTC
')
Write('')
for i=1,rows[1]["sum_deaths"] do
Write('🖤')
if i > 0 and i < rows[1]["sum_deaths"] and i % 100 == 0 then
Write('')
end
end
Write('')
Write([[
]])