local p = -- p stands for package
function p.dateformat(frame) local date, format = frame.args.date or "", frame.args.format -- Arguments local mnthlst = function dateextract(date) -- find date pattern, use os.time to retrieve month, day, year = 1, 1, 1 haha = true if string.match(date, "on the (%d+)%a?%a? of (%a+) in the year of our Lord (%d+)") then day, month, year = string.match(date, "on the (%d+)%a?%a? of (%a+) in the year of our Lord (%d+)") elseif string.match(date, "(%a+) (%d+)%a?%a?, (%d+)") then month, day, year = string.match(date, "(%a+) (%d+)%a?%a?, (%d+)") elseif string.match(date, "(%d+)%a?%a? (%a+) (%d+)") then day, month, year = string.match(date, "(%d+)%a?%a? (%a+) (%d+)") elseif string.match(date, "(%d+)%a?%a? (%a+) (%d+) BC") or string.match(date, "(%d+)%a?%a? (%a+) (%d+) BCE") or string.match(date, "(%d+)%a?%a? (%a+) (%d+) AD") or string.match(date, "(%d+)%a?%a? (%a+) (%d+) CE") then day, month, year = string.match(date, "(%d+)%a?%a? (%a+) (%d+)") elseif string.match(date, "(%d+)%a?%a? (%a+) (%d+)") then day, month, year = string.match(date, "(%d+)%a?%a? (%a+) (%d+)") elseif string.match(date, "(%d+)-(%d+)-(%d+)") then year, month, day = string.match(date, "(%d+)-(%d+)-(%d+)") elseif string.match(date, "(%d+)/(%d+)/(%d+)") then day, month, year = string.match(date, "(%d+)/(%d+)/(%d+)") elseif string.match(date, "(%a+) (%d+)") then month, year = string.match(date, "(%a+) (%d+)") elseif string.match(date, "(%d+)%a?%a? (%d+)") then day, year = string.match(date, "(%d+)%a?%a? (%d+)") elseif string.match(date, "(%d+) BC") or string.match(date, "(%d+) BCE") or string.match(date, "(%d+) AD") or string.match(date, "(%d+) CE") then year = string.match(date, "(%d+)") elseif string.match(date, "(%d+)%a?%a? (%a+)") then year, month = string.match(date, "(%d+)%a?%a? (%a+)") haha = false elseif string.match(date, "(%d+)") then year = string.match(date, "(%d+)") else for mo in mnthlst do if string.match(date, "(".. mo ..")") then month = string.match(date, "(".. mo ..")") end end year = string.match(date, "(%4d)") day = string.match(date, "(%2d)") or string.match(date, "(%2d)th") end if type(month)
string.upper(month) or string.upper(string.sub(v, 1, 3))
false then return "Invalid entry" end yeet = b --date information if format then -- if there is a format, find format date using os.date as specified if format
"dmy" then text = os.date("%d %B %Y", yeet) elseif format
"year" then text = os.date("%Y", yeet) elseif format
return p