Modulo:Interprogetto/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
genera un collegamento per ogni wikisource nella lingua originale di scrittura |
semplifico |
||
Riga 96:
-- Carica i dati da Wikidata se esistono
local self = {}
if not ignore_wikidata then
self.entity = mw.wikibase.getEntityObject()
end
Line 107 ⟶ 106:
self.article_link = {}
self.lingua = {}
if self.entity then
-- Imposta il corsivo se la pagina su Wikidata ha la proprietà P31 ("Istance of", [[wikidata:Property:P31]])
-- con valore corrispondente a un'opera, come definito in cfg.check_opera
self.corsivo = self:hasPropertyValue('P31', cfg.check_opera)
-- Considera disambigua se la pagina su Wikidata ha la proprietà P31 ("Istance of", [[wikidata:Property:P31]])
-- con valore 4167410 ("Wikimedia disambiguation page", [[wikidata:Q4167410]])
self.disambigua = self:hasPropertyValue('P31', '4167410')
-- Controlla se la voce è relativa a una categoria
self.is_category = self:hasPropertyValue('P31', '4167836')
self:loadCollegamenti()
end
return self
end
Line 161 ⟶ 155:
-- ============================================================================================================
function Wikidata_entity:loadCollegamenti()
for key_progetto, progetto in pairs(cfg.automatic_link) do
-- Carica i collegamenti di un progetto solo se non disambigua o tipo di progetto abilitato in disambigua
if not self.disambigua or cfg.parameters[key_progetto].abilita_in_disambigua then
for i, interwiki in ipairs(self:getInterwiki(progetto.interwiki, progetto.property_language)) do
local sitelink = self.entity:getSitelink(interwiki)
-- Dà sempre precedenza al sitelink se è una categoria
if sitelink and mw.ustring.find(sitelink, '^Category:') then
-- 'false' disabilita la consultazione della proprietà
self.from_property_category[key_progetto] = false
end
local claim
if progetto.property_category and self.from_property_category[key_progetto] ~= false then
claim = self:getClaim(progetto.property_category)
if claim then
self.collegamenti[key_progetto] = 'Category:' .. claim
self.from_property_category[key_progetto] = true
end
if sitelink then
if self.from_property_category[key_progetto] then
self.article_link[key_progetto] = sitelink
elseif self.lingua[interwiki] then
local lingua = self.lingua[interwiki]
key_progetto = string.format('%s_%s', key_progetto, lingua)
self.lingua[key_progetto] = lingua
self.collegamenti[key_progetto] = string.format('%s:%s', lingua, sitelink)
else
self.collegamenti[key_progetto] = sitelink
end
if self.entity.sitelinks[interwiki].badges and not self.lingua[interwiki] then
local badge_class = {}
local badge_title = {}
badge_class[#badge_class+1] = cfg.badges[badge_quality].class
badge_title[#badge_title+1] = cfg.badges[badge_quality].title
end
end
self.badge[key_progetto].class = table.concat(badge_class, ' ' )
self.
end
elseif not self.is_category and progetto.property_gallery and not self.from_property_category[key_progetto] then
claim = self:getClaim(progetto.property_gallery)
self.collegamenti[key_progetto] = claim
end
end
Line 220 ⟶ 212:
-- ============================================================================================================
function Wikidata_entity:hasPropertyValue(propertyId, values)
if
local claims = self.entity.claims[propertyId]
for _, claim in pairs(claims) do
Line 537 ⟶ 529:
default.etichetta = origArgs.etichetta
else
if entity.etichetta then
-- Elimina un eventuale "Categoria:" in fronte del nome
default.etichetta = mw.ustring.gsub(wikidata_label, '^Categoria:', '')
|