モジュール:CheckMultipleVoting
表示
モジュールの解説[作成]
local p = {}
--[[投票所の二重投票を判定する
{{#invoke:CheckMultipleVoting|CheckMultipleVoting|page={{Wikipedia:メインページ新着投票所/新しい項目候補}}|section= 「新しい項目」候補と投票所 |level=3|line=1}}
]]
function p.CheckMultipleVoting(frame)
local page = frame.args.page
local section = frame.args.section
local level = frame.args.level - 0
local line = frame.args.line - 0
local text = ""
local tbl0 = mw.text.split(page, section)
local key = "\n"
for i = 1, level do
key = key .. "="
end
local tbl1 = mw.text.split(tbl0[2], key)
for i = 1, #tbl1 do
if i > line then
local tbl2 = mw.text.split(tbl1[i] .. '\n', '\n')
for j = 2, #tbl2 - 2 do
for k = j + 1, #tbl2 - 1 do
local textA = tbl2[j]:gsub("^#[%s ]*%p%p[%s ]*(.-)[%s ]*|.*", "%1")
local textB = tbl2[k]:gsub("^#[%s ]*%p%p[%s ]*(.-)[%s ]*|.*", "%1")
if textA == textB and textA ~= "" then
text = text .. "<br />\n<span style='color:red'>二重投票?</span> " .. tbl2[1]:gsub("==.*", "")
end
end
end
end
end
return text
end
return p