Bahaipedia
Bahaipediaدانشنامه بهائی
Menu
Sobre Bahaipedia
Categorias
Ajuda
Página aleatória
Mudanças recentes
Noutros projetos
Ferramentas
Páginas afluentes
Alterações relacionadas
Carregar ficheiro
Páginas especiais
Versão para impressão
Hiperligação permanente
Informações da página
Módulo
Discussão
Ver histórico
Não autenticado
Discussão
Contribuições
Criar uma conta
Entrar
Navigation
Navigation
Navegación
Navigation
ナビゲーション
Điều hướng
导航
Navegação
ناوبری
Навигация
Sobre Bahaipedia
Categorias
Ajuda
Página aleatória
Mudanças recentes
Noutros projetos
Learn more
Weitere Informationen
Aprender más
En savoir plus
詳しく読む
Tìm hiểu thêm
了解更多
Saiba mais
یاد بگیرید بیشتر
Узнать больше
Fé Bahá'í
Bahá'u'lláh
‘Abdu’l-Bahá
Ensinamentos
Práticas
Tools
Werkzeuge
Herramientas
Outils
ツール
Công cụ
工具
Ferramentas
ابزارها
Инструменты
Páginas afluentes
Alterações relacionadas
Carregar ficheiro
Páginas especiais
Versão para impressão
Hiperligação permanente
Informações da página
Translations
Übersetzungen
Traducciones
Traductions
各言語版
Bản dịch
翻译
Traduções
به زبان‌های دیگر
Переводы

Módulo:Wayback

Fonte: Bahaipedia
Ir para:navegação, pesquisa

A documentação para este módulo pode ser criada na página Módulo:Wayback/doc

local p = {}

--[[--------------------------< inline_error >-----------------------

Render red error message inline (as opposed to the system error() in large font)
Add article to tracking category.

 ]]

function p.inline_error(arg, msg)
  return '<span style="font-size:100%" class="error citation-comment">Erro na predefinição wayback: Verifique <code style="color:inherit; border:inherit; padding:inherit;">&#124;' .. arg .. '=</code> value. ' .. msg .. '[[Categoria:!Páginas com erros na predefinição wayback]]</span>'
end

--[[--------------------------< trimArg >-----------------------

trimArg returns nil if arg is "" while trimArg2 returns 'true' if arg is ""
trimArg2 is for args that might accept an empty value, as an on/off switch like nolink=

 ]]

function p.trimArg(arg)
  if arg == "" or arg == nil then
    return nil
  else
    return mw.text.trim(arg)
  end
end
function p.trimArg2(arg)
  if arg == nil then
    return nil
  else
    return mw.text.trim(arg)
  end
end

--[[--------------------------< isdf >-----------------------

Given df argument, return "yes" or "no" confirming what it is
Default is "no". If df is nil or "", return "no".

 ]]

function isdf(df)

  if df == "yes" or df == "Yes" or df == "YES" or df == "y" or df == "Y" or df == "dmy" or df == "DMY" or df == "s" or df == "Sim" or df == "SIM" then
    return "yes"
  elseif df == "iso" or df == "ISO" then
     return "iso"
  end
  return "no"

end

--[[--------------------------< makedate >-----------------------

Given a year, month and day, convert into a full date while respecting df (dmy or mdy)

 ]]

function p.makedate(year, month, day, df)

  local nmonth, zmonth, zday
  local month_names = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"}

  if not year or year == "" or not month or month == "" or not day or day == "" then
    return nil
  end

  zmonth = month
  month = month:match("0*(%d+)")                                      -- strip leading 0
  if tonumber(month) < 1 or tonumber(month) > 12 then
    return year
  end
  nmonth = month_names[tonumber(month)]
--  nmonth = os.date("%B", os.time{year=2000, month=month, day=1} )     -- Month in name form      
  if not nmonth then
    return year
  end

  zday = day
  day = day:match("0*(%d+)")
  if tonumber(day) < 1 or tonumber(day) > 31 then
    return nmonth .. " " .. year
  end                                      

  if df == "yes" then
    return day .. " de " .. nmonth .. " de  " .. year
  elseif df == "iso" then
    return year .. "-" .. zmonth .. "-" .. zday
  else
    return day .. " de " .. nmonth .. " de  " .. year
  end
 

end


--[[--------------------------< wayback >-----------------------

Main function for Template:wayback

 ]]

