Jump to content

Module:Endangered Languages Project/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by MSGJ (talk | contribs) at 10:09, 6 March 2024. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = {}

local elpf = "http://www.endangeredlanguages.com/lang/" -- or get P1630
local make_display = function(elpc, elpn)
	return "[" .. elpf .. elpc .. " " .. elpn ..	"]"
end

local tidy_param = function(param)
	if param == "" then param = nil end
	return param
end

p.make_entry = function(frame)
	local elpname = tidy_param(frame.args.elpname)
	local elpcode = tidy_param(frame.args.elpcode)
	local qid = tidy_param((frame.args.qid or ""):upper()) or mw.wikibase.getEntityIdForCurrentPage()
	local out = {}
	if elpcode and elpname then
		table.insert(out, make_display(elpcode, elpname))
	end
	if qid then
		local props = mw.wikibase.getBestStatements(qid, "P2192")
		if props[1] then
			for _, v in ipairs(props) do
				local elpc = v.mainsnak.datavalue and v.mainsnak.datavalue.value
				local elpn = v.qualifiers and v.qualifiers.P1810 and v.qualifiers.P1810[1].datavalue and v.qualifiers.P1810[1].datavalue.value
				if elpc and elpn then
					table.insert(out, make_display(elpc, elpn))
				end
			end
		end
	end
	local ret = ""
	if #out > 1 then
		return frame:expandTemplate{title = "ubl", args = out}
	elseif #out==1 then
		return out[1]
	elseif elpcode or elpname then
		return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
	end
	return ret
end

return p