<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AWebsite_oficial</id>
	<title>Módulo:Website oficial - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AWebsite_oficial"/>
	<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Website_oficial&amp;action=history"/>
	<updated>2026-09-10T06:52:17Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Website_oficial&amp;diff=6367&amp;oldid=prev</id>
		<title>Tavoraadmin: Importando predefinição/módulo da Wikipédia em português para manter layout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Website_oficial&amp;diff=6367&amp;oldid=prev"/>
		<updated>2026-09-06T05:51:28Z</updated>

		<summary type="html">&lt;p&gt;Importando predefinição/módulo da Wikipédia em português para manter layout&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local makeUrl = require(&amp;#039;Módulo:URL&amp;#039;)._url&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Wrapper para pcall que retorna nil em caso de falha.&lt;br /&gt;
local function quickPcall(func)&lt;br /&gt;
	local success, result = pcall(func)&lt;br /&gt;
	if success then&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Obtém a classificação para uma tabela de propriedade do Wikidata. Retorna 1, 0 ou -1, na&lt;br /&gt;
-- ordem de classificação.&lt;br /&gt;
local function getRank(prop)&lt;br /&gt;
	local rank = prop.rank&lt;br /&gt;
	if rank == &amp;#039;preferred&amp;#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	elseif rank == &amp;#039;normal&amp;#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	elseif rank == &amp;#039;deprecated&amp;#039; then&lt;br /&gt;
		return -1&lt;br /&gt;
	else&lt;br /&gt;
		-- Sem classificação ou indefinida classificação é dada como &amp;quot;normal&amp;quot;.&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Verifica se uma propriedade wikidata é qualificado como sendo em português.&lt;br /&gt;
local function isPortuguese(prop)&lt;br /&gt;
	local ret = quickPcall(function ()&lt;br /&gt;
		for i, lang in ipairs(prop.qualifiers.P407) do&lt;br /&gt;
			if lang.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 5146 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end)&lt;br /&gt;
	return ret == true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Obtém a URL do website oficial da Wikidata.&lt;br /&gt;
local fetchWikidataUrl&lt;br /&gt;
fetchWikidataUrl = function()&lt;br /&gt;
	-- Obtem objetos para todos os websites oficiais no Wikidata.&lt;br /&gt;
	local websites = quickPcall(function ()&lt;br /&gt;
		return mw.wikibase.getEntityObject().claims.P856&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Clonar os objetos no caso de outro código precisar deles em sua ordem original.&lt;br /&gt;
	websites = websites and mw.clone(websites) or {}&lt;br /&gt;
&lt;br /&gt;
	-- Adicionar o ídice da tabela para os objetos em caso dele ser necessário no gênero.&lt;br /&gt;
	for i, website in ipairs(websites) do&lt;br /&gt;
		website._index = i&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Classificar os sites, primeiro por posto mais alto, e depois por sites em&lt;br /&gt;
	-- língua inglesa, seguida pela posição original do site na&lt;br /&gt;
	-- lista de propriedades. Quando estiver pronto, obter a URL do objeto&lt;br /&gt;
	-- mais alto-classificadas.&lt;br /&gt;
	table.sort(websites, function(ws1, ws2)&lt;br /&gt;
		local r1 = getRank(ws1)&lt;br /&gt;
		local r2 = getRank(ws2)&lt;br /&gt;
		if r1 ~= r2 then&lt;br /&gt;
			return r1 &amp;gt; r2&lt;br /&gt;
		end&lt;br /&gt;
		local e1 = isPortuguese(ws1)&lt;br /&gt;
		local e2 = isPortuguese(ws2)&lt;br /&gt;
		if e1 ~= e2 then&lt;br /&gt;
			return e1&lt;br /&gt;
		end&lt;br /&gt;
		return ws1._index &amp;lt; ws2._index		&lt;br /&gt;
	end)&lt;br /&gt;
	local url = quickPcall(function ()&lt;br /&gt;
		return websites[1].mainsnak.datavalue.value&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Armazenar em cache o resultado até que nós só fazer o trabalho pesado, uma vez por #invoke.&lt;br /&gt;
	fetchWikidataUrl = function ()&lt;br /&gt;
		return url&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Renderizar o link de URL, mais outra saída visível.&lt;br /&gt;
local function renderUrl(options)&lt;br /&gt;
	if not options.url then&lt;br /&gt;
		return &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;Nenhuma URL encontrada. Por favor especifique uma URL aqui ou adicione uma no Wikidata.&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	ret[#ret + 1] = string.format(&lt;br /&gt;
		&amp;#039;&amp;lt;span class=&amp;quot;official-website&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		makeUrl(options.url, options.display)&lt;br /&gt;
	)&lt;br /&gt;
	if options.format == &amp;#039;flash&amp;#039; then&lt;br /&gt;
		ret[#ret + 1] = mw.getCurrentFrame():expandTemplate{&lt;br /&gt;
			title = &amp;#039;Nota do link&amp;#039;,&lt;br /&gt;
			args = {note = &amp;#039;Requer [[Adobe Flash Player]]&amp;#039;}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if options.mobile then&lt;br /&gt;
		ret[#ret + 1] = &amp;#039;(&amp;#039; .. makeUrl(options.mobile, &amp;#039;Versão móvel&amp;#039;) .. &amp;#039;)&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &amp;#039; &amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Renderizar a categoria de acompanhamento.&lt;br /&gt;
local function renderTrackingCategory(url)&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace ~= 0 then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local category&lt;br /&gt;
	if not url then&lt;br /&gt;
		category = &amp;#039;!Website oficial com URL em falta&amp;#039;&lt;br /&gt;
	elseif fetchWikidataUrl() then&lt;br /&gt;
		if url and url ~= fetchWikidataUrl() then&lt;br /&gt;
			category = &amp;#039;!Website oficial diferente no Wikidata e na Wikipedia&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		category = &amp;#039;!Website oficial que não está no Wikidata&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return category and string.format(&amp;#039;[[Categoria:%s]]&amp;#039;, category) or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local url = args[1] or args.URL or fetchWikidataUrl()&lt;br /&gt;
	local lang = mw.getCurrentFrame():callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; )&lt;br /&gt;
	local linkText = {&lt;br /&gt;
		[&amp;#039;pt&amp;#039;] = &amp;#039;Sítio oficial&amp;#039;,&lt;br /&gt;
		[&amp;#039;pt-br&amp;#039;] = &amp;#039;Página oficial&amp;#039;,&lt;br /&gt;
		[&amp;#039;en&amp;#039;] = &amp;#039;Official website&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	local formattedUrl = renderUrl{&lt;br /&gt;
		url = url,&lt;br /&gt;
		display = args[2] or args.name or linkText[lang] or linkText[&amp;#039;pt&amp;#039;],&lt;br /&gt;
		mobile = args.mobile,&lt;br /&gt;
		format = args.format&lt;br /&gt;
	}&lt;br /&gt;
	return formattedUrl .. renderTrackingCategory(url)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Módulo:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &amp;#039;Predefinição:Website oficial&amp;#039;&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Tavoraadmin</name></author>
	</entry>
</feed>