Module:ResolveEntityId: Difference between revisions

Content deleted Content added
-- backwards compatibility for deprecated _entityid function
Sync from sandbox, follow Wikipedia redirects.
Tag: Reverted
Line 1:
local p = {}
 
function p._entityid(_,id,alt)
-- backwards compatibility for deprecated _entityid function
return p._id(id,alt)
end
 
function p._id(id,alt)
Line 13 ⟶ 8:
if mw.wikibase.isValidEntityId(id) then
-- id is valid
id =if mw.wikibase.getEntityentityExists(id) then
if id then
-- entity exists
return idmw.wikibase.getEntityIdForTitle(mw.wikibase.getSitelink(id))
end
end
else
ideid = mw.wikibase.getEntityIdForTitle(id)
if ideid then
-- entity id is a title that matches a Wikidata entity
local instanceOf = mw.wikibase.getBestStatements(ideid, 'P31')[1] --instance of
if (instanceOf and instanceOf.mainsnak.datavalue.value.id ~= 'Q4167410') or (instanceOf == nil and mw.wikibase.entityExists(eid)) then
-- not disambiguation, or exists but is missing an instance-of value
returnlocal rtarget = mw.wikibasetitle.getEntitynew(ideid).idredirectTarget
elseif if instanceOfrtarget =~= nilfalse then
-- idtitle is a title, but is missing an instance-ofWikipedia valueredirect
return mwp.wikibase_id(rtarget.getEntity(idfullText,alt).id
else
-- title is neither disambiguation or redirect
return mw.wikibase.getEntityIdForTitle(mw.wikibase.getSitelink(eid))
end
end
else
-- no wikidata item exists
local rtarget = mw.title.new(id).redirectTarget
if idrtarget ~= false then
-- title is a Wikipedia redirect
return p._id(idrtarget.fullText,alt)
end
end