Ir para o conteúdo

Módulo:Transclusion count

De Wiki TokuDrive
Revisão de 05h02min de 5 de julho de 2026 por Tavoraadmin (discussão | contribs) (Importando predefinição/módulo da Wikipédia em português para manter layout)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

local p = {}

function p._fetch(args) local template = nil local return_value = nil

-- Usa o parâmetro "demo" se ele existir, caso não, usa o nome da predefinição atual local namespace = mw.title.getCurrentTitle().namespace if args["demo"] and args["demo"] ~= "" then template = mw.ustring.gsub(args["demo"],"^[Pp]redefinição:","") elseif namespace == 10 then -- Espaço nomeado de predefinição (Template) template = mw.title.getCurrentTitle().text elseif namespace == 828 then -- Espaço nomeado de módulo (Module) template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text) end

-- Se estiver no espaço nomeado de predefinição ou de módulo , verifica a contagem em /data if template ~= nil then namespace = mw.title.new(template, "Predefinição").namespace if namespace == 10 or namespace == 828 then template = mw.ustring.gsub(template, "/doc$", "") -- remove "/doc" do final template = mw.ustring.gsub(template, "/Testes$", "") -- remove "/Testes" do final local index = mw.ustring.sub(mw.title.new(template).text,1,1) local status, data = pcall(function () return(mw.loadData('Módulo:Transclusion count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))) end) if status then return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")]) end end end

-- Se o valor não existir na base de dados, usa o valor passado para a predefinição if return_value == nil and args[1] ~= nil then local arg1=mw.ustring.match(args[1], '[%d,]+') if arg1 and arg1 ~= then return_value = tonumber(mw.getCurrentFrame():callParserFunction('formatnum', arg1, 'R')) end end

return return_value end

function p.fetch(frame) return p._fetch(frame.args) end -- Tabula estes dados para Wikipedia:Database reports/Templates transcluded on the most pages (Acho que essa parte não corresponde com a "ptwiki") function p.tabulate() local list = {} for i = 65, 91 do local data = mw.loadData('Módulo:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i))) for name, count in pairs(data) do local title = mw.title.new(name, "Predefinição") table.insert(list, {title, count}) end end table.sort(list, function(a, b) return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2]) end) local lang = mw.getContentLanguage(); for i = 1, #list do local protLevel = "" local title = list[i][1] if i < 400 then -- Para em 400 para evitar violar o caro limite de chamadas de função do analisador protLevel = title.protectionLevels.edit[1] or "(unprotected)" end list[i] = ('|-\n| %d || %s || %s || %s \n'):format(i, title.fullText:gsub('_', ' '), lang:formatNum(list[i][2]), protLevel) end return table.concat(list) end

return p