Module:Citar episódio/Testes

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.

]]

e.episodio = function(frame) -- 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, began = true, fim = true, ended = true }       end end

local config, args, A = tratarArgumentos(frame) config.CitationClass = '' config.usaIssue = true config.naoUsaPage = true local B   local sepc = set_style (A.Mode:lower)

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.Series ..  -- link, mas não URL else -- ok para wikiligar A.Chapter =  .. 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 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