モジュール:サンドボックス/Dragoniez/UserAN
モジュールの解説[作成]
local p = {}
function p.Main(frame)
--テンプレート引数
local arg = {
username = frame.args['target'], -- 1=, user=, User=
type = string.lower(frame.args["type"]), -- t=, type=, Type=
status = string.lower(frame.args["status"]), -- 2=
manualstatus = frame.args["status2"] -- s=, status=, Status=, 状態=
}
--表示リンク群
local reguser = "[[利用者:" .. arg.username .. "]]"
local reguserNL = "利用者:" .. arg.username
local talk = "[[User talk:" .. arg.username .. "|会話]]"
local contribs = "[[特別:投稿記録/" .. arg.username .. "|投稿記録]]"
local log = "[//ja.wikipedia.org/w/index.php?title=特別:Log&page=User:" .. arg.username .. " 記録]"
local ca = "[[特別:CentralAuth/" .. arg.username .. "|CA]]"
local block = "[[特別:block/" .. arg.username .. "|ブロック]]"
local userlinks = '(' .. talk .. ' / ' .. contribs .. ' / ' .. log .. ' / ' .. ca .. ' / ' .. block .. ')'
local ipuser = "IP:" .. arg.username
local guc = "[//xtools.wmflabs.org/globalcontribs/ipr-" .. arg.username .. " xtool]"
local whois4 = "[//whois.domaintools.com/" .. arg.username .. " IPv4]"
local whois6 = "[//www.ultratools.com/tools/ipv6InfoResult?ipAddress=" .. arg.username .. " IPv6]"
local iplinks = '(' .. talk .. ' / ' .. contribs .. ' / ' .. log .. ' / ' .. guc .. ' / Whois' .. whois4 .. ' / ' .. whois6 .. ' / ' .. block .. ')'
local function plainlink(links)
return '<span class="plainlinks" style="font-size:smaller">' .. links .. '</span>'
end
local report = {
user = reguser .. plainlink(userlinks),
userNL = reguserNL .. plainlink(userlinks),
ip = ipuser .. plainlink(iplinks),
logid = "[[特別:転送/logid/" .. arg.username .. "|Logid/" .. arg.username .. "]]",
diff = "[[特別:差分/" .. arg.username .. "|差分/" .. arg.username .. "]]の投稿者"
}
local icon = {
yellow = '[[File:Nuvola filesystems folder yellow open.png|25px|<span class="doing">未了</span>]]',
orange = '[[File:Nuvola filesystems folder orange open.png|25px|<span class="pending">保留</span>]]',
red = '[[File:Nuvola filesystems folder red open.png|25px|<span class="rejected">却下</span>]]',
green = '[[File:Nuvola filesystems folder green open.png|25px|<span class="done">済</span>]]'
}
-- type判定
local types = {
unl = report.userNL,
usernolink = report.userNL,
ip2 = report.ip,
ipuser2 = report.ip,
log = report.logid,
logid = report.logid,
dif = report.diff,
diff = report.diff,
none = arg.username
}
local displayStr
if types[arg.type] == nil then
displayStr = report.user
else
displayStr = types[arg.type]
end
-- status判定
local displayIcon = icon.yellow
local statusSwitch = {
['済'] = icon.green .. ' <small><b>済</b></small>',
['済み'] = icon.green .. ' <small><b>済</b></small>',
['done'] = icon.green .. ' <small><b>済</b></small>',
['却下'] = icon.red .. ' <small><b>却下</b></small>',
['非対処'] = icon.red .. ' <small><b>却下</b></small>',
['取り下げ'] = icon.red .. ' <small><b>取り下げ</b></small>',
['not done'] = icon.red .. ' <small><b>却下</b></small>',
['保留'] = icon.orange,
['pending'] = icon.orange,
}
if arg.status == '' then
if statusSwitch[arg.manualstatus] ~= nil then
displayIcon = statusSwitch[arg.manualstatus]
end
else
displayIcon = icon.green .. ' <small><b>' .. arg.status .. '</b></small>'
end
return displayIcon .. ' ' .. displayStr
end
return p