跳转到内容

模組:Reply to

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

这是本页的一个历史版本,由SunAfterRain留言 | 贡献2020年2月3日 (一) 06:09编辑。这可能和当前版本存在着巨大的差异。

local p = {}

local function errormsg (msg)
	return require('Module:Error').error{ msg }
end

local function nouser (template)
	return errormsg( '錯誤:使用[[' ..  template .. ']]時出現錯誤:並無提供-{zh:使用者名稱;zh-tw:使用者名稱;zh-cn:用户名;}-。模板用法見於[[' ..  template .. ']]。' )
end

local function maxuser (tempalte, count)
	return errormsg( '錯誤:[[' ..  template .. ']]最多支持' .. (count or '50') .. '个-{zh-hant:用戶;zh-tw:使用者;zh-hans:用户;}-。如果需要超过' .. (count or '50') .. '个,必须使用多个模板。模板用法見於[[' ..  template .. ']]。' )
end

function p._ping(args)
	local ret = {}
	local error = ''
	local format = string.format
	for i, username in ipairs(args) do
		ret[#ret + 1] = format('[[%s:%s]]', mw.site.namespaces.User.name, username)
		if #ret >= 5 then
			error = maxuser('Template:Reply to','5')
			break
		end
	end
	ret = mw.text.listToText(ret,'、','、')
	if ret == '' then
		return nouser('Template:Reply to')
	end
	ret = '@' .. ret .. (args['p'] or ':') .. error
	return ret
end

function p.ping(frame)
	local args = frame:getParent().args
	return p._ping(args)
end

function p._unping(args)
	local ret = {}
	local error = ''
	local format = string.format
	for i, username in ipairs(args) do
		local url = tostring(mw.uri.fullUrl(mw.site.namespaces.User.name .. ':' .. username))
		local label = args['label' .. tostring(i)]
		url = format('[%s %s]', url, label or username)
		ret[#ret + 1] = url
		if #ret >= 50 then
			error = maxuser('Template:Unping')
			break
		end
	end
	ret = mw.text.listToText(ret,'、','、')
	if ret == '' then
		return nouser('Template:Unping')
	end
	ret = '<span class="plainlinks">@' .. ret .. '</span>' .. error
	return ret
end

function p.unping(frame)
	local args = frame:getParent().args
	return p._unping(args)
end

function p._hidden_ping(args)
	local ret = {}
	local error = ''
	local format = string.format
	for i, username in ipairs(args) do
		ret[#ret + 1] = format('[[%s:%s]]', mw.site.namespaces.User.name, username)
		if #ret >= 50 then
			error = maxuser('Template:Noping')
			break
		end
	end
	ret = mw.text.listToText(ret)
	if ret == '' then
		return  nouser('Template:Noping')
	end
	ret = '<span style="display:none">' .. ret .. '</span>' .. error
	return ret
end

function p.hidden_ping(frame)
	local args = frame:getParent().args
	return p._hidden_ping(args)
end

return p