Module:Endangered Languages Project

--[[ Module:Endangered Languages Project --]]

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 out[#out+1] = make_display(elpcode, elpname) else if qid then local props = mw.wikibase.getBestStatements(qid, "P2192") if props[1] then for i, v in ipairs(props) do local elpc = elpcode or v.mainsnak.datavalue and v.mainsnak.datavalue.value local elpn = elpname or v.qualifiers["P1810"][1].datavalue and v.qualifiers["P1810"][1].datavalue.value if elpc and elpn then out[#out+1] = make_display(elpc, elpn) end end elseif elpcode or elpname then return (elpcode or "") .. (elpname or "") .. "" end else if elpcode or elpname then return (elpcode or "") .. (elpname or "") .. "" end end end

local ret = "" if #out > 1 then ret = frame:expandTemplate{title = "ubl", args = out} else ret = out[1] end

return ret end

return p