Módulo:EAD
Aspeto
Módulo para exibir as linhas das candidaturas a artigo destacado e bom em WP:EAD/L.
Uso
[editar código-fonte]{{#invoke:EAD|linha|título do artigo}}
Padrões
[editar código-fonte]Para este módulo funcionar corretamente é preciso que a pagina da candidatura siga os seguintes padrões:
- Deve conter uma linha começada por
* Indicação para:
seguido dedestacado
,bom
,artigo destacado
ouartigo bom
. - A primeira ligação para página de usuário encontrada na página será usada como o proponente da candidatura.
- O prazo mínimo será a primeira data no padrão " até às ##h##min UTC de ## de mês de ####". Pode ter um
<includeonly>
antes das horas. - Todos os
{{Apoio}}
e{{apoio}}
são contados como apoio, mesmo se estiver riscado ou dentro de um <nowiki>, então essa predefinição não deve ser usada sem a intenção de indicar um voto. - O
{{Apoio|Apoio para bom}}
ou{{apoio|Apoio para bom}}
, se estiverem em uma candidatura para artigo destacado serão contadas como apoio para bom e exibidas separadamente dos apoios para destacados. Nas candidaturas para artigo bom essa indicação será somada aos apoios normais. - Todos os
{{Não apoio}}
,{{não apoio}}
,{{Contra}}
e{{contra}}
são contados como não apoio, mesmo se estiverem riscados ou dentro de um <nowik>. - Quando a página iniciar com
{{Resultado EAD|1=...|tipo=N}}
ou{{Resultado EAD|data=...|tipo=N}}
com N sendo 1 ou 2, isso será considerado que a candidatura foi fechada com consenso para destacado (1) ou bom (2). - Quando a página iniciar com
{{Resultado EAD|1=...}}
ou{{Resultado EAD|data=...}}
(sem o |tipo=), isso será considerado que a candidatura foi recusada.
Ao não seguir esses padrões os apoios e não apoios podem não ser contados corretamente e as indicações de prazo, proponente, tipo de candidatura e resultado podem apresentar erro.
Ver também
[editar código-fonte]- Módulo:ECD (usado antigamente quando a escolha era por votação)
local m = {}
function m.linha (frame)
-- Função que gera a linha da tabela em [[Wikipédia:Escolha do artigo em destaque/Lista]]
local titulo = frame.args[1]
local title = mw.title.new('Wikipédia:Escolha do artigo em destaque/' .. titulo)
local page = title:getContent()
local dados, indicacao, tituloart = m.dados(page)
tituloart = tituloart or titulo
local icone = ''
if indicacao == 'destacado' or indicacao == 'bom' then
icone = '[[Ficheiro:Cscr-featured' .. (indicacao == 'bom' and '2' or '1') .. '-candidate.png|16px|ligação=]] '
end
-- Colocando os dados na tabela
local template = [=[|-
|%s[[Wikipédia:Escolha do artigo em destaque/%s|%s]]
|style="text-align:center; font-size:smaller;"|[[%s|Art]] / [[Discussão:%s|disc]]%s]=]
return string.format(template, icone, titulo, tituloart, tituloart, tituloart, dados)
end
function m.erro(texto)
return string.format('\n|colspan=6 style="color:#800; font-size:small"|(erro: [[Módulo:EAD|módulo]] %s)', texto)
end
function m.dados (page)
local placar = {0,0,0}
-- Buscas no texto
-- Indicação para destacado ou bom
local pos, _ , indicacao = string.find(page, "\n%* Indicação para: *(%a+)")
if indicacao then
indicacao = string.lower(indicacao)
if indicacao == 'artigo' then
pos, _ , indicacao = string.find(page, "\n%* Indicação para: *%a+ +(%a+)")
if indicacao then
indicacao = string.lower(indicacao)
end
end
end
if not indicacao or indicacao ~= 'destacado' and indicacao ~= 'bom' then
return m.erro'não encontrou se a indicação é para destacado ou bom'
end
-- Título do artigo --
local pos, _ , tituloart = string.find(page, "\n%== *%[%[([^]\n]+)%]%] *==\n")
-- Prazo mínimo
local prazo, prazosort
local posprazo, _, hora, min, dia, mes, ano = string.find(page, " até às [a-z<>]*(%d%d)h(%d%d)min '''UTC''' de (%d%d?) de (%S+) de (%d%d%d%d)")
if not posprazo then
prazo = '<small>(não encontrado)</small>'
prazosort = ''
else
prazo = string.format('%sh%smin de %s de %s de %s', hora, min, dia, mes, ano)
local meses = {["janeiro"] = "01", ["fevereiro"] = "02", ["março"] = "03", ["abril"] = "04",
["maio"] = "05", ["junho"] = "06", ["julho"] = "07", ["agosto"] = "08",
["setembro"] = "09", ["outubro"] = "10", ["novembro"] = "11", ["dezembro"] = "12"}
prazosort = string.format(' data-sort-value="%s%s%02d%s%s"', ano, meses[mes], dia, hora, min)
end
-- Proponente
local pos, _, proponente = string.find(page, "%[%[Us[ue][^]:\n]+:([^|/]+)|")
if not pos then
pos = 1
end
if not proponente or (posprazo and pos > posprazo) then
proponente = '?'
else
proponente = string.format('%s ([[Usuário(a) Discussão:%s|discussão]])', proponente, proponente)
end
-- Estado da proposta
local estado
a, b, conclusao = string.find(page, "^{{[Rr]esultado EAD|[dat1]+=[^|}]-|tipo=(%d)}}")
if conclusao then
estado = "consenso [[Ficheiro:Cscr-featured" .. conclusao .. ".png|15x15px]]"
elseif string.find(page, "^{{[Rr]esultado EAD|[dat1]+=[^|}]-}}") then
estado = "recusado [[Ficheiro:Symbol declined.svg|15x15px]]"
else
-- Contagem dos votos
-- placar[3] são os votos para destacado, placar[2] votos para bom e placar[1] para artigo normal
local buscapredef = "{{([AaCcNn][^}\n]+)}}"
local _, pos, predef = string.find(page, buscapredef, pos)
while predef do
local apoio = string.find(predef, '^[Aa]poio')
if apoio then
local apoiobom = string.find(predef, '^[Aa]poio|[Aa]poio para [Bb]om')
if apoiobom then
placar[2] = placar[2] + 1
else
placar[3] = placar[3] + 1
end
elseif string.find(predef, '^[Nn]ão apoio') or mw.ustring.find(predef, '^[Cc]ontra') then
placar[1] = placar[1] + 1
end
_, pos, predef = string.find(page, buscapredef, pos)
end
if indicacao == 'bom' then
estado = string.format('%d [[Ficheiro:Symbol support vote.svg|ligação=|15x15px]] / %d [[Ficheiro:Symbol declined.svg|15x15px]]',
placar[3] + placar[2], placar[1])
elseif placar[2] > 0 then
estado = string.format('%d [[Ficheiro:Symbol support vote.svg|ligação=|15x15px]] / %d [[Ficheiro:Cscr-featured2.png|15x15px]] / %d [[Ficheiro:Symbol declined.svg|15x15px]]',
placar[3], placar[2], placar[1])
else
estado = string.format('%d [[Ficheiro:Symbol support vote.svg|ligação=|15x15px]] / %d [[Ficheiro:Symbol declined.svg|15x15px]]',
placar[3], placar[1])
end
end
-- Colocando os dados na tabela
return string.format("\n|%s\n|style=\"white-space: nowrap\"|%s\n|style=\"white-space: nowrap\"%s|%s",
estado, proponente, prazosort, prazo), indicacao, tituloart
end
return m