Module:Sandbox/Dat Hack3r
Documentation for this module may be created at Module:Sandbox/Dat Hack3r/doc
local p = {}
local error = require('Module:Error')
local first_date = os.time{year=2024, month=9, day=8}
local curr_date = os.time()
local diff = os.difftime(curr_date, first_date) / (24 * 60 * 60)
local function release(offset)
offset = offset or 0
local release_num = math.floor(diff / 7) + offset
local end_date = os.date("*t", curr_date - (diff % 7) * 24 * 60 * 60)
end_date.day = end_date.day - (end_date.wday - 1) + offset * 7
local start_date = os.date("*t", os.time{year=end_date.year, month=end_date.month, day=end_date.day - 7})
return string.format("Weeskly Briefing Release %d %s - %s",
release_num,
os.date("%b %d", os.time(start_date)):gsub(" 0", " "),
os.date("%b %d", os.time(end_date)):gsub(" 0", " ")
)
end
function p._main(link_text, offset)
if offset then
return "[[" .. release(offset) .. "|" .. link_text .. "]]"
else
for i=1,-math.floor(diff / 7),-1 do
mw.log(release(i))
if mw.title.new(release(i), "").exists then
return "[[" .. release(i) .. "|" .. link_text .. "]]"
end
end
error("No Releases found. Something has gone very, very wrong.", 0)
end
end
function p.main(frame)
local link_text = frame:getParent().args[1] or "Weekly Site Information"
local offset = tonumber(frame:getParent().args['offset'])
return p._main(link_text, offset)
end
return p