Questo modulo genera alcune parti dell'omonimo template, evitando ripetizioni di codice inutili e permettendo un numero arbitrario di parametri per gli utenti oggetto delle richieste.


local p = {}

function colore(arg1, arg2)
	local colori = {
		positivo = 'F0B090',
		probabile = 'F0D050',
		incerto = 'F0F0E0',
		negativo = 'C0E090',
		respinto = 'AEAEAE',
		altro = 'E0F0FF'
	}
	if arg1 ~= nil and arg1 ~= '' then
		if colori[arg1] ~= nil then
			return colori[arg1]
		end
	elseif colori[arg2] ~= nil then
		return colori[arg2]
	else
		return 'FFFFFF'
	end
	return ''
end

function riga(utente, risultato, sign)
	local links = {
		string.format('[[Utente:%s|%s]] <small class="plainlinks">[[Speciale:Contributi/%s|contributi]]', utente, utente, utente),
		string.format('[[Speciale:DeletedContributions/%s|(cancellati)]]', utente),
		'['..tostring(mw.uri.fullUrl('Speciale:Log', { ['type'] = 'block', page = mw.uri.encode('Utente:'..utente) }))..' blocchi]',
		string.format('[[Wikipedia:Check user/Richieste/Archivio/Utenti/%s|Prec]]</small>', utente),
		'<span class="plainlinks">['..tostring(mw.uri.fullUrl('Speciale:CheckUser', { user = mw.uri.encode(utente) }))..' CU]</span>'
	}
	return '|-\n| bgcolor=#'..colore(risultato, sign)..' | '..table.concat(links, ' · ')
end

function p.righe(frame)
	local args = frame:getParent().args
	local sign = args.RISULTATOSIGN or ''
	local res = {}
	local numero = 1
	while true do
		if args['UTENTE'..numero] then
			local utente = mw.text.trim(args['UTENTE'..numero])
			if utente ~= '' then
				table.insert(res, riga(utente, args['RISULTATO_UTENTE'..numero], sign))
				numero = numero + 1
			elseif numero == 1 then
				return '<small><span class="error">ERRORE#1: Richiesta non valida: non è stata indicata alcuna utenza.</span></small>'
			elseif numero == 2 then
				return '<small><span class="error">ERRORE#2: Non è possibile accogliere la richiesta: devono essere indicate almeno due utenze.</span></small>'
			else
				break
			end
		else
			break
		end
	end
	return table.concat(res, '\n')
end

return p