Módulo:Diálogo

De RuneScape Wiki
Ir para navegação Ir para pesquisar
Documentação do módulo
Esta documentação é transcluída de Predefinição:Sem documentação/doc. [editar] [atualizar]
Este módulo não possui nenhuma documentação. Por favor, considere adicionar uma documentação em Módulo:Diálogo/doc. [editar]
local p = {}

function p.invoke_main(frame)
	local args = frame:getParent().args
	return p.main(args)
end

function p.main(args)
	local dtype = string.lower( args[1] or '' )
	local pagetitle = mw.title.getCurrentTitle()
	local pagename = pagetitle.text
	local basepagename = pagetitle.baseText
	local ns116 = pagetitle.namespace == 116  -- Transcript namespace
	local linkarg = args.link
	local link = '[[' .. ( linkarg or pagename ) .. ']]'
	local linkb = args.linkb
	local linkband = linkb and ( '[[' .. linkb .. ']] and ' ) or ''
	local title = args.title or pagename
	local displaynumber = dtype == 'museumdisplay' and string.gsub(pagename,'[^%d]', '') or ''
	
	local sentences = {
		['caso'] = 'diálogo relacionado ao caso ' .. link,
		['documentocaso'] = 'a transcrição do ' .. link .. ' relacionado ao caso [[' .. (linkb or '') .. ']]',
		['diáriodg'] = 'a transcrição de ' .. linkband .. link,
		['irl'] = 'a transcript related to ' .. linkband .. link,
		['objeto'] = 'a transcrição relacionada a ' .. linkband .. link,
		['mistério'] = 'diário relacionado ao [[mistério]] de [[Arqueologia]] ' .. link,
		['diáriodemissão'] = 'diálogo relacionado a ' .. linkband .. '[[' .. (linkarg or basepagename) .. ']]',
		['pesquisa'] = 'a transcrição da [[pesquisa]] de [[Arqueologia]] chamada ' .. link,
		['cenário'] = 'diálogo relacionado a ' .. linkband .. 'o cenário interativo ' .. link,
		['viagem'] = 'diálogo relacionado a ' .. linkband .. 'a viagem ' .. link
	}
	local defaultText = 'diálogos relacionados a ' .. linkband .. link
	local source = 'O conteúdo abaixo é copiado do \'\'RuneScape\'\' e seu copyright pertence à [[Jagex]].'
	if dtype == 'irl' then
		source = 'O conteúdo abaixo foi transcrevido de um ato da vida real pela [[Jagex]].'
	end
	
	local startTable = '{| class="messagebox standard-talk plainlinks" style="border-left:none; text-align:center;"\n|-\n| '
	local line = 'Essa página contém ' .. ( sentences[dtype] or defaultText ) .. '.'
	local endTable = '<br clear="all" /><div style="font-size:0.85em; line-height:1.4em;">' .. source .. '</div>\n|-\n|}'
	
	local header = startTable .. line .. endTable
	
	local cats = {
		['caso'] = {'Trasncrição de caso'},
		['documentocaso'] = {'Trasncrição de caso', 'Transcrições de objetos', 'Transcrições não faladas'},
		['diáriodg'] = {'Transcrição de diário de Dungeon', 'Transcrições de objetos', 'Transcrições não faladas'},
		['evento'] = {'Transcrição de evento'},
		['familiar'] = {'Diálogo de familiar'},
		['irl'] = {'Transcrições da vida real'},
		['objeto'] = {'Transcrições de objetos', 'Transcrições não faladas'},
		['minimissão'] = {'Transcrição de minimissão'},
		['música'] = {'Transcrição de música', 'Transcrições não faladas'},
		['mistério'] = {'Transcrição de mistério'},
		['npc'] = {'Diálogo de NPC'},
		['pet'] = {'Diálogo de pet'},
		['missão'] = {'Transcrição de missão'},
		['diáriodemissão'] = {'Transcrição de diário de missão', 'Transcrições não faladas'},
		['pesquisa'] = {'Transcrição de pesquisa', 'Transcrições não faladas'},
		['saga'] = {'Transcrição de Saga Fremennik'},
		['cenário'] = {'Transcrição de cenário'},
		['viagem'] = {'Transcrição de viagem'}
	}
	
	local setcat = ''
	local displayTitle = ''
	if ns116 then
		local cat = cats[dtype] or {'Transcrição diversa'}
		setcat = '[[Categoria:' .. table.concat(cat, ']][[Categoria:') .. ']]'
		
		local titleTypeIds = {
			['familiar'] = 1,
			['npc'] = 1,
			['pet'] = 1,
			['objeto'] = 2,
			['minimissão'] = 2,
			['misc'] = 2,
			['missão'] = 2,
			['saga'] = 2,
			['diáriodemissão'] = 3
		}
		local titleTypes = {
			'Diálogo para ' .. title,
			'Transcrição de ' .. title,
			'Transcrição do diário para ' .. basepagename .. '.'
		}
		local newTitle = titleTypes[ titleTypeIds[dtype] or 2 ]
		displayTitle = mw.getCurrentFrame():callParserFunction{ name = 'DISPLAYTITLE', args = { newTitle } }
	end
	
	return header .. setcat .. displayTitle
end

return p