Módulo:Citar episódio/Testes
Este módulo pode ter sua documentação deficiente. Por favor, documente-o ou melhore suas explicações caso o saiba usar ou tenha conhecimentos para tal. |
Esta é a página de testes de módulos de Módulo:Citar episódio (dif). |
Descrição
editarEste módulo destina-se a proporcionar funções básicas da predefinição {{Citar episódio}}
.
Outra documentação:
local e = require('Módulo:Citação/CS1/Testes')
--[[--------------------------< e . e p i s o d i o >------------------------------------------------------
Este é o método principal da predefinição {{citar episódio}}.
]]
e.episodio = function(frame)
-- lista de parâmetros usados apenas neste módulo
frame.whitelist = {
['episódio'] = true,
episodio = true,
episode = true,
unique_arguments = true
}
-- suporte aos antigos parâmetros "início" e "fim" da versão anterior ao código em Lua
local airDate
do
local tmpFrame = frame:getParent()
local inicio = tmpFrame.args['início'] or tmpFrame.args.began
local fim = tmpFrame.args.fim or tmpFrame.args.ended
if (inicio and fim) then
airDate = inicio .. ' – ' .. fim
end
if inicio or fim then
frame.whitelist['início'] = true
frame.whitelist.began = true
frame.whitelist.fim = true
frame.whitelist.ended = true
end
end
local config, args, A = tratarArgumentos(frame)
config.CitationClass = ''
config.usaIssue = true
config.naoUsaPage = true
local sepc = set_style (A.Mode:lower())
table.insert(cfg.aliases.Issue, 'episódio')
table.insert(cfg.aliases.Issue, 'episodio')
table.insert(cfg.aliases.Issue, 'episode')
cfg.aliases.ChapterURL = cfg.aliases.URL
--[[ isto é apenas para forçar o upvalue da tabela 'origin' do metadados de
'A' a carregar o nome do alias usado pelo parâmetro em tal tabela, se o
atributo A.URL receber atribuição antes disso, A:ORIGIN('URL') será nil
]]
A:ORIGIN('URL')
A:ORIGIN('Chapter')
-- verefica wikimarkup em |series-link= ou em |series= quando |series-link= estiver definido
link_title_ok (A.SeriesLink, A:ORIGIN ('SeriesLink'), A.Series, 'series')
local s, n = {}, {};
if is_set(A.Network) then table.insert(n, A.Network); end
if is_set(A.Station) then table.insert(n, A.Station); end
A.ID = table.concat(n, sepc .. ' ');
if not is_set(A.AirDate) then
A.AirDate = airDate or ''
end
if not is_set (A.Date) and is_set (A.AirDate) then
A.Date = A.AirDate
end
--[[ ou um ou outro
if is_set (A.Season) and is_set (A.SeriesNumber) then
-- adiciona mensagem de erro
table.insert( z.message_tail, { set_error('redundant_parameters', {wrap_style
('parameter', 'season') .. ' e ' .. wrap_style ('parameter', 'seriesno')}, true)})
A.SeriesNumber = '' -- esvaziar; preferir |season= sobre |seriesno=
end]]
-- monta uma tabela de partes concatenadas depois no parâmetro Series
if is_set(A.Season) then table.insert(s, wrap_msg ('season', A.Season, sepc == ',')); end
if is_set(A.SeriesNumber) then table.insert(s, wrap_msg ('series', A.SeriesNumber, sepc == ',')); end
if is_set(A.Issue) then table.insert(s, wrap_msg ('episode', A.Issue, sepc == ',')); end
A.Issue = '' -- esvaziar porque este não é um parâmetro único
A.Chapter = A.Title -- promove o parâmetro title para chapter
A.ScriptChapter = A.ScriptTitle
A.TransChapter = A.TransTitle
A.Title = A.Series -- promove series para title
A.TitleLink = A.SeriesLink
-- esta é a concatenação de season, seriesno, episode number
A.Series = table.concat(s, sepc .. ' ')
if is_set (A.TitleLink) then
-- se ambos estão definidos, URL liga episódio;
if is_set (A.ChapterURL) then
-- series liga com A.TitleLink (episodelink -> A.TitleLink -> ChapterLink) feio
A.Series = '[[' .. A.TitleLink .. '|' .. A.Series .. ']]'
-- link, mas não URL
else
-- ok para wikiligar
A.Chapter = '[[' .. A.TitleLink .. '|' .. A.Chapter .. ']]'
end
end
A.URL = '' -- esvaziar
A.TransTitle = ''
A.ScriptTitle = ''
-- testa se a citação está sem título
if not is_set(A.Title) then
table.insert(z.message_tail, { set_error('citation_missing_title', {'series'}, true)})
end
config.TituloDispensavel = true -- não precisa testar isso posteriormente em citation0
-- Função com o código abstraído
local B
A, B = citation0( config, args, A)
B.tcommon = safe_join( {A.Title, A.TitleNote, A.TitleType, A.Series, A.Transcript
, A.Language, A.Edition, B.Publisher}, sepc )
config.CitationClass = 'episode'
B.config = config
return textoFinal(A, B)
end
return e