跳转到内容

模組:Sock list

被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由Xiplus留言 | 贡献2022年2月9日 (三) 07:36 (Copied content from w:en:Module:Sock list; see that page's history for attribution; via importer.js编辑。这可能和当前版本存在着巨大的差异。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)

local p = {}
local getArgs = require('Module:Arguments').getArgs
local isIpOrRange = require('Module:IPAddress')._isIpOrRange
local yesno = require('Module:Yesno')

function p.main(frame)
	local args = getArgs(frame)
	return p._main(frame, args)
end

function listEntry(frame, sock, master)
	local template = isIpOrRange(sock) and "checkip" or "checkuser"
	local li = mw.html.create('li')
	li:wikitext(frame:expandTemplate{title=template, args={sock, ['master name']=master}})
	return li
end

function toolEIA(args)
	local url = "https://tools.wmflabs.org/sigma/editorinteract.py?users="
		.. mw.uri.encode(args.master)
	for i, sock in ipairs(args) do
		url = url .. "&users=" .. mw.uri.encode(sock)
	end
	return "[" .. url .. " Editor interaction utility]"
end

function toolTimeline(args)
	local url = "https://tools.wmflabs.org/interaction-timeline?wiki=enwiki&user="
		.. mw.uri.encode(args.master) .. "&user=" .. mw.uri.encode(args[1] or "")
	return "[" .. url .. " Interaction Timeline]"
end

function toolCompare(args)
	local url = "https://tools.wmflabs.org/betacommand-dev/UserCompare/"
		.. mw.uri.encode(args.master)
	return "[" .. url .. " User compare report]"
end

function p._main(frame, args)
	local socklist = mw.html.create('ul')
	if args[1] then
		for i, sock in ipairs(args) do
			socklist:node(listEntry(frame, sock, args.master))
		end
	end
	if yesno(args.tools_link) then
		local tools = mw.html.create('li')
		tools
			:attr('class', 'plainlinks')
			:wikitext("<b>Tools</b>: ")
			:node(toolEIA(args))
			:wikitext(" • ")
			:node(toolTimeline(args))
			:wikitext(" • ")
			:node(toolCompare(args))
			:wikitext(" <small>''Auto-generated every hour.''</small>")
		socklist:node(tools)
	end
	return socklist
end

return p