Module:Mailing list member

From blackwiki
Revision as of 22:51, 23 February 2014 by blackwiki>Jackmcbarn (should be "working")
Jump to navigation Jump to search
local yesno = require('Module:Yesno')

local function htmlerror(text)
	return '<span class="error">' .. mw.text.nowiki(text) .. '</span>'
end

local p = {}

function p.main(frame)
	local pargs = frame:getParent().args
	local lang = mw.getContentLanguage()
	local page
	if pargs.user then
		page = 'User talk:' .. pargs.user
	else
		page = pargs.page
	end
	if yesno(pargs.blocked) then
		if pargs.user then
			return frame:expandTemplate{title = 'Userblocked', args = { pargs.user }} .. ' <span class="blocked-member" style="font-size: 0.95em; font-weight: bold; color: #E33;">(Blocked since: ' .. lang:formatDate('F Y', pargs.blocked) .. ')</span>'
		else
			return htmlerror('No user defined')
		end
	end
	if not page then
		return htmlerror('No user or page defined')
	end
	if yesno(pargs.inactive) ~= false then -- allow nil
		local inactiveTS = lang:formatDate('U', pargs.inactive)
		local oneYearAgo = os.time() - 31556952
		local twoYearsAgo = oneYearAgo - 31556952
		local retval
		if inactiveTS < oneYearAgo then
			if pargs.user then
				retval = frame.expandTemplate{title = 'User', args = { pargs.user }}
			else
				retval = '[[' .. page .. ']]'
			end
		else
			retval = frame:callParserFunction('#target', page)
		end
		retval = retval .. '<span class="inactive-member" style="font-size: 0.95em; font-weight: bold; color: #'
		if inactiveTS < twoYearsAgo then
			retval = retval .. 'F00';
		elseif inactiveTS < oneYearAgo then
			retval = retval .. '555';
		else
			retval = retval .. '080';
		end
		retval = retval .. ';">(Inactive since: ' .. lang:formatDate('F Y', pargs.inactive) .. ')</span>'
		
		return retval
	else
		return frame:callParserFunction('#target', page)
	end
end

return p