Module:Arbitration motion implementation notes/Motion/Automatic/sandbox explained

local getArgs = require('Module:Arguments').getArgs

local p =

function p.main(frame) local args = getArgs(frame) local page = args["page"] or "" local section = args["section"] or args["anchor"] or args["name"] or "" local pattern = args["pattern"] or "%c:?#[^#:]" local ret = args["ret"] or "" local escape = mw.ustring.gsub(section, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1") for _, p in ipairs do if page

"" then local text = mw.title.new(p):getContent local _, sections = mw.ustring.gsub(text, ".*%=%= *"..escape, "") if sections ~= 0 then page = p end end end if page

"ARM" then page = "Wikipedia:Arbitration/Requests/Motions" elseif page

"ARC" then page = "Wikipedia:Arbitration/Requests/Case" elseif page

"ARCA" or page

"" then page = "Wikipedia:Arbitration/Requests/Clarification and Amendment" end

local text = mw.title.new(page):getContent local sectionText, matches = mw.ustring.gsub(text, ".*%=%= *"..escape, "") sectionText = mw.ustring.gsub(sectionText, ";Arbitrator discussion.*", "") local supportText = mw.ustring.gsub(sectionText, ".*;Support", "Support") supportText = mw.ustring.gsub(supportText, ";Oppose.*", "") local _, support = mw.ustring.gsub(supportText, pattern, "") local opposeText = mw.ustring.gsub(sectionText, ".*;Oppose", "Oppose") opposeText = mw.ustring.gsub(opposeText, ";Abstain.*", "") local _, oppose = mw.ustring.gsub(opposeText, pattern, "") local abstainText = mw.ustring.gsub(sectionText, ".*;Abstain", "Abstain") local _, abstain = mw.ustring.gsub(abstainText, pattern, "") if matches ~= 1 then support = '?' ..'?' ..'?' ..'' ..'?' ..'

Error: Found ' ..tostring(matches) ..' sections on ' ..tostring(page) ..' with heading
' ..tostring(section) ..'
' end if ret

"support" then return support elseif ret

"oppose" then return oppose elseif ret

"abstain" then return abstain elseif ret

"text" then return text elseif ret

"sectionText" then return sectionText elseif ret

"supportText" then return supportText elseif ret

"opposeText" then return opposeText elseif ret

"abstainText" then return abstainText elseif ret

"call" then local template = "Arbitration motion implementation notes/Motion" local params = params["anchor"] = args["anchor"] or args["name"] or "" params["name"] = args["name"] or "" params["support"] = support params["oppose"] = oppose params["abstain"] = abstain if args["notes"] then params["notes"] = args["notes"] end if args["pass"] then params["pass"] = args["pass"] end if args["active"] then params["active"] = args["active"] end return frame:expandTemplate else return "" endend

return p