Jump to content

Modulo:ResolveEntityId

Permanente a nasalakniban a modulo
Manipud iti Wikipedia, ti nawaya nga ensiklopedia
Daytoy ket daan a rebision iti daytoy a panid, kas inurnos babaen ni Lam-ang (tungtungan | aramid) idi 15:33, 15 Marso 2019 (Sinalakniban ti "Modulo:ResolveEntityId": adu ti nakailak-aman a pampanid ([Urnosen=Palubosan laeng dagiti automatiko a napasingkedan nga agar-aramat] (inggana't inggana) [Iyalis=Palubosan laeng dagiti automatiko a napasingkedan nga agar-aramat] (inggana't inggana))). Ti agdama nga adres ket permanente a silpo iti daytoy a bersion, ken mabalin nga adu ti pakaigiddiatanna manipud iti agdama a rebision.
Dokumentasion ti modulo

Panagusar

Dagiti annong a kapada iti mw.wikibase.resolvePropertyId, ngem para kadagiti entidad ti Wikidata imbes a dagiti tagikua.

Mangisubli ti maysa nga id ti entidad para iti naited nga etiketa wenno id. Daytoy ket mangipalubos iti panagusar kadagiti etiketa ti entidad imbes a dagiti id kadagiti amin a lugar. No awan ti mabirukan nga entidad para iti etiketa wenno id, wenno ti etiketa ket saan a nalawag, maipasubli ti pateg a nil.

Panagtawag iti kaunegan iti maysa a modulo (_id)

Dagiti pagarigan a panagtawag iti kaunegan ti modulo ket mabalin a kasala ti sumaganad:


Kodigo Resulta
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('Q42')
id = Q42
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('Q0')
id = nil
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('Q404')
id = Q404
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('Q151384451555')
id = nil
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('Douglas Adams')
id = nil
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('ThisIsNotARealWikidataItem')
id = nil
local resolveEntity = require( "Modulo:ResolveEntityId" )
id = resolveEntity._id('ThisIsNotARealWikidataItem', 'Saan a nabirukan ti ID ti Wikidata')
id = 'Saan a nabirukan ti ID ti Wikidata'

Panagusar manipud iti kaunegan ti maysa a plantilia (entityid)

Ti sumaganad ket mangisubli iti id ti entidad (wenno nil no awan ti ID): {{#invoke:ResolveEntityId|entityid|id}}

Nasukatanen (_entityid)

Ti annong ti _entityid, a makasapul a ti frame ket maipasa koma a kas ti umuna nga argumento, ket nasukatanen gapu ta dagiti banag a mangpakabel ket saanen a nasken para iti phab:T143970.

Ti sumaganad ket mangisubli iti id ti entidad (wenno ti alternatibo a teksto no awan ti ID): {{#invoke:ResolveEntityId|entityid|id|alternatibo a teksto no ti id ket nil}}

local p = {}

function p._entityid(_,id,alt)
	-- backwards compatibility for deprecated _entityid function
	return p._id(id,alt)
end

function p._id(id,alt)
	if type(id) == 'string' then
		id = mw.ustring.upper(mw.ustring.sub(id,1,1))..mw.ustring.sub(id,2)
		if mw.ustring.match(id,'^Q%d+$') then
			-- id is in the proper format for a Wikidata entity
			if mw.wikibase.isValidEntityId(id) then
				-- id is valid
				id = mw.wikibase.getEntity(id)
				if id then
					-- entity exists
					return id.id
				end
			end
		else
			id = mw.wikibase.getEntityIdForTitle(id)
			if id then
				-- id is a title that matches a Wikidata entity
				local instanceOf = mw.wikibase.getBestStatements(id, 'P31')[1] --instance of
				if instanceOf and instanceOf.mainsnak.datavalue.value.id ~= 'Q4167410' then
					-- not disambiguation
					return mw.wikibase.getEntity(id).id
				elseif instanceOf == nil then
					-- id is a title, but is missing an instance-of value
					return mw.wikibase.getEntity(id).id
				end
			end
		end
	end
	return alt or nil
end

function p.entityid(frame)
	return p._id(frame.args[1], frame.args[2])
end

return p