Modul:Sandkasse/Cocu/Nom

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon


local p = {}

local lang = mw.getContentLanguage()

function p.hent_noe( frame )
    local pg = mw.title.new( frame.args['side'])
    local text = pg:getContent()
    if not (text) then return "error: feilet i å laste mw.title.new(" .. frame.args['side'] .. ")" end
    local section = mw.ustring.match( text, "(.*)")
 
    local startverdi = frame.args['startverdi']
    if startverdi == "" or startverdi == nil then
    	startverdi = 0
	else
		startverdi = frame.args['startverdi']
	end
    local k = startverdi
    for etellerannet in mw.ustring.gmatch( text, frame.args['tekst']) do
       k = k + 1
    end
    return k
end

function p.hent_valgresultat( frame )
	local nom_number = frame.args['nominering']
		if frame.args['nominering'] == "" or frame.args['nominering'] == nil then
			nom_number = ""
		else
			nom_number = " (" .. frame.args['nominering'] .. " nominasjon)"
		end
	local rights = frame.args['valgtype']
	 	if frame.args['valgtype'] == '' or frame.args['valgtype'] == nil then
	 		rights = "administrator"
		elseif mw.text.trim(lang:lc(frame.args['valgtype'])) == "sysop"  or mw.text.trim(lang:lc(frame.args['valgtype'])) == "admin" or mw.text.trim(lang:lc(frame.args['valgtype'])) == "administrator" then
			rights = "administrator"
		elseif mw.text.trim(lang:lc(frame.args['valgtype'])) == "crat" or mw.text.trim(lang:lc(frame.args['valgtype'])) == 'byråkrat' then
			rights = "byråkrat"
		elseif frame.args['valgtype'] then
			rights = mw.text.trim(lang:lc(frame.args['valgtype']))
		end
    local pg = mw.title.new( "Wikipedia:Administratorer/kandidater/" .. frame.args['bruker'] .. nom_number)
    local text = pg:getContent()
    if not (text) then return "error: feilet i å laste mw.title.new(Wikipedia:Administratorer/kandidater/" .. frame.args['bruker'] .. ")" end
    local section = mw.ustring.match( text, "===%c%cBruker%c" .. frame.args['bruker'] .. "%c" .. frame.args['bruker'] .. "%c%c===(.*)")

	-- finner antall forekomster av {{for}} på kandidatsiden
    local j = -1 -- begynner med minus 1 fordi det ligger en {{for}} i kildekoden som eksempel
    for positive in mw.ustring.gmatch( text, "\{\{[Ff]or\}\}") do
       j = j + 1
    end
	-- finner antall trukne stemmer for
	local t_for = 0
	for trukne_for in mw.ustring.gmatch( text, "<s># \{\{[Ff]or") do
		t_for = t_for + 1
	end
	for trukne_for in mw.ustring.gmatch( text, "<s>#\{\{[Ff]or") do
		t_for = t_for + 1
	end
	for trukne_for in mw.ustring.gmatch( text, "# <s>\{\{[Ff]or") do
		t_for = t_for + 1
	end
	for trukne_for in mw.ustring.gmatch( text, "#<s>\{\{[Ff]or") do
		t_for = t_for + 1
	end
	
    -- finner antall forekomster av {{imot}} og {{mot}} på kandidatsiden
    local n = -1 -- begynner med minus 1 fordi det ligger en {{imot}} i kildekoden som eksempel
    for negative in mw.ustring.gmatch( text, "\{\{[Ii]mot\}\}") do
    	n = n + 1
	end
	for negative in mw.ustring.gmatch( text, "\{\{[Mm]ot\}\}") do
		n = n + 1
	end
	
	-- finner antall trukne stemmer imot
	local t_imot = 0
	for trukne_imot in mw.ustring.gmatch( text, "<s># \{\{[Ii]mot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in  mw.ustring.gmatch( text, "<s>#\{\{[Ii]mot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in mw.ustring.gmatch( text, "# <s>\{\{[Ii]mot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in mw.ustring.gmatch( text, "#<s>\{\{[Ii]mot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in mw.ustring.gmatch( text, "<s># \{\{[Mm]ot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in  mw.ustring.gmatch( text, "<s>#\{\{[Mm]ot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in mw.ustring.gmatch( text, "# <s>\{\{[Mm]ot") do
		t_imot = t_imot + 1
	end
	for trukne_imot in mw.ustring.gmatch( text, "#<s>\{\{[Mm]ot") do
		t_imot = t_imot + 1
	end
	
	-- regner ut prosentfordelingen
	local positiv_prosent = ((j - t_for)/((j - t_for) + (n - t_imot)))*100
	local negativ_prosent = ((n - t_imot)/((j - t_for) + (n - t_imot)))*100
	local final_result;
	-- nøkkel for å finne ut om kravene for utnevnelse er oppfylt
	if (j - t_for) >= 25 then
		if positiv_prosent >= 75 then
			final_result = "Utfallet av avstemningen ble [[Image:Symbol keep vote.svg|20px]] Utnevnt til " .. rights
		elseif positiv_prosent < 75 then
			final_result = "Utfallet av avstemmingen ble [[Image:Symbol delete vote.svg|20px]] Ikke utnevnt til " .. rights
		end
	elseif (j - t_for) < 25 then
		final_result = "Utfallet av avstemmingen ble [[Image:Symbol delete vote.svg|20px]] Ikke utnevnt til " .. rights
	end
	end_for = j - t_for
	end_imot = n - t_imot
	
    return " <b>Resultat:</b> " .. end_for .. " for, og " .. end_imot .. " imot → " .. positiv_prosent .. 
    		" % for. " .. final_result
end
return p