コンテンツにスキップ

モジュール:サンドボックス/Triglav/test

これはこのページの過去の版です。Triglav (会話 | 投稿記録) による 2016年3月31日 (木) 14:01個人設定で未設定ならUTC)時点の版であり、現在の版とは大きく異なる場合があります。

モジュールの解説[作成]
local p = {}

--[[新着投票所の二重投票を判定する

    {{#invoke:CheckDoubleVoting|CheckDoubleVoting|page={{Wikipedia:メインページ新着投票所/新しい項目候補}}|section= 「新しい項目」候補と投票所 |level=3|line=1}}
]]

function p.CheckDoubleVoting(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')

            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