Module:Weekly site information: Difference between revisions
Appearance
Dat Hack3r (talk | contribs) m Dat Hack3r moved page Module:Last Weekly Briefing Release number to Module:Weekly Briefing Release without leaving a redirect: This module name is more appropriate for planned functionality. |
Dat Hack3r (talk | contribs) Can now return the title of a Release given its release number; for use in other modules. |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p. | local mw_error = require('Module:Error').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) | |||
function p._release(offset, release_num) | |||
offset = offset or 0 | |||
if release_num then | |||
offset = release_num - math.floor(diff / 7) | |||
end | |||
release_num = release_num or (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("Weekly 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 "[[" .. p._release(offset) .. "|" .. link_text .. "]]" | |||
else | |||
for i=1,-math.floor(diff / 7),-1 do | |||
mw.log(p._release(i)) | |||
if mw.title.new(p._release(i), "").exists then | |||
return "[[" .. p._release(i) .. "|" .. link_text .. "]]" | |||
end | |||
end | |||
return mw_error{"No Releases found. Something has gone very, very wrong."} | |||
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 | end | ||
return p | return p |