Modulo:Prefisso telefonico
Vai alla navigazione
Vai alla ricerca
La documentazione per questo modulo può essere creata in Modulo:Prefisso telefonico/man
--[[ * Modulo che implementa il template Prefisso telefonico. ]]-- require('Modulo:No globals') local getArgs = require('Modulo:Arguments').getArgs local mDelink = require('Modulo:Delink') local mWikidata = require('Modulo:Wikidata') -- Configurazione local cfg = mw.loadData('Modulo:Prefisso telefonico/Configurazione') local p = {} local function getWikidataCategory(userval, wdval, from) local cat -- rimuove eventuali wikilink per il confronto userval = userval and mDelink._main({ userval }) wdval = wdval and mDelink._main({ wdval }) -- eventuale prefisso nazionale da ignorare nel confronto local prefnaz = mWikidata._getProperty({ 'P17', showprop = 'P474', from = from }) if userval then if not wdval then cat = 'P473 assente su Wikidata' elseif wdval == userval or (prefnaz and userval == string.format('(%s) %s', prefnaz, wdval)) then cat = 'P473 uguale su Wikidata' else cat = 'P473 differente su Wikidata' end elseif wdval then cat = 'P473 letta da Wikidata' end return string.format('[[Categoria:%s]]', cat) end -- Per l'utilizzo da altro modulo function p._main(args) local userval, wdval, cat -- valore utente e wikidata userval = args[1] wdval = mWikidata._getProperty({ 'P473', from = args.from }) -- se esiste una voce in itwiki per il valore Wikidata letto, crea il wikilink if wdval then local iso3166 = mWikidata._getProperty({ 'P17', showprop = 'P298', from = args.from }) local prefissi = cfg.prefissi[iso3166] if prefissi and prefissi[wdval] then wdval = prefissi[wdval] == true and string.format('[[%s]]', wdval) or string.format('[[%s|%s]]', prefissi[wdval], wdval) end end -- categorie di servizio if mw.title.getCurrentTitle().namespace == 0 then if not userval and not wdval and args.cat then cat = string.format('[[Categoria:%s]]', args.cat) elseif userval or wdval then cat = getWikidataCategory(userval, wdval, args.from) end end return (userval or wdval or '') .. (cat or '') end -- Entry-point per il template {{Prefisso telefonico}} function p.main(frame) return p._main(getArgs(frame, { parentOnly = true })) end return p