You may also check out our sister site SoyPlace.


As you might already know, archive.today (also known as archive.is, archive.ph and a variety of other mirror domains) is being investigated by the FBI and might be taken down soon. Please rearchive any archive.today link you find on SNCApedia on Megalodon.jp, then add said Megalodon.jp links to the articles. Faggot (talk) 23:14, 6 November 2025 (UTC)


The site might go down sometimes, Gold is doing some stuff. Faggot (talk) 21:59, 9 December 2025 (UTC)

Module:Check for clobbered parameters

From SNCApedia, the shit nobody cares about encyclopedia
Revision as of 20:11, 15 June 2025 by Auoot (talk | contribs) (Created page with "local p = {} local function trim(s) return s:match('^%s*(.-)%s*$') end local function isnotempty(s) return s and s:match('%S') end function p.check(frame) local args = frame.args local pargs = frame:getParent().args local checknested = isnotempty(args['nested']) local delimiter = isnotempty(args['delimiter']) and args['delimiter'] or ';' local argpairs = {} for k, v in pairs(args) do if type(k) == 'number' then local plist = mw.text.split(v, delimiter)...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Documentation for this module may be created at Module:Check for clobbered parameters/doc

local p = {}

local function trim(s)
	return s:match('^%s*(.-)%s*$')
end

local function isnotempty(s)
	return s and s:match('%S')
end

function p.check(frame)
	local args = frame.args
	local pargs = frame:getParent().args
	local checknested = isnotempty(args['nested'])
	local delimiter = isnotempty(args['delimiter']) and args['delimiter'] or ';'
	local argpairs = {}
	
	for k, v in pairs(args) do
		if type(k) == 'number' then
			local plist = mw.text.split(v, delimiter)
			local pfound = {}
			local count = 0
			for ii, vv in ipairs(plist) do
				vv = trim(vv)
				if checknested and pargs[vv] or isnotempty(pargs[vv]) then
					count = count + 1
					table.insert(pfound, vv)
				end
			end
			if count > 1 then
				table.insert(argpairs, pfound)
			end
		end
	end
	
	local warnmsg = {}
	local res = ''
	local cat = ''
	if args['cat'] and mw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:') then
		cat = args['cat']
	end
	local template = args['template'] and ' in ' .. args['template']  or ''
	if #argpairs > 0 then
		for i, v in ipairs( argpairs ) do
			table.insert(
				warnmsg,
				mw.ustring.format(
					'Using more than one of the following parameters%s: <code>%s</code>.',
					template,
					table.concat(v, '</code>, <code>')
				)
			)
			if cat ~= '' then
				res = res .. '[[' .. cat .. '|' .. (v[1] == '' and ' ' or '') .. v[1] .. ']]'
			end	
		end
	end
	
	if #warnmsg > 0 then
		res = require('Module:If preview')._warning({
			table.concat(warnmsg, '<br>')
		}) .. res
	end
	
	return res
end

return p