Module:Sandbox/Nyoron/revisionuser
Documentation for this module may be created at Module:Sandbox/Nyoron/revisionuser/doc
p={}
local function err(message)
return mw.ustring.format("<span class='error'>Error: %s</span>", message)
end
local function isTrue(x)
if type(x)=='boolean' then
return x
end
if type(x)=='number' then
if x == 0 then
return false
else
return true
end
end
if type(x)=='string' then
x = mw.ustring.lower(x)
if x == 't' or x == 'true' or x == 'y'or x == 'yes' or x == 'on' then
return true
end
n = tonumber(x)
if n then
if n == 0 then
return false
else
return true
end
end
end
return false
end
p.REVISIONUSER = function(frame)
local pageName = frame.args[1] or nil
local ignore_errors = frame.args.ignore_errors or false
-- args[1] is blank
if pageName == nil or pageName == "" then
-- with no colon
return frame:preprocess("{{REVISIONUSER}}")
end
-- args[1] is not blank
pageTitle = mw.title.new(pageName)
if pageTitle.exists then
-- with colon
return frame:preprocess("{{REVISIONUSER:" .. pageTitle.prefixedText .. "}}")
end
-- you may want try relative path
if mw.ustring.sub(pageName,1,1) == '/' then
local fullpageName = frame:preprocess("{{FULLPAGENAME}}")
local pageTitle = mw.title.new(fullpageName .. pageName)
if pageTitle.exists then
return frame:preprocess("{{REVISIONUSER:" .. pageTitle.prefixedText .. "}}")
end
end
-- The pageTitle does not exist
if isTrue(ignore_errors) then
return ""
end
return err("The page [" .. pageTitle.prefixedText .. "] does not exist.")
end
return p