モジュール:UserAN2

local p={}
local fullurl = 'https://ja.wikipedia.org/w/index.php?title='
function p.main( frame )
--	local args = require( 'Module:Arguments' ).getArgs( frame, { wrappers = 'Template:UserAN2', removeBlanks = true })
	-- 入力引数格納
	local type2	= frame.args.type	or 
	local status	= frame.args.status	or args'状態'  or 
	local username	= frame.args.user	or args1 or 
	local enc_name	 = mw.uri.encode(username, "WIKI")
	local check	= frame.args.check	or args2 or 
	if username ==  then
		return p.error('アカウント未記入')
	end
	-- type指定が空白ならデフォルトでuser2指定、そうでなければ引数を小文字化
	if type2 ==  then
		type2 = 'user2'
	else
		type2 = string.lower(type2)
	end
	-- アイコン
	local icon = {
		done = '済',
		doing = '未了',
		reject = '却下 却下',
	}
	--定形リンク
	local link = {
		plain1	= ,
		small1	= ,
		small2	= ,
		span1	= ,
		span2	= ,
		user	= fullurl ..'User:' ..enc_name ..' 利用者:' ..username ..,
		user2	= '利用者:' ..username,
		talk	= fullurl ..'User_talk:' ..enc_name ..' 会話',
		contrib	= fullurl ..'Special:Contributions/' ..enc_name ..' 投稿記録',
		undo	=  ..fullurl ..'Special:Contributions&target=' ..enc_name ..'&tagfilter=mw-undo 取り消し',
		revert	=  ..fullurl ..'Special:Contributions&target=' ..enc_name ..'&tagfilter=mw-manual-revert 手動差し戻し',
		log	= fullurl ..'Special:Log&page=User%3A' ..enc_name ..' 記録',
		xtools	= ' ..enc_name ..'?uselang=ja xtools',
		blocklog= fullurl ..'Special:Log/&type=block&page=User:' ..enc_name ..' ブロック記録',
		block	= 'ブロック',
		ca 	= 'CA',
		ur	= '権限',
		guc	= ' ..enc_name ..' guc', --2021/6/18廃止：Template‐ノート:UserAN#guc -> xtool
		ip	= username,	-- 生入力内容 diff/logid兼用
		ip_talk	= fullurl ..'User_talk:' ..username ..' 会話',
		ip_cont	= fullurl ..'Special:Contributions/' ..username ..' 投稿記録',
		ip_log	= '記録',
		whois	= 'Whois  ..username ..' IPv4・'
			.. ' ..username ..' IPv6',
	}
	--進捗判定
	local flag = 
	if string.lower(status) == 'done' or status == '済' or status == '済み' then
		flag = icon.done
	else
		flag = icon.doing
	end
	if string.lower(check) == 'done' or check == '済' or check == '済み' then
		flag = icon.done
	elseif check == '却下' or check == '非対処' then
		flag = icon.reject
	elseif check ~=  then
		flag = icon.done .. ..check ..
	end
	--アカウント表記形式 / type2に入っている文字列を上から総当たりで参照し、合致すればlabelの内容を置換する（#Switch構文の代わり）
	local label = ({
		user	= p.user(link),
		user2	= p.user2(link),
		user3	= p.user2(link),
		user4	= p.user4(link),
		user5	= p.user5(link),
		unl	= p.unl(link),
		usernolink = p.unl(link),
		ip	= p.ip(link),
		ip2	= p.ip2(link),
		ipuser2	= p.ip2(link),
		none	= username,
		user50	= p.user50(link),
		userr	= p.userR(link),
		userr2	= p.userR2(link),
		userr3	= p.userR3(link),
		diff	= p.diff(link),
		logid	= p.logid(link),
	})type2
	if label then
		return flag ..' ' ..label
	end
end
-- エラーメッセージ
function p.error ( message )
	return 'エラー：' ..message ..
end
-- 以下、各表記書式
function p.user ( link )
	return link.plain1 ..link.user ..link.small1 ..'（' .. link.talk ..' / ' ..link.contrib ..'）' ..link.span2
end
function p.user2 ( link )
	return link.plain1 ..link.user ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib ..' / ' ..link.log ..'）' ..link.span2
end
function p.user4 ( link )
	return link.plain1 ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib ..' / ' ..link.log ..'）' ..link.span2
end
function p.user5 ( link )
	return link.plain1 ..link.user ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib ..' / ' ..link.log ..' / '
		..link.ca .. ' / ' ..link.xtools ..'）' ..link.span2
end
function p.unl ( link )
	return link.plain1 ..link.user2 ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib ..' / ' ..link.log ..'）' ..link.span2
end
function p.ip ( link )
	return 'IP:' ..link.ip ..link.plain1 ..link.small1 ..'（' ..link.ip_talk ..' / ' ..link.ip_cont ..'）' ..link.span2
end
function p.ip2 ( link )
	return 'IP:' ..link.ip ..link.plain1 ..link.small1 ..'（' ..link.ip_talk ..' / ' ..link.ip_cont ..' / '
			..link.ip_log ..' / ' ..link.whois ..'）' ..link.span2
end
function p.user50 ( link )
	return link.plain1 ..link.user ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib ..' / '
		..link.log ..' / ' ..link.ca .. ' / ' ..link.guc ..' / ' ..link.xtools
		..'）' ..link.span2
end
function p.userR ( link )
	return link.plain1 ..link.user ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib
		..link.small2 ..'（' ..link.undo ..' ' ..link.revert ..'）' ..link.span1
		..link.log ..'）' ..link.span2
end
function p.userR2 ( link )
	return link.plain1 ..link.user ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib
		..link.small2 ..'（' ..link.undo ..' ' ..link.revert ..'）' ..link.span1
		..link.log ..' / ' ..link.xtools ..' / '  ..link.ca .. ' / ' ..link.ur ..' / ' ..link.guc
		..'）' ..link.span2
end
function p.userR3 ( link )
	return link.plain1 ..link.user2 ..link.small1 ..'（' ..link.talk ..' / ' ..link.contrib
		..link.small2 ..'（' ..link.undo ..' ' ..link.revert ..'）' ..link.span1
		..link.log ..' / ' ..link.xtools ..' / '  ..link.ca .. ' / ' ..link.ur ..' / ' ..link.guc
		..'）' ..link.span2
end
function p.diff ( link )
	return '版番 ' ..link.ip ..' の差分'
end
function p.logid ( link )
	return 'Logid/' ..link.ip ..
end
return p