Module:Sandbox/Dat Hack3r: Difference between revisions

From Our World of Text Wiki
Jump to navigation Jump to search
(Test)
(Adjusted error format.)
Line 32: Line 32:
end
end
end
end
error("No Releases found. Something has gone very, very wrong.")
error("No Releases found. Something has gone very, very wrong.", 0)
end
end
end
end

Revision as of 12:05, 2 December 2024

Documentation for this module may be created at Module:Sandbox/Dat Hack3r/doc

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.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