ArchWiki:Bots (Português)
Bots são uma ferramenta importante da equipe de manutenção que permite executar facilmente tarefas repetitivas, desde a rotina diária até atualizações complicadas de uma só vez. As edições de bots constituem mais de 8% de todas as contribuições para o wiki - todas essas edições teriam sido muito entediantes de se fazer manualmente.
Há atualmente duas contas de bots ativas:
- Kynikos.bot (operado por Kynikos)
- Lahwaacz.bot (operado por Lahwaacz)
Software
Os bots usam a API do MediaWiki para se comunicar com o servidor wiki. Existem muitos bots desenvolvidos pela Fundação Wikimedia usando essa API, mas geralmente não são gerais o suficiente para trabalhar em outras wikis ou mesmo entrar em conflito com nossas diretrizes de estilo. Portanto, temos trabalhado em nossas próprias ferramentas de bot específicas do ArchWiki, que têm as mesmas falhas quando avaliadas por terceiros.
Wiki Monkey
O objetivo do projeto Wiki Monkey é facilitar a edição eficiente, aprimorando diretamente as páginas wiki no navegador da web. Ele é executado como um script de usuário, permitindo executar tarefas repetitivas de maneira semiautomática nas páginas do editor de artigos ou de forma totalmente automática a partir de páginas da lista de artigos, como Categorias ou WhatLinksHere. O Wiki Monkey também adiciona alguns auxiliares, como filtros para Special:RecentChanges e Special:NewPages. Consulte a documentação para obter detalhes.
Edições feitas pela interface do bot do Wiki Monkey são marcados com a etiqueta wiki-monkey
, que pode ser filtrada na lista de alterações recentes.
wiki-scripts
O projeto wiki-scripts contém muitos scripts Python criados em torno de uma pequena abstração semelhante a uma biblioteca para a API do MediaWiki. O objetivo dos scripts incluídos varia de coletar informações sem editar o wiki até executar edições automatizadas complexas, descritas em #Tarefas. As edições feitas pelos scripts wiki, de forma automática ou interativa, são marcadas com a etiqueta wiki-scripts
, que pode ser filtrada na lista de alterações recentes.
Tarefas
Esta seção descreve as tarefas que são executadas repetidamente pelos bots do ArchWiki. Ele serve como uma visão geral e documentação dos recursos dos scripts de bot operados. Observe que, por padrão, as edições de bot estão ocultas de Special:RecentChanges, pois sua inclusão tornaria muito mais difícil acompanhar e participar com contribuições regulares.
Redirecionamento duplos
A correção de redirecionamentos duplos é a tarefa automatizada mais antiga. Isso pode ser feito, por exemplo, com um script Python ou com o plugin dedicado do Wiki Monkey.
Tabelas de conteúdo
A página Table of contents e suas "traduções" são mantidas usando o script toc.py. O script pode ser executado diariamente, sua execução leva alguns segundos.
A página precisa ser inicializada manualmente com a seguinte tabela de ponto de entrada:
{| id="wiki-scripts-toc-table" ... |}
O conteúdo desta tabela é substituído por uma versão atualizada gerada pelo script, o restante da página é deixado intacto. O script reconhece os seguintes atributos opcionais para configuração:
data-toc-languages
especifica os idiomas a serem mostrados na página. É uma lista separada por vírgula de etiquetas de idioma, no máximo 2 podem ser especificadas. O padrão é o idioma da página atual, ou seja,ru
para Table of contents (Русский).data-toc-alsoin
especifica a tradução da frase "also in". O formato étag1:text, tag2:text, ...
.
Por exemplo (de Table of contents (Русский)):
{| id="wiki-scripts-toc-table" data-toc-languages="ru,en" data-toc-alsoin="ru:Также в" ... |}
Os usuários também podem traduzir os nomes das categorias na tabela editando os links na página wiki e o script os preservará nas atualizações.
Estatísticas
A página ArchWiki:Statistics é mantida pelo script Statistics.py. Atualmente, apenas a seção User statistics é gerada automaticamente, o restante é atualizado manualmente. A atualização leva cerca de 15 segundos e deve ser executada diariamente.
O script funciona obtendo metadados de todas as revisões e contas de usuário da API e armazenando em cache localmente para obter melhor desempenho. As contagens de edição são determinadas contando manualmente as contribuições do usuário sem depender dos contadores do MediaWiki.
Templates de pacote
O script update-package-templates.py analisa o conteúdo de todas as páginas e atualiza os templates Pkg, Grp e AUR. O nome do pacote não é realmente alterado pelo script, mas, por exemplo, para pacotes que foram movidos recentemente do AUR para os repositórios oficiais, o link é atualizado de Template:AUR para Template:Pkg. Links de pacote inválidos são marcados com Template:Broken package link junto com uma dica algumas vezes útil mostrando o status do pacote.
O script usa versões localizadas de Template:Broken package link quando elas existem e retornam às versões em inglês. Fora isso, não há configuração do lado do servidor.
Após cada execução, mas no máximo uma vez a cada sete dias, o script cria um relatório detalhado de links quebrados em User:Lahwaacz.bot/Reports/archpkgs.
Interlíngua
O script interlanguage.py faz o seguinte:
- Verifica se o idioma das categorias atribuídas a cada página corresponde ao idioma da própria página.
- Cria categorias localizadas ausentes, espelhando a árvore de categorias em inglês.
- Atualiza os links interlínguas em todas as páginas de conteúdo usando este algoritmo.
O tempo de execução depende da quantidade de atualizações, geralmente é de menos de um minuto e cerca de 30 segundos quando não há atualizações.
Idioma da página
O script update-page-language.py determina o idioma de cada página com base no título (veja Help:i18n (Português)#Títulos de páginas) e define o código de idioma no banco de dados da wiki. Isso é possível com a configuração $wgPageLanguageUseDB do MediaWiki [1].
Verificação de links
- extlink-checker.py tenta verificar o status de links externos e aqueles que estão definitivamente quebrados são com Template:Dead link. Muitos links ainda passavam sem verificação por esta ferramenta, principalmente por causa de sites que exigem JavaScript e servidores retornando um código de status HTTP inconclusivo.
- url-replace.py realiza várias substituições em links externos, tal como atualizar URLs de HTTP para HTTPS ou substituir links externos para o wiki.archlinux.org com links internos.
- link-checker.py realiza várias verificações e substituições em links internos, links para páginas de manual e links externos (usando o mesmo código que
url-replace.py
). - mark-archived-links.py marca links internos que levam para ArchWiki:Archive com Template:Archived page.