模組:Revdel
local rv = {}
function rv.main(frame)
local args = frame:getParent().args
local ids = {}
local page = args["page"] or args["article"]
page = page:gsub('^:', '')
local set = args["set"]
local reason = args["reason"]
local status = args["status"]
local statustext = args["statustext"]
local review = args["review"]
local i = 1
while true do --frame的args不是完全table实现,无法用#args查表长,只能死循环试探结束。
t_id = args['id' .. i]
if (t_id ~= nil) then
if t_id ~= '' then
table.insert(ids, t_id)
end
i = i + 1
else
break
end
end
local code = "\n"
if (page == nil) then
page = "頁面名"
end
local is_log = false
if mw.ustring.match(page, "^Special:") then
is_log = true
end
code = code .. "* [[:" .. page .. "]]"
if not is_log then
code = code .. "([" .. tostring(mw.uri.fullUrl(page, "action=edit")) .. " 編輯]"
.. " · [[" .. tostring(mw.title.makeTitle("", page).talkPageTitle) .. "|討論]]"
.. " · [" .. tostring(mw.uri.fullUrl("Special:Whatlinkshere/" .. page)) .. " 鏈入]"
.. " · [" .. tostring(mw.uri.fullUrl(page, "action=history&hilight=" .. table.concat(ids, ","))) .. " 歷史]"
.. " · [" .. tostring(mw.uri.fullUrl(page, "action=watch")) .. " 監視]"
.. " · [" .. tostring(mw.uri.fullUrl("Special:Log", "page=" .. mw.uri.encode(page, "PATH"))) .. " 日志])"
end
code = code .. "\n"
code = code .. "** " .. frame:expandTemplate{title = "status", args = {frame:callParserFunction{name = "#if", args = {status, status, "处理中"}}, statustext}} .. "\n"
local ids_t = {}
for i = 1, #ids do
ids_t["ids[" .. ids[i] .. "]"] = 1
end
if is_log then
code = code .. "** 请求删除日誌([//zh.wikipedia.org/w/index.php?action=revisiondelete&type=logging&" .. mw.uri.buildQueryString(ids_t) .. " 全部删除])"
for i = 1, #ids do
code = code .. frame:expandTemplate{title = "ar-rev/log", args = {page, ids[i]}}
end
else
code = code .. "** 请求删除版本([" .. tostring(mw.uri.fullUrl(page, "action=revisiondelete&type=revision&" .. mw.uri.buildQueryString(ids_t))) .. " 全部删除])"
for i = 1, #ids do
code = code .. frame:expandTemplate{title = "ar-rev", args = {page, ids[i]}}
end
end
code = code .. "\n"
code = code .. "** 刪除內容:" .. ((set ~= nil and set) or frame:expandTemplate{title = "red", args = {"'''请提供所要刪除的內容(編輯內容/編輯者/編輯摘要,可選多於一個)'''"}}) .. "\n"
.. "** 理由:" .. ((reason ~= nil and frame:expandTemplate{title = "revdel/core", args = {reason}}) or frame:expandTemplate{title = "red", args = {"'''请提供理由'''"}}) .. "\n"
code = mw.text.tag('div',{
["class"] = "plainlinks template-Revdel",
["id"] = page
}, code) .. "\n"
return code
end
return rv