Modulo:Webarchive/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ritardo elaborazione dell'articolo per includere le date automatiche
gestisco path internamente per semplificare la chiamata esterna
Riga 12:
 
local servizi = {
{ signature = 'archive.org', service = 'wayback', tailbracket = ' in %sInternet Archive%s', tracking = 'Categoria:Template Webarchive - collegamenti all\'Internet Archive' },
{ signature = 'webcitation.org', service = 'webcite', tailbracket = ' in %sWebCite%s', tracking = 'Categoria:Template Webarchive - collegamenti a WebCite' },
{ signature = 'archive.is', service = 'archiveis', tailbracket = ' in %sArchive.is%s', tracking = 'Categoria:Template Webarchive - collegamenti a archive.is' },
{ signature = 'archive.fo', service = 'archiveis', tailbracket = ' in %sArchive.is%s', tracking = 'Categoria:Template Webarchive - collegamenti a archive.is' },
{ signature = 'archive.today', service = 'archiveis', tailbracket = ' in %sArchive.is%s', tracking = 'Categoria:Template Webarchive - collegamenti a archive.is' },
{ signature = 'archive.il', service = 'archiveis', tailbracket = ' in %sArchive.is%s', tracking = 'Categoria:Template Webarchive - collegamenti a archive.is' },
{ signature = 'archive.ec', service = 'archiveis', tailbracket = ' in %sArchive.is%s', tracking = 'Categoria:Template Webarchive - collegamenti a archive.is' },
{ signature = 'archive[-]it.org', service = 'archiveit', tailbracket = ' in %sArchive-It%s' },
{ signature = 'arquivo.pt', tail = ' nel Portuguese Web Archive' },
{ signature = 'loc.gov', tailbracket = ' nella %sLibrary of Congress%s' },
Riga 82:
for i = n, 1, -1 do
c = value:byte( i, i )
if c >= 48 and c <= 57 then
c = c - 48
elseif c >= 65 and c <= 90 then
c = c - 55
elseif c >= 97 and c <= 122 then
c = c - 61
else
Riga 153:
 
--[[--------------------------< decodeWebciteDate >-----------------------
Ricava la data da un URI-pathURL a Webcite (es. www.webcitation.org/67xHmVFWP).
Restituisce false se l'URL è valido ma in formato senza data.
]]
function p.decodeWebciteDate(pathurl)
local path = mw.uri.new(url).path
local path_elements = mw.text.split(path, '/')
 
Line 180 ⟶ 181:
 
--[[--------------------------< snapDateToString >-----------------------
Ricava la data da un URI-pathURL a Wayback (es. web.archive.org/web/20160901010101/http://example.com ).
Gestisce anche le non cifre come "re_", "-" e "*".
]]
function p.decodeWaybackDate(pathurl)
local path = mw.uri.new(url).path
local snapdate = string.gsub(path, '^/w?e?b?/?', '') -- rimuove la sequenza iniziale "/web/" o "/"
local path_elements = mw.text.split(snapdate, '/')
Line 208 ⟶ 210:
local function serviceName(url_main, nolink)
local tracking = 'Categoria:Template Webarchive - altri archivi'
local bracketopen, bracketclose = nolink and '' or '[[', nolink and '' or ']]'
url_main.service = 'altri'
for _,servizio in ipairs(servizi) do
Line 223 ⟶ 225:
end
if url_main.tail == nil then
url_main.tail = ' asu ' .. url_main.host .. ' ' .. inlineRed('Errore: URL di servizio di archiviazione sconosciuto')
end
track[tracking] = 1
Line 278 ⟶ 280:
local function createRendering(url_main, ulx)
local sand
local day = url_main.date and mw.ustring.submatch(url_main.date, 1, 2'^%d+')
local article = (day == '8 ' or day == '11') and 'l\'' or 'il '
if not url_main.title and not url_main.date then
sand = mw.ustring.format('[%s Archiviato]%s.', url_main.url, url_main.tail)
Line 333 ⟶ 335:
local url_main = {}
url_main.url = url1
local uri1url_main.host = mw.uri.new(url1).host
url_main.host = uri1.host
serviceName(url_main, args.nolink)
 
Line 341 ⟶ 342:
if date then
date = formatDate(date)
local udate = url_main.service == 'wayback' and p.decodeWaybackDate(uri1url_main.pathurl) or
url_main.service == 'webcite' and p.decodeWebciteDate(uri1url_main.pathurl)
if udate and udate ~= date then
date = date .. inlineRed('<sup>[Data URL non combaciante: ' .. udate .. ']</sup>', 'warning')
end
elseif url_main.service == 'wayback' then
date = p.decodeWaybackDate(uri1url_main.pathurl) or inlineRed('Collegamento non valido', 'error')
elseif url_main.service == 'webcite' then
date = p.decodeWebciteDate(uri1url_main.pathurl)
if date == false then
date = inlineRed('Data mancante', 'warning')