Modulo:Controllo Wikidata: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuovo modulo
 
il controllo va fatto al netto della formattazione dell'output
 
(17 versioni intermedie di 3 utenti non mostrate)
Riga 3:
]]--
require('Modulo:No globalsstrict')
local getArgs = require('Modulo:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
local p = {}
 
-- Confronta due file multimediali su Commons senza tenere conto di eventuali underscore
local function getWikidataCategory(wdval, userval, catprefix, args)
local function compareCommonsMediaFile(name, name2)
local genletto = { ms = 'letto', mp = 'letti', fs = 'letta', fp = 'lette' }
return name:gsub('_', ' ') == name2:gsub('_', ' ')
end
 
-- Confronta due URL senza tenere conto di un eventuale slash finale (solo se uno) e del protocollo http/https
local function compareURL(url1, url2)
local ret = false
url1, url2 = url1:match('^https?://(.*)$'), url2:match('^https?://(.*)$')
if args.idurl1 ~=and 'no'url2 then
local n, n2 = select(2, url1:gsub('/', '')), select(2, url2:gsub('/', ''))
if n <= 1 and n2 <= 1 then
ret = url1:gsub('/$', '') == url2:gsub('/$', '')
else
ret = url1 == url2
end
end
return ret
end
 
local function getWikidataCategorygetCategory(wdval, userval, catprefix, args)
local comparefunc = function(v1, v2) return v1 == v2 end
local cat
 
-- consente di definire funzioni di confronto per proprietà specifiche
-- (oppure tramite eventuali parametri)
if mWikidata._getDatatype({ args[1] }) == 'file multimediale su Commons' then
comparefunc = compareCommonsMediaFile
elseif args[1] == 'P856' then
comparefunc = compareURL
end
 
if userval then
if not wdval then
cat = string.format('%s assente su Wikidata', catprefixargs[1])
elseif wdvalargs.uguale ~== 'no' and comparefunc(wdval, userval) then
cat = args.uguale == 'sì' and string.format('%s uguale asu Wikidata', catprefixargs[1])
elseif args.diff ~= 'no' then
cat = string.format('%s differente dasu Wikidata', catprefixargs[1])
end
elseif wdval then
cat = string.format('%s %sletta da Wikidata', catprefix, args.genere and genletto[args.genere1] or 'letto')
end
return cat and string.format('[[Categoria%sCategoria:%s]]', cat)args.debug and ':' or '', cat)
end
-- Per l'utilizzo da altro modulo
function p._main(args)
local wdvalwdprop, userval, catprefix = args[1], args[2], args[3]
-- namespace 0, e proprietà Wikidata e prefisso categoria obbligatori
if mw.title.getCurrentTitle().namespace ~= 0(tonumber(args.ns) or not wdval0) or not catprefixwdprop then
return nil
end
 
local wdval = mWikidata._getProperty({
if args.id ~= 'no' then
wdprop,
wdval = mWikidata._getProperty({
unit = args[1].unit,
showunit = args['unità'] ~= 'no'args.showunit,
formatnumformatting = args['unità'] ~= 'no'.formatting,
from = args.debug and args.from
})
end})
 
return getWikidataCategorygetCategory(wdval, userval, catprefix, args)
end
-- Entry-pointFunzione per il template {{Controllo Wikidata}}
function p.main(frame)
return p._main(getArgs(frame, { parentOnly = true }))
end