Módulo:Citar episódio
![]() | Este módulo é usado em aproximadamente 4 000 páginas. (Ver Wikipedia:Predefinições em alto risco) Para evitar sobrecargas desnecessárias ao servidor e outros transtornos, quaisquer mudanças devem ser previamente testadas, seja na subpágina de testes deste módulo, na subpágina de testes de módulos (ou ainda em sua subpágina de testes). Por favor, sempre considere expor eventuais mudanças na página de discussão, antes de implementá-las. |
Descrição
Este 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')
--[[--------------------------< 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
}
-- 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