Jump to content

Module:Endangered Languages Project/sandbox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
i not used
try imp
Line 1: Line 1:
--[[
Module:Endangered Languages Project
--]]

local p = {}
local p = {}


local elpf = "http://www.endangeredlanguages.com/lang/" -- or get P1630
local elpf = "http://www.endangeredlanguages.com/lang/" -- or get P1630

local make_display = function(elpc, elpn)
local make_display = function(elpc, elpn)
return "[" .. elpf .. elpc .. " " .. elpn .. "]"
return "[" .. elpf .. elpc .. " " .. elpn .. "]"
Line 20: Line 15:
local elpcode = tidy_param(frame.args.elpcode)
local elpcode = tidy_param(frame.args.elpcode)
local qid = tidy_param((frame.args.qid or ""):upper()) or mw.wikibase.getEntityIdForCurrentPage()
local qid = tidy_param((frame.args.qid or ""):upper()) or mw.wikibase.getEntityIdForCurrentPage()

local out = {}
local out = {}
if elpcode and elpname then
if elpcode and elpname then
Line 35: Line 29:
end
end
end
end
elseif elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
end
elseif elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
end
end
end

local ret = ""
local ret = ""
if #out > 1 then
if #out > 1 then
ret = frame:expandTemplate{title = "ubl", args = out}
return frame:expandTemplate{title = "ubl", args = out}
elseif #out==1 then
else
ret = out[1]
return out[1]
elseif elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
end

return ret
return ret
end
end

Revision as of 10:06, 6 March 2024

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))
	else
		if qid then
			local props = mw.wikibase.getBestStatements(qid, "P2192")
			if props[1] then
				for _, v in ipairs(props) do
					local elpc = elpcode or v.mainsnak.datavalue and v.mainsnak.datavalue.value
					local elpn = elpname or 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
	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