Module:Hidden ping

local p = {}

local function makeError(msg, frame)

-- Show error only in preview

if (frame:preprocess( "{{REVISIONID}}" ) ~= "") then return '' end

msg ='Error in Template:Hidden ping: ' .. msg

return mw.text.tag('div', {['class']='error'}, msg)

end

function p.hiddenping(frame)

local origArgs = frame:getParent().args

local args = {}

local maxArg = 0

local usernames = 0

for k, v in pairs(origArgs) do

if type(k) == 'number' and mw.ustring.match(v,'%S') then

if k > maxArg then maxArg = k end

local title = mw.title.new(v)

if title then

args[k] = title.rootText

usernames = usernames + 1

else

return makeError('Input contains forbidden characters.', frame)

end

end

end

if usernames < 1 then

return makeError('Username not given.', frame)

elseif usernames > (tonumber(frame.args.max) or 50) then

return makeError('More than '..tostring(frame.args.max or 50)..' names specified.', frame)

else

local outStr = ''

for i = 1, maxArg do

if args[i] then outStr = outStr..'' end

end

return outStr

end

end

return p