Jump to content

Module:Check blp parameter

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by MSGJ (talk | contribs) at 21:30, 7 September 2024 (adapt for a list). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

require('strict')
local p = {}

p.main = function(frame)
	local yesno = require('Module:Yesno')
	local page = mw.title.getCurrentTitle().fullText
	local templates = mw.loadData('Module:WikiProject banner/config').banner_shell.redirects
	local getparam = function(p)
		local TPVmodule = require('Module:Template parameter value').getParameter
		local success, param = TPVmodule(page, templates, p, {ignore_subtemplates=true, ignore_blank=true})
		return success and param
	end
	local check = function(p_table)
		local conflict = false
		local resolved
		for _, p in ipairs(p_table) do
			local yn = yesno(p)
			if yn~=nil then
				if resolved then
					if yn~=resolved then
						conflict = true
					end
				else
					resolved = yn
				end
			end
		end
		return resolved, conflict
	end
	local conflict, shell_resolved, bio_resolved, resolved
	shell_resolved, conflict = check({getparam('blp'), getparam('living')})
	if not conflict then
		bio_resolved, conflict = check({frame.args.blp, frame.args.living})
		if not conflict then
			resolved, conflict = check({shell_resolved, bio_resolved})
		end
	end
	local out
	if conflict then
		out = 'Pages using WikiProject Biography with conflicting living parameter'
	elseif shell_resolved==nil then
		if bio_resolved==nil then
			out = 'Biography articles without living parameter'
		else
			out = 'Pages using WikiProject Biography which need living parameter transferring'
		end
	elseif shell_resolved==bio_resolved then
		out = 'Pages using WikiProject Biography with redundant living parameter'
	end
	return out and '[[:Category:' .. out .. ']]'
end

return p