Modulo:Prefisso telefonico
Instruçioìn pe l'ûzo
Quésto o l'é 'n mòdolo scrîto in Lua. E instruçioìn chi de sótta són contegnûe inta sotopàgina Modulo:Prefisso telefonico/man (modìfica · stöia)
Sandbox: Modulo:Prefisso telefonico/sandbox (modìfica · stöia) · Test: Modulo:Prefisso telefonico/test (modìfica · stöia · ezegoi)
Quésto o l'é 'n mòdolo scrîto in Lua. E instruçioìn chi de sótta són contegnûe inta sotopàgina Modulo:Prefisso telefonico/man (modìfica · stöia)
Sandbox: Modulo:Prefisso telefonico/sandbox (modìfica · stöia) · Test: Modulo:Prefisso telefonico/test (modìfica · stöia · ezegoi)
Sto mòdolo chi o sèrve pò-u fonçionaménto do template {{Prefisso telefonico}}.
O mòdolo o gh'à 'na sotopàgina de configuraçión, sàiva a dî Modulo:Prefisso telefonico/Configurazione.
--[[
* Modulo che implementa il template Prefisso telefonico.
]]--
require('strict')
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 asénte in sce Wikidata'
elseif wdval == userval or (prefnaz and userval == string.format('(%s) %s', prefnaz, wdval)) then
cat = 'P473 pægio in sce Wikidata'
else
cat = 'P473 despægio in sce Wikidata'
end
elseif wdval then
cat = 'P473 lètta da Wikidata'
end
return string.format('[[Categorîa:%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('[[Categorîa:%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