Jump to content

Module:Arbitration case implementation notes/Proposal/Automatic

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by SilverLocust (talk | contribs) at 15:47, 31 August 2024 (Create module for Template:ACImplNotes/Proposal/Automatic). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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

local p = {}

function p.main( frame )
	local args = getArgs(frame)
	local section = args["section"] or ""
	local pattern = args["pattern"] or ""
	local ret = args["ret"] or ""
	local text = mw.title.getCurrentTitle():getContent()
	local escape = mw.ustring.gsub( section, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" )
	local sectionText = mw.ustring.gsub(text, ".*%=%=%= *"..escape, "")
	sectionText = mw.ustring.gsub(sectionText, ":Comments.*", "")
	
	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 ret == "support" then
		return support
	elseif ret == "oppose" then
		return oppose
	elseif ret == "abstain" then
		return abstain
	else
		return ""
	end
end

return p