Modul:Sandkasse/Cocu/Nom
Moduldokumentasjon
[opprett]
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