Módulo:Responder a

Revisão em 01h21min de 14 de maio de 2024 por Jaewoo (discussão | contribs) (Criou a página com "local p = {} local function makeError(msg) msg ='Erro em Predefinição:Responder a: ' .. msg return mw.text.tag('strong', {['class']='error'}, msg) end function p.replyto(frame) local origArgs = frame:getParent().args local args = {} local maxArg = 1 local usernames = 0 for k, v in pairs(origArgs) do if type(k) == 'number' then if mw.ustring.match(v,'%S') then if k > maxArg then maxArg = k end...")
(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)

A documentação para este módulo pode ser criada na página Módulo:Responder a/doc

local p = {}
local function makeError(msg)
				msg ='Erro em [[Predefinição:Responder a]]: ' .. msg
				return mw.text.tag('strong', {['class']='error'}, msg)
end
function p.replyto(frame)
				local origArgs = frame:getParent().args
				local args = {}
				local maxArg = 1
				local usernames = 0
				for k, v in pairs(origArgs) do
								if type(k) == 'number' then
												if mw.ustring.match(v,'%S') then
																if k > maxArg then maxArg = k end
																usernames = usernames + 1
																local title = mw.title.new(v)
																if not title then return makeError('Dados de entrada contêm carateres proibidos.') end
																	
																args[k] = title.rootText
												end
								elseif v == '' and k:sub(0,5) == 'label' then
												args[k] = '​'
								else
												args[k] = v
								end
				end
				if usernames > (tonumber(frame.args.max) or 50) then
								return makeError(string.format(
												'Mais de %s nomes especificados.',
												tostring(frame.args.max or 50)
								))
				else
								if usernames < 1 then
												if frame.args.exemplo then args[1] = frame.args.exemplo
												elseif frame.args.example then args[1] = frame.args.example
												else return makeError('Nome de usuário(a) não fornecido.')
												end
							end
								args['label1'] = args['label1'] or args['label']
								args['prefix'] = args['prefix'] or args['prefixo']
								local isfirst = true
								local outStr = args['prefix'] or '@'
								for i = 1, maxArg do
												if args[i] and (((i == 1 or i == 2) or args['c'] == '') or i ~= maxArg)  then
																if isfirst then
																				isfirst = false
																else
																				if usernames >= 2 and (args['c'] == '' or i ~= maxArg) then outStr = outStr..', ' end
																end
																if 1 == maxArg or i ~= maxArg  then outStr = string.format(
																				'%s[[Usuário(a):%s|%s]]',
																				outStr,
																				args[i],
																				args['label'..tostring(i)] or args[i]
																) end
												end
												if args[i] and (i == maxArg and i ~= 1) then
				outStr = outStr.. ' '..(args['c'] or 'e')..string.format(' [[Usuário(a):%s|%s]]', args[i], args['label'..tostring(i)] or args[i])
												end
								end
								outStr = outStr..(args['p'] or ':')
								return mw.text.tag('span', {['class']='template-ping'}, outStr)
				end
end
return p