Módulo:JogosGrêmio

De Grêmiopédia, a enciclopédia do Grêmio
Ir para navegação Ir para pesquisar

A documentação para este módulo pode ser criada em Módulo:JogosGrêmio/doc

 local p = {} -- Função para tratar valores que podem vir como tabela ou nulos local function tratarValor(valor) if type(valor) == "table" then return table.concat(valor, ", ") -- Concatena múltiplos valores com vírgulas elseif type(valor) == "string" or type(valor) == "number" then -- Verifica se o valor é "Desconhecido", e se for, retorna vazio if valor == "Desconhecido" or valor == "" then return "" else return valor end else return "" -- Se estiver vazio, não retorna nada end end function p.gerarListaJogos(frame) -- Obtém o nome do jogador da página atual ou do parâmetro local jogadorNome = frame.args[1] or mw.title.getCurrentTitle().text -- Consulta no SMW para obter os jogos local query = "[[JogadorNome::" .. jogadorNome .. "]]|?Data3|?TimeMandante2|?TimeVisitante2|?Placar|?EstadioApelido|?Competição|?GolsMandante|?GolsVisitante|?Detalhes|limit=6000|order=asc" local resultados = mw.smw.ask(query) or {} -- Construção da tabela em HTML local html = mw.html.create("table") html:addClass("wikitable sortable") -- Cabeçalho da tabela local headerRow = html:tag("tr") headerRow:tag("th"):wikitext("#"):done() headerRow:tag("th"):wikitext("Data"):done() headerRow:tag("th"):wikitext("Mandante"):done() headerRow:tag("th"):wikitext("Placar"):done() headerRow:tag("th"):wikitext("Visitante"):done() headerRow:tag("th"):wikitext("Local"):done() headerRow:tag("th"):wikitext("Competição"):done() headerRow:tag("th"):wikitext("Gols Mandante"):done() headerRow:tag("th"):wikitext("Gols Visitante"):done() headerRow:tag("th"):wikitext("Detalhes"):done() headerRow:done() -- Adicionando linhas para cada jogo for i, jogo in ipairs(resultados) do local row = html:tag("tr") -- # (Número da partida) row:tag("td"):wikitext(i):done() -- Data (sem formatação de link) row:tag("td"):attr("style", "width: 13%"):wikitext(tratarValor(jogo["Data3"])):done() -- Mandante (alinhado à direita) row:tag("td"):attr("style", "width: 10%; text-align: right;"):wikitext(tratarValor(jogo["TimeMandante2"])):done() -- Placar (centralizado) row:tag("td"):attr("style", "width: 5%; text-align: center;"):wikitext(tratarValor(jogo["Placar"])):done() -- Visitante (alinhado à esquerda) row:tag("td"):attr("style", "width: 10%; text-align: left;"):wikitext(tratarValor(jogo["TimeVisitante2"])):done() -- Local (alinhado à esquerda) row:tag("td"):attr("style", "width: 10%; text-align: left;"):wikitext(tratarValor(jogo["EstadioApelido"])):done() -- Competição (usando a variável "Competição" corretamente) row:tag("td"):attr("style", "width: 10%; text-align: left;"):wikitext(tratarValor(jogo["Competição"])):done() -- Gols Mandante row:tag("td"):attr("style", "width: 15%; text-align: left;"):wikitext(tratarValor(jogo["GolsMandante"])):done() -- Gols Visitante row:tag("td"):attr("style", "width: 15%; text-align: left;"):wikitext(tratarValor(jogo["GolsVisitante"])):done() -- Detalhes row:tag("td"):attr("style", "width: 10%; text-align: left;"):wikitext(tratarValor(jogo["Detalhes"])):done() row:done() end -- Retorna a tabela como uma string HTML return tostring(html) end return p