Modulo:Interprogetto/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
miglioramento gestione link a categorie su commons |
||
Riga 3:
local p = {} -- per l'esportazione delle funzioni del modulo
local cfg = {}
local root = mw.html.create('') -- radice del markup html
local debug = {} -- per debug
Riga 101:
self.collegamenti = {}
self.badge = {}
self.from_property_category = {}
self:loadCollegamenti()
-- Imposta il corsivo se la pagina su Wikidata ha la proprietà P31 ("Istance of", [[wikidata:Property:P31]])
Riga 108 ⟶ 109:
-- 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', 'Q4167836')
return self
end
Riga 127 ⟶ 130:
-- Carica i collegamenti di un progetto solo se non disambigua o tipo di progetto abilitato in disambigua
if not self.disambigua or cfg.progetti[key_progetto].abilita_in_disambigua then
for _, badge_quality in
end▼
end
self.badge[key_progetto] = {}▼
self.badge[key_progetto].class = table.concat(badge_class, ' ' )▼
self.badge[key_progetto].title = table.concat(badge_title, ', ' )▼
end
end
elseif progetto.property_category then
Riga 154 ⟶ 155:
and self.entity.claims[property_id][1].mainsnak.datavalue.type == 'string' then
self.collegamenti[key_progetto] = 'Category:' .. self.entity.claims[property_id][1].mainsnak.datavalue.value
end
end
Riga 372 ⟶ 374:
root:newline()
root:wikitext(progetto:Link())
end
end
-- ============================================================================================================
-- Confronta i collegamenti manuali con quelli automatici e genera le categorie di classificazione
-- se presenti in configurazione
-- ============================================================================================================
function check_with_wikidata(key_progetto, entity, collegamento)
local entity_collegamento = entity.collegamenti[key_progetto]
if entity.is_category then
elseif entity[key_progetto].from_property_category then
-- Segnala che il collegamento compilato manualmente è diverso da quello in Wikidata (commons category invece di altri progetti)
add_category(cfg.automatic_link[key_progetto].category_wikidata_property_diff)
else
-- Segnala che il collegamento compilato manualmente è diverso da quello in Wikidata
add_category(cfg.automatic_link[key_progetto].category_wikidata_diff)
end
end
Riga 379 ⟶ 406:
-- ============================================================================================================
function p.interprogetto(frame)
-- se chiamata da una sandbox carica la configurazione della sandbox
Riga 497 ⟶ 525:
if cfg.parameters[key_progetto] and cfg.automatic_link[key_progetto] and entity.entity then
if not entity.disambigua or cfg.parameters[key_progetto].abilita_in_disambigua then
▲ if not is_defined(entity_collegamento) then
▲ if is_defined(collegamento) then
▲ -- Segnala che è presente il collegamento compilato manualmente ma non quello in Wikidata
▲ add_category(cfg.automatic_link[key_progetto].category_wikidata_missing)
▲ end
▲ elseif tostring(mw.uri.localUrl(collegamento)) ~= tostring(mw.uri.localUrl(entity_collegamento)) then
▲ -- Segnala che il collegamento compilato manualmente è diverso da quello in Wikidata
▲ add_category(cfg.automatic_link[key_progetto].category_wikidata_diff)
▲ end
end
end
Riga 554 ⟶ 573:
'Errori di compilazione del template Interprogetto - collegamenti in disambigua')
elseif #progetti == 0 then
--add_error('Template interprogetto vuoto e senza dati da recuperare da Wikidata', 'Errori di compilazione del template Interprogetto - template vuoto')
add_error('', 'Errori di compilazione del template Interprogetto - template vuoto')
else
local nobarra = origArgs.nobarra and origArgs.nobarra:lower()
|