function p.wayback(frame)

  local pframe = frame:getParent()
  local args = pframe.args

  local tname = "Wayback"                                 -- name of calling template. Change if template rename.

  local url = nil                                         -- source url (not archive.org url)
  local title = nil                                       -- title argument
  local df = nil                                          -- df argument
  local comma = nil                                       -- "," for mdy or "" for dmy
  local snapdate = nil                                    -- eg. "20160520000000"
  local snapdatelong = nil                                -- 14-digit 0-padded version of snapdate if it is truncated
  local fulldate = nil                                    -- eg. "May 20, 2016"
  local currdate = nil                                    -- today's date
  local urlhead = "https://web.archive.org/web/"
  local tail = nil
  local nolink = nil
 
                                                          -- URL argument (positional #1)

  url = p.trimArg(args[1]) or p.trimArg(args.url) or p.trimArg(args.site)                -- "site" for {{waybackdate}}
  if not url then
    return p.inline_error("url", "Vazio.")
  end
  local safe = url
  local l, count = string.gsub(safe, "archive.org/?w?e?b?/[0-9]+/http", "")              -- Count number of "archive.org"
  if count > 0 then
    return p.inline_error("url", "Deve ser o URL original não um URL archive.org.")
  end
 
                                                          -- Title argument (positional #2)

  title = p.trimArg(args[2]) or p.trimArg(args.title)

                                                          -- Date argument (positional #3)

  snapdate = p.trimArg(args[3]) or p.trimArg(args.date)
  if not snapdate or snapdate == "*" then
    snapdate = "*"
  else
    local safe = snapdate
    local starcount = 0
    snapdate = string.gsub(safe, "[a-z][a-z]_[0-9]?$", "")              -- Remove any trailing "re_" from date
    safe = snapdate
    snapdate = string.gsub(safe, "[-]", "")                             -- Remove dashes from date eg. 2015-01-01
    safe = snapdate
    snapdate, starcount = string.gsub(safe, "[*]$", "")                 -- Remove trailing "*" and re-add below after processing
    if not tonumber(snapdate) then
      return p.inline_error("date", "Devia ser snapshot ID de 14-dígitos na forma de YYYYMMDDhhmmss (código erro 1)")
    end
    local dlen = string.len(snapdate)
    if dlen < 4 then
      return p.inline_error("date", "Devia ser snapshot ID de 14-dígitos na forma de YYYYMMDDhhmmss (código erro 2)")
    end
    if dlen < 14 then
      snapdatelong = snapdate .. string.rep("0", 14 - dlen)
    else
      snapdatelong = snapdate
    end
    local year = string.sub(snapdatelong, 1, 4)
    local month = string.sub(snapdatelong, 5, 6)
    local day = string.sub(snapdatelong, 7, 8)
    if not tonumber(year) or not tonumber(month) or not tonumber(day) then
      return p.inline_error("date", "Devia ser snapshot ID de 14-dígitos na forma de YYYYMMDDhhmmss (código erro  3)")
    end
    if tonumber(month) > 12 or tonumber(day) > 31 or tonumber(month) < 1 then
      return p.inline_error("date", "Valor da data contêm um dia inválido ou mês. (código erro 4)")
    end
    currdate = os.date("%Y")
    if tonumber(year) > tonumber(currdate) or tonumber(year) < 1900 then
      return p.inline_error("date", "Data com ano inválido. (error code 5)")
    end

    if starcount == 1 then
      snapdate = snapdate .. "*"
    end

    df = isdf( p.trimArg(args.df) )
    if df == "yes" then
      comma = ""
    else
      comma = ","
    end

    fulldate = p.makedate(year, month, day, df)
 
    if not fulldate then
      return p.inline_error("date", "(error code 6)")
    end

  end
                                                          -- Nolink argument

  nolink = p.trimArg2(args.nolink)
  if not nolink then
    tail = " no [[Wayback Machine]]"
  else
    tail = " no Wayback Machine"
  end

                                                          -- Render

  if not title and not fulldate then  -- No title. No date
    return "[" .. urlhead .. snapdate .. "/" .. url .. " Cópia arquivada]" .. tail
  elseif not title and fulldate then  -- No title. Date.
    return "[" .. urlhead .. snapdate .. "/" .. url .. " Arquivado em] " .. fulldate .. comma ..  tail .. "."
  elseif title and not fulldate then  -- Title. No date.
    return "[" .. urlhead .. snapdate .. "/" .. url .. " " .. title .. "]" .. tail
  elseif title and fulldate then          -- Title. Date.
    return "[" .. urlhead .. snapdate .. "/" .. url .. " " .. title .. "]" .. tail .. "&#32;(arquivado em " .. fulldate .. ")"
  end

  error("Error in [[:Predefinição:"..tname.."]]: Problema desconhecido. Por favor relate na página de discussão desta predefinição (código 7)")

end

return p
Obtida de "https://pt.bahaipedia.org/index.php?title=Módulo:Wayback&oldid=4785"
Esta página foi editada pela última vez às 03h59min de 26 de novembro de 2023.
Conteúdo disponibilizado nos termos da Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License, salvo indicação em contrário.
Política de privacidade
Sobre a wiki Bahaipedia
Exoneração de responsabilidade
Powered by MediaWiki