Module:Weekly site information: Difference between revisions
Jump to navigation
Jump to search
Dat Hack3r (talk | contribs) (Test successful, deploying new version.) |
Dat Hack3r (talk | contribs) (Updated functionality and implementation.) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
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.time{year=end_date.year, month=end_date.month, day=end_date.day - 7} | |||
return "Weekly Briefing Release " .. release_num .. " " .. os.date("%b %d", start_date) .. " - " .. os.date("%b %d", os.time(end_date)) | |||
end | end | ||
function p. | function p._main(link_text, offset) | ||
return release( | if offset then | ||
return "[[" .. release(offset) .. "|" .. link_text .. "]]" | |||
else | |||
for i=1,-math.floor(diff / 7),-1 do | |||
if mw.title.new(release(i), "").exists then | |||
return "[[" .. release(i) .. "|" .. link_text .. "]]" | |||
end | |||
end | |||
end | |||
end | end | ||
function p. | function p.main(frame) | ||
return | mw.log(frame:getParent().args[1]) | ||
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 |
Revision as of 15:54, 28 November 2024
This Lua module is a high priority for maintenance as it is original to the OWOT Wiki and used in articles. As such, this module may contain bugs and it should be a top priority of module maintainers to quickly fix any issues that arise with it. Discuss breaking changes on the talk page before implementing them. |
This module implements {{Weekly site information}}
.
local p = {}
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.time{year=end_date.year, month=end_date.month, day=end_date.day - 7}
return "Weekly Briefing Release " .. release_num .. " " .. os.date("%b %d", start_date) .. " - " .. os.date("%b %d", os.time(end_date))
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
if mw.title.new(release(i), "").exists then
return "[[" .. release(i) .. "|" .. link_text .. "]]"
end
end
end
end
function p.main(frame)
mw.log(frame:getParent().args[1])
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