Módulo:Testes/Arthurfragoso/lista por pageviews
Este módulo não apresenta nenhuma documentação. Por favor, documente-o caso o saiba usar ou tenha conhecimentos para tal. |
local p = {}
local mes = {'janeiro','fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'}
function p.ano_mes(ano, n_do_mes)
-- meses anteriores à Setembro de 2010 estão com a primeira letra do mês maiúscula
if ano <= 2009 or (ano == 2010 and n_do_mes <= 9) then
return mes[n_do_mes]:gsub("^%l", mes[n_do_mes].upper) .. ' de ' .. ano
else
return mes[n_do_mes] .. ' de ' .. ano
end
end
function p.linha_do_ano(titulo, ano)
local col = {}
local quant_no_ano = 0
-- primeira coluna indicando o ano
local primeira_coluna = '! scope=row |[[:categoria:'.. titulo ..' '.. ano ..'|'.. ano ..']]'
--cria coluna para cada um dos 12 meses
for m=1,12,1 do
titulo_mes_ano = titulo .. p.ano_mes(ano, m)
quant_de_artigos_mes = mw.site.stats.pagesInCategory( titulo_mes_ano, 'pages' )
quant_no_ano = quant_no_ano + quant_de_artigos_mes
most_views_link = 'https://tools.wmflabs.org/massviews/?platform=all-access&agent=user&source=category&target=https%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FCategoria%3A'.. string.gsub (titulo_mes_ano, ' ', '_') ..'&range=latest-20&subjectpage=0&subcategories=0&sort=views&direction=1&view=list'
table.insert(col, 'data-sort-value="'.. quant_de_artigos_mes ..'"|[[:categoria:'.. titulo_mes_ano ..'|'.. quant_de_artigos_mes ..']]'.. (quant_de_artigos_mes > 0 and ' ['.. most_views_link ..' v]' or ''))
end
-- adiciona o total à ultima coluna
table.insert(col, quant_no_ano)
--concatena coluna à uma unica linha e retorna
return primeira_coluna .. '\n|' .. table.concat(col, '||')
end
-- cria conteúdo de tabela (sem cabeçalho)
function p.tab(frame)
local titulo = frame.args[1]
local ano_de = frame.args[2]
local ano_ate = frame.args[3]
local line = {}
--cria linhas para cada ano
for ano=ano_de,ano_ate,1 do
table.insert(line, p.linha_do_ano(titulo, ano))
end
--concatena linhas em uma única tabela
return table.concat(line, "\n|-\n")
end
-- somatoria de todos anos
function p.soma_todos_anos(frame)
local titulo = frame.args[1]
local ano_de = frame.args[2]
local ano_ate = frame.args[3]
local somatoria = 0
for ano=ano_de,ano_ate,1 do
for m=1,12,1 do
titulo_mes_ano = titulo .. p.ano_mes(ano, m)
somatoria = somatoria + mw.site.stats.pagesInCategory( titulo_mes_ano, 'pages' )
end
end
return somatoria
end
return p