Modulo:Tracce/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
riscrivo per restituire sempre le cat di errore |
test abbr |
||
(9 versioni intermedie di un altro utente non mostrate) | |||
Riga 12:
end
-- Calcola e
local function getTrackLength(args, i)
local string_durata = args["Durata" .. i]
local minuti, secondi
if string_durata then
local string_minuti, string_secondi = mw.ustring.match(string_durata, "^(%d+):(%d%d)$")
minuti = tonumber(string_minuti)
secondi = tonumber(string_secondi)
else
minuti = tonumber(args["Minuti" .. i])
secondi =
tonumber(args["Secondi" .. i])
end
local durata = (minuti or 0) * 60 + (secondi or 0)
if (string_durata and durata == 0)
(not secondi and args["Secondi" .. i]) then
categories[#categories+1] = unknown_format
end
return durata, durata > 0 and string.format("%d:%02.f", minuti or 0, secondi or 0) or nil
end
Line 53 ⟶ 55:
table.insert(row_elements, titolo)
local featuring = args["Featuring" .. i]
if featuring then table.insert(row_elements, " <small>(<abbr title=featuring>feat.</abbr> " .. featuring .. ")</small>") end
local note = args["Note" .. i]
if note then table.insert(row_elements, " <small>(" .. note .. ")</small>") end
if durata
table.insert(row_elements, " – ")
table.insert(row_elements,
end
local AutoreTesto = args["Autore testo" .. i]
Line 137 ⟶ 139:
if visualizza_durata == "si" or visualizza_durata == "sì" then somma_durata = true end
local nums = {}
local validated_nums = {}
for k, v in pairs(args) do
local prefix, num = string.match(k, '^(%D+)([0-9]+)$')
if num and (num == '0' or num:sub(1,1) ~= '0') then
-- se il numero viene modificato da tonumber, è troppo alto
Line 145 ⟶ 148:
categories[#categories+1] = missing_title
end
if args[prefix .. num] and not validated_nums[num] then
validated_nums[num] = true
table.insert(nums, num)
end
Line 151 ⟶ 155:
end
table.sort(nums)
if #nums == 0 then
categories[#categories+1] = missing_title
-- categoria di tracciamento se la numerazione delle tracce è discontinua
categories[#categories+1] = discontinuous_num
end
Line 158 ⟶ 164:
-- estrae le tracce dai parametri e inserisce i valori nella tabella tracks
for k, num in ipairs(nums) do
local durata_track, durata_formattata = getTrackLength(args, num)
if args['Titolo' .. num] then
tracce = true
local new_track = track(args, num,
table.insert(tracks, new_track)
end
Line 224 ⟶ 230:
local args = {}
local log = {}
for k, v in pairs(pframe.args) do
if v ~= nil and v ~= '' then
if conversion_table[k] then -- Controlla se è un parametro non indicizzato args[conversion_table[k]] = v
else
-- estrae nome base e indice, se k=title1 allora prefix=title e num=1
local prefix, num = string.match(k, "^(%D+)(%d+)$")
if prefix and conversion_table_index[prefix] then -- controlla se è un parametro indicizzato
args[conversion_table_index[prefix] .. num] = v
elseif not num then -- non è neanche un parametro indicizzato, lo copia così com'è
args[k] = v
end
end
end
|