Content deleted Content added
m capitalisation tweak |
detect whether Wikidata websites are qualified as being in the English language |
||
Line 9:
return result
end
-- Gets the rank for a Wikidata property table. Returns 1, 0 or -1, in
-- order of rank.
local function getRank(prop)
if rank == 'preferred' then
return 1
elseif rank == 'normal' then
return 0
elseif rank == 'deprecated' then
return -1
else
-- No rank or undefined rank is treated as "normal".
return 0
end
end
-- Finds whether a Wikidata property is qualified as being in English.
local function isEnglish(prop)
local lang = quickPcall(function ()
end)
return lang == 1860
end
Line 18 ⟶ 42:
return mw.wikibase.getEntityObject().claims.P856
end)
websites = websites or {}▼
-- Clone the objects in case other code needs them in their original order.
▲ websites = websites and mw.clone(websites) or {}
-- Add the table index to the objects in case it is needed in the sort.
▲ local ranks = {}
for i, website in ipairs(websites) do
▲ end
end
-- Sort the websites, first by highest rank, and then by websites in the
-- English language, then by the website's original position in the
-- property list. When we are done, get the URL from the highest-sorted
-- object.
table.sort(websites, function(ws1, ws2)
local r1 = getRank(ws1)
local r2 = getRank(ws2)
if r1 ~= r2 then
return r1 > r2
end
local e1 = isEnglish(ws1)
local e2 = isEnglish(ws2)
if e1 ~= e2 then
return e1
end
return ws1._index > ws2._index
end)
local url = quickPcall(function ()
return websites[1].mainsnak.datavalue.value
▲ return website.mainsnak.datavalue.value
end)
-- Cache the result so that we only do the heavy lifting once per #invoke.
fetchWikidataUrl = function ()
|