Modulo:FictionTV/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Omega Bot (discussione | contributi)
m Bot: rimuovo no globals obsoleto
 
(44 versioni intermedie di 2 utenti non mostrate)
Riga 3:
]]--
 
require('Modulo:No globalsstrict')
 
local getArgs = require('Modulo:Arguments').getArgs
local errorCategory = 'Errori di compilazione del template FictionTV'
local p = {}
 
-- Parsifica il parametro annoprimatvanno prima visione
local function parse_annoprimatvannoprimavisione(annoprimatvanno)
local inizio, produzione, fine, err
 
-- annoprimatvfiction senzatrasmesse intervalloin un solo anno, esempio "[[2010]]" (con o senza wikilink)
inizioif = annoprimatvanno:match('^%[?%[?(%d%d%d%d)%]?%]?$') then
inizio = anno:match('^%[?%[?(%d%d%d%d)%]?%]?$')
if inizio then
fine = inizio
-- intervallofiction tipotrasmesse su più anni, esempio "[[2010]]-[[2015]]" (con o senza wikilink)
elseif mw.ustring.match(annoprimatvanno, '^%[?%[?%d%d%d%d%]?%]?%s*[–-]%s*%[?%[?%d%d%d%d%]?%]?$') then
inizio, fine = mw.ustring.match(annoprimatvanno, '^%[?%[?(%d%d%d%d)%]?%]?%s*[–-]%s*%[?%[?(%d%d%d%d)%]?%]?$')
-- intervallofiction tipoin corso "[[2010]] - in produzione/corso" (con o senza wikilink)
elseif mw.ustring.match(annoprimatvanno, '^%[?%[?%d%d%d%d%]?%]?%s*[–-]%s*in produzione$') or
mw.ustring.match(annoprimatvanno, '^%[?%[?%d%d%d%d%]?%]?%s*[–-]%s*in corso$') then
inizio = annoprimatvanno:match('^%[?%[?(%d%d%d%d)%]?%]?')
produzione = true' – in produzione'
end
 
-- verifica chel'anno di debutto sia rilevato e gli anni di inizio e fine siano compresi tra 18801900 e 20302050
inizio = inizio and tonumber(inizio)
fine = fine and tonumber(fine)
if not inizio or (inizio and (inizio <= 18801900 or inizio >= 2030))2050 or
(fine and not produzione and (fine <= 18801900 or fine >= 20302050)) then
err = true
end
Line 39 ⟶ 38:
 
-- Funzione per {{#invoke:FictionTV|categorie_anno}}
-- Restituisce un formato standard per il parametro anno prima visione e le categorie
function p.categorie_anno(frame)
local args, inizio, produzione, fine, tipofiction, err, cat, finecat
local ret = {}
 
args = getArgs(frame)
 
-- con il parametro nocatperanno restituisce direttamente anno prima visione
-- annoprimatv e tipofiction sono obbligatori
if args.annoprimatvnocatperanno and== args.tipofiction'true' then
return args['anno prima visione']
inizio, produzione, fine, err = parse_annoprimatv(args.annoprimatv)
end
 
-- annoprimatvanno prima visione e tipofictiontipo fiction sono obbligatori
if args['anno prima visione'] and args['tipo fiction'] then
inizio, produzione, fine, err = parse_annoprimatvannoprimavisione(args.annoprimatv['anno prima visione'])
tipofiction = args['tipo fiction']:lower()
else
err = true
Line 53 ⟶ 60:
if err then
cat = errorCategory
elseif args.tipofiction:match( == '[Ww]ebseriewebserie') then
-- per le webserie non èsono attualmente categorizzata pergenerate annocategorie
elseif args.tipofiction:match('[Mm]iniserie [Tt][Vv]== ')miniserie and iniziotv' then
cat = 'Miniserie televisive del ' .. inizio
elseif args.tipofiction:match('[Ff]ilm [Tt][Vv]== ')film and iniziotv' then
cat = 'Film per la televisione del ' .. inizio
elseif args.tipofiction:match( == '[Ss]erieserie [Tt][Vv]tv') then
if inizio then
cat = 'Serie televisive iniziate nel ' .. inizio
Line 68 ⟶ 75:
finecat = 'Serie televisive terminate nel ' .. fine
end
elseif args.tipofiction:match( == '[Ss]erialserial [Tt][Vv]tv') then
if inizio then
cat = 'Serial televisivi iniziati nel ' .. inizio
Line 79 ⟶ 86:
end
 
if mw.title.getCurrentTitle().namespace == 0 or args.debug then
cat = cat and string.format('[[%sCategoria:%s]]', (args.debug and ':' or ''), cat) or ''
if cat then
finecat = finecat and string.format('[[%sCategoria:%s]]', (args.debug and ':' or ''), finecat) or ''
inizio = inizio and table.insert(ret, string.format('[[Categoria:%s]]', iniziocat))
 
end
return cat .. ((args.debug and finecat ~= '') and ' ' or '') .. finecat
if finecat then
end
table.insert(ret, string.format('[[Categoria:%s]]', finecat))
 
end
-- Funzione per {{#invoke:FictionTV|visualizzazione_anno}}
end
function p.visualizzazione_anno(anni)
if inizio then
local args, inizio, produzione, fine, annofine, inproduzione
table.insert(ret, string.format('[[%s]]', inizio))
 
end
args = getArgs(anni)
if fine and fine ~= inizio then
annofine = annofine and table.insert(ret, string.format('-[[%s]]', annofinefine)) or ''
inizio, produzione, fine = parse_annoprimatv(args.annoprimatv)
if fine ~= inizio then
annofine = fine
end
if produzione then
inproduzione = ' – intable.insert(ret, produzione')
end
inizio = inizio and string.format('[[%s]]', inizio)
annofine = annofine and string.format('-[[%s]]', annofine) or ''
inproduzione = inproduzione and string.format('%s', inproduzione) or ''
 
return args.debug and table.concat(ret):gsub('%[%[Cat(.-)%]%]', '[[:Cat%1]]<br />') or
return inizio, annofine, inproduzione
table.concat(ret)
end