Module:Sandbox/Nardog/12s

Revision as of 07:24, 30 May 2020 by imported>Nardog
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Sandbox/Nardog/12s/doc

local p = {}

function p.main(frame)
	if not frame.args[1] then
		return nil
	end
	local lang = mw.getContentLanguage()
	-- local t = { '{|class="wikitable sortable"\n!User!!Last!!First!!Blocked!!Admin!!Reason\n' }
	local t = { '{|class="wikitable sortable"\n!User!!Last!!First\n' }
	for v in mw.text.gsplit(frame.args[1], '%s*\n%s*') do
		if v ~= '' then
			-- local blocked = mw.ustring.match(v, '%d%d:%d%d,%s%d%d?%s%u%l+%s%d%d%d%d')
			-- local admin = mw.ustring.match(v, '%d%d%d%d%s(.-)%stalk%scontribs%s')
			local user = mw.ustring.match(v, 'talk%scontribs%sblocked%s(.-)%stalk')
				or mw.ustring.match(v, '"User:(.-)@global"')
				or mw.ustring.match(v, '/wiki/Special:[^/]-/(.*)')
				or mw.ustring.match(v, '&user=([^&#]+)')
				or mw.ustring.match(v, '%x+:%x-:[%x:]*/?%d*')
				or mw.ustring.match(v, '%d+%.%d+%.%d+%.%d+/?%d*')
				or mw.ustring.match(v, '^[^#<>%[%]|{}/@:]+$')
			-- local reason = mw.ustring.match(v, 'account creation blocked%)%s%((.+)%)')
			if user then
				local template = 'checkuser'
				if user:find('^%x+:%x-:[%x:]*/?%d*$') or user:find('^%d+%.%d+%.%d+%.%d+/?%d*$') then
					template = 'checkip'
				else
					user = mw.uri.decode(user, 'WIKI')
				end
				local last = frame:preprocess('{{Special:Contributions/' .. user .. '|limit=1}}')
				local first = frame:preprocess('{{Special:Contributions/' .. user .. '|limit=1|dir=prev}}')
				user = frame:expandTemplate{ title = template, args = { user } }
				-- blocked = blocked and 'data-sort-type=' .. lang:formatDate('U', blocked) .. '|' .. blocked or ''
				-- admin = admin or ''
				-- reason = reason or ''
				-- table.insert(t, string.format('|-\n|%s||%s||%s||%s||%s||%s\n', user, last, first, blocked, admin, reason))
				table.insert(t, string.format('|-\n|%s||%s||%s\n', user, last, first))
			end
		end
	end
	table.insert(t, '|}')
	return table.concat(t)
end

return p