m (Protected "Module:Wikibase": used in all listings on all pages ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))) |
m (1 revision imported) |
||
(No difference)
|
Latest revision as of 05:39, 25 August 2023
Documentation for this module may be created at Module:Wikibase/doc
-- Module:Wikibase function getId( id ) if not mw.wikibase then return "wikibase module not found" end if id then return id end entity = mw.wikibase.getEntityObject() if not entity then return nil end return entity.id end -- Returns the link corresponding to the code provided. function sitelink(dbname) if dbname==nil or dbname=='' then return '' end local sl = mw.wikibase.getEntityObject() if sl and sl.sitelinks[dbname] then return sl.sitelinks[dbname].title end return '' end -- Returns the corresponding geographical coordinates of the item function coords(typ,fallback) if fallback~=nil and fallback~='' and string.match(fallback, '^<%!%-%-.*%-%->$')==nil then return fallback end local item = mw.wikibase.getEntityObject() if item~=nil and item.claims~=nil then local coords = item.claims.P625 if coords~=nil and coords[0]~=nil and coords[1]==nil then return coords[0].mainsnak.datavalue.value[typ] end end return '' end -- Returns the most updated info from a series of statements function updated(item,prop,frame) if item~=nil then local claims = item.claims if claims~=nil and claims[prop]~=nil then for index,claim in pairs(claims[prop]) do local qual = claim.qualifiers if qual==nil or qual.P582==nil then -- p582 è la data di fine, significa che non è il valore attuale local val = claim.mainsnak.datavalue.value if val['numeric-id']~=nil then local id = 'Q'..val['numeric-id'] local sl = mw.wikibase.sitelink(id) local lb = mw.wikibase.label(id) if sl~=nil and sl~='' then return frame:preprocess('[['..sl..'|'..lb..']]') end return lb end return val end end end end return '' end local p = {} -- Returns the ID number of the data item linked to the current page. function p.id(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return id end -- Returns the ID number of the data item linked to the current page in the form of a link to Wikidata. function p.idLink(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return "[[d:" .. id .. "|" .. string.upper(id) .. "]]" end -- Returns the label of the data item. function p.label(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return mw.wikibase.label( id ) end -- Returns the local page of the data item provided. function p.page(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return mw.wikibase.sitelink( id ) end -- Returns the link corresponding to the code provided. function p.sitelink(frame) return sitelink(frame.args.dbname or frame.args[1]) end -- Returns the corresponding link to Wikipedia in English. function p.enwikilink(frame) if frame.args[1]~=nil and frame.args[1]~='' then return frame.args[1] end local sl = sitelink('enwiki') if sl~=nil and sl~='' then return sl end local t = mw.title.getCurrentTitle().text if t~=nil and t~='' then return t end return '' end -- Returns the Commons category of the data item. function p.commonslink(frame) if frame.args[1]~=nil and frame.args[1]~='' then return 'Category:'..frame.args[1] end local item = mw.wikibase.getEntityObject() if item~=nil and item.claims~=nil then local cat = item.claims.P373 if cat~=nil and cat[0]~=nil and cat[1]==nil and cat[0].mainsnak.datavalue.value~=nil then return 'Category:'..(cat[0].mainsnak.datavalue.value) end end local t = mw.title.getCurrentTitle().text if t~=nil and t~='' then return 'Category:'..t end return '' end -- Returns the name of the capital or main city. function p.capital(frame) if frame.args[1]~=nil and frame.args[1]~='' then return frame.args[1] end local item = mw.wikibase.getEntityObject() return updated(item,'P36',frame) end function p.capoluogo(frame) return p.capital(frame) end function p.valuta(frame) if frame.args[1]~=nil and frame.args[1]~='' then return frame.args[1] end local item = mw.wikibase.getEntityObject() return updated(item,'P38',frame) end -- GET FLAG -- P41 thumb image function p.flag(frame) -- if frame.args[1]~=nil and frame.args[1]~='' then -- return frame.args[1] -- end -- local title="" - not using title local arg1 = frame.args[1] local item = mw.wikibase.getEntityObject(arg1) if item == nil then return end local flag = updated(item,'P41',frame) -- local title = mw.wikibase.sitelink(arg1) if flag ~= nil and flag ~= '' then return flag -- return "[[File:" .. flag .. "| thumb | 200px | " .. title .. "]]" end end -- Restituisce l'etichetta dell'elemento rappresentante la bandiera relativa all'elemento dell'articolo function p.bandiera_titolo(frame) local item = mw.wikibase.getEntityObject() if item~=nil then local claims = item.claims if claims~=nil and claims.P163~=nil and claims.P163[0]~=nil and claims.P163[1]==nil then return mw.wikibase.label('Q'..claims.P163[0].mainsnak.datavalue.value['numeric-id']) end end return mw.title.getCurrentTitle().text..' - Bandiera' end -- Restituisce la latitudine corrispondente all'articolo. function p.latitude(frame) return coords('latitude',frame.args[1]) end -- Restituisce la longitudine corrispondente all'articolo. function p.longitude(frame) return coords('longitude',frame.args[1]) end function p.disambig(frame) local item = mw.wikibase.getEntityObject() if item~=nil and item.descriptions~=nil then local desc = item.descriptions.en if desc~=nil and desc.value~=nil and desc.value:lower():find('disambiguation page')~=nil then return true end end return false end function p.instanceof(arg) arg = tonumber(arg.args[1] or arg) if item and item.claims and item.claims.P31 then local claims = item.claims.P31 for index, claim in pairs(claims) do if claim.mainsnak and claim.mainsnak.datavalue then local val = claim.mainsnak.datavalue.value if val and val['numeric-id'] and arg == val['numeric-id'] then return true end end end end return false end return p