Module:Weekly site information

From Our World of Text Wiki
Revision as of 15:54, 28 November 2024 by Dat Hack3r (talk | contribs) (Updated functionality and implementation.)

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