Ajuda:Como usar bots

Fonte: Wikinotícias

Sendo projetos colaborativos e voluntários e sabendo que este tipo de trabalho requer tempo e muito trabalho repetitivo, surgiu um framework inicialmente para atualizar elos de interwiki usando bots, ou robôs, como é dito em outras línguas. Não seria precisamente um robô, que faz-se tudo sozinho. O robô da Wikipedia seria um agente de manipulação de artigos precisamente. É um desafio manter links de um artigo em uma língua ligadas a todas as versões desse artigo em outras línguas. Em tempos, uma nova versão é introduzida, mudanças de nomes, anulações, logo, todas as outras versões devem ser atualizadas. Ao longo do projeto foram criando outros módulos para lidarem com upload de arquivos, desambiguação entre artigos, introduzir categorias nas páginas, transformar tabelas de html para wiki, etc.

O software usado para gerar bots é o Python Wikipedia Robot Framework, os outros módulos do projeto podem ser encontrados no repositório CVS.

O bot foi escrito por Rob Hooft em w:2003 em linguagem w:Python. Os bots da Wikinews em português se organizam na Coordenação robótica.

Usando bots no Windows[editar | editar código-fonte]

Primeiro é necessário o w:interpretador do programa w:Python que encontra-se aqui.

Depois precisa-se dos módulos do PyWikipediaBot, baixe em:

http://prdownloads.sourceforge.net/pywikipediabot/pywikipediabot.zip?download Depois do download extraia os arquivos .zip para uma pasta dentro do diretório raiz C:/, por exemplo, c:/pywikipediabot.

Depois de extraído é necessário testar se o Python está funcionando corretamente, então digite python dentro do MS-DOS.

Se aparecer o inicializador do interpretador ">>>" então está tudo certo, mas se aparecer a seguinte mensagem:

'python' não é reconhecido como um comando interno ou externo, um
 programa operável ou um arquivo em lotes.

Então é necessário criar um arquivo .bat da seguinte maneira:

  • Abra um editor de texto e digite dentro dele: PATH %PATH%;LOCAL_ONDE_ESTA_O_PYTHON
  • Exemplo: PATH %PATH%;C:/ARQUIV~1/Python
  • Salve este arquivo como bot.bat
  • E coloque-o dentro da pasta de origem do pywikipediabot.

Agora teste o Python digitando python dentro do diretório do pywikipediabot e aparecerá ">>>". Está tudo certo. Para sair digite Ctrl+Z.

Caso não aparecer o inicializador do interpretador ">>>" então coloque todos os arquivos da pasta pywikipediabot para a pasta onde está o software Python.

Entre no w:MS-DOS e vá até o diretório onde você escolheu que ficasse a pasta pywikipediabot, por exemplo, c:/pywikipediabot,

depois digite seu login acessando o módulo login.py. Digite: >>> python login.py

Digite seu login e senha e você está logado. Teste-o com >>> python test.py


Agora você pode acessar os módulos da pasta pywikipediabot pelo simples comando python NOME_DO_ARQUIVO.py.

Usando bots no Linux[editar | editar código-fonte]

A maioria das distribuições do Linux já veêm com o w:interpretador do w:Python nativos em seus sistemas.

Para obter os módulos do PyWikipediaBot baixe:

http://prdownloads.sourceforge.net/pywikipediabot/snapshot-20040817.tar.gz?download

Extraia os arquivos do arquivo.tar.gz para uma pasta a sua escolha, por exemplo, /home/pywikipediabot.

Entre no w:Console ou em algum w:Terminal e vá até o diretório onde o PyWikipediaBot está, digite seu login acessando o módulo

login.py. Digite: >>> python login.py

E está logado. Para sair do python digite Ctrl+D.


Usando bots com Cygwin[editar | editar código-fonte]

O w:cygwin criado e mantido pela w:Red Hat Linux é uma alternativa de usar w:Linux dentro do w:Windows, o uso do bot no cygwin é semelhante a do [w:[Linux]] precisando pegar o pacote do Python aqui.


Configuração Geral[editar | editar código-fonte]

Agora você irá configurá-lo, entre na pasta do PyWikipediaBot e procure o módulo config.py, clique no IDLE (botão direito do mouse, Edit with IDLE) e altere as linhas de comando seguintes:

   mylang = 'pt' 
   coloque a wikipedia que você quer logar, por exemplo, 'pt'.

E depois crie um arquivo user-config.py com a linha abaixo:

   usernames['wikipedia']['pt'] = 'myPortugueseUsername'

Neste mesmo arquivo há a opção de colocar opções de sua preferência como:

Interwiki alterando artigos da fr: e da pt:

interwiki_graph = True

  • Escolha do formato das figuras do graphviz

interwiki_graph_format = 'png'

  • Escolha de log

always_log = True ou never_log = False

  • Interface gráfica

userinterface = 'tkinter'

  • Artigos sem interwiki

without_interwiki = True

Configuração global de Interwiki[editar | editar código-fonte]

Para que o bot rode em todas as línguas, basta colocar as linhas de configuração para cada língua:

usernames['wikipedia']['pt'] = 'myPortugueseUsername'
usernames['wikipedia']['en'] = 'myEnglishUsername'

dentro do user-config.py.

Faça login novamente com o comando:

python login.py -all

Depois somente rodar o interwiki.py e ele irá ligar as línguas umas nas outras, acabando com os warnfiles.

Módulo que checa artigos com mesmo nome em todas as wikipedias e a faz-se um link para ela na coluna da esquerda do site.

interwiki.py[editar | editar código-fonte]

Bot de Interwiki trabalhando

Para procurar as ligações para outras wikipédias para uma determinada página (digamos, nome da página), basta rodar:

python interwiki.py nome_da_página

O programa irá então procurar as ligações para outras wikipédias que já existirem em nome da página. Então ele irá acessar cada uma das páginas a que correspondem estas ligações a fim de procurar mais ligações e assim sucessivamente, até que cada ligação já tenha sido investigada.

-hint[editar | editar código-fonte]

Percebe-se que se nome da página não possuir ligação alguma, o programa não irá achar mais nenhuma ligação para outra wikipédia. Deveremo então achar uma página correspondente em outra wikipédia (que no nosso exemplo vai ser achada em nome da página em inglês na en.wp). O comando a ser dado é então:

python interwiki.py nome da página -hint:en:nome_da_página_em_inglês

-years[editar | editar código-fonte]

Para fazer os interwikis de todas as paginas de anos de ano_de_início até 2050 o comando é:

python interwiki.py -years:ano_de_início

Este processo deve apenas ser realizado periodicamente, definido em Wikipedia:Coordenação robótica.

-days[editar | editar código-fonte]

Para fazer os interwikis de todas as paginas de dias do ano do mês_de_início (um número de 1 a 12) até o mês 12 o comando é:

python interwiki.py -days:mês_de_início

Este processo deve apenas ser realizado periodicamente, definido em Wikipedia:Coordenação robótica.

-start[editar | editar código-fonte]

O comando -start pode-se combinar com o comando -continue. O -start funciona adicionando o nome da página no comando para o interwiki fazer as ligações em todas as páginas que estão dentro dela. O comando é:

python interwiki.py -start:nome_da_página

Imagetransfer.py[editar | editar código-fonte]


Módulo que serve para transferir imagens de um projeto como a wikipédia para o commons, o que é mais sensato, mas pode transferir para outros projetos.

  • Transferência simples para o commons:
python imagetransfer.py Ficheiro:XX.ext
  • Multiplas transferências para o commons, obtendo o nome das imagens em um arquivo externo do computador.
python imagetransfer.py -file:tocommons.py

table2wiki.py[editar | editar código-fonte]


Este programa transforma tabelas do formato html para o formato wiki que é mais simples para a edição. O comando a ser usado é:

python table2wiki.py nome da página

As páginas a serem alteradas também podem ser lidas em um arquivo texto (lista.txt para o nosso exemplo):

python table2wiki.py -file:lista.txt

category.py[editar | editar código-fonte]


Este programa é muito poderoso e só deve ser usado pelos que já dominam a Força.

O programa category.py serve a muitas utilidades.

Movendo (ou renomeando) categorias[editar | editar código-fonte]

Se todos os artigos que estiverem em categoria 1 deveriam estar em categoria 2, basta rodar:

python category.py rename

Então o programa irá perguntar primeiro qual categoria a ser abandonada (categoria 1) e depois a categoria a ser enchida (categoria 2).

Categorizando uma lista[editar | editar código-fonte]

O programa também pode categorizar um lista de páginas ou todas as páginas que apontam para algum artigo. Bastará rodar:

python category.py add

e informar onde buscar a lista. Nota: o programa categoriza todas as páginas da lista em apenas uma categoria informada pelo usuário.

solve_disambiguation.py[editar | editar código-fonte]


Serve para desambiguar páginas rapidamente.

Redirecionamentos[editar | editar código-fonte]

Se todos os artigos que apontam para um redirecionamento (artigo 1) deveriam apontar para o artigo-alvo do redirecionamento (artigo 1), basta rodar:

python solve_disambig.py -just -always:0 -pos:artigo_1 artigo 1

Todas os ambiguamentos[editar | editar código-fonte]

Para rodar o bot em todas as páginas com ambiguamento no domínio principal:

python solve_disambiguation.py -start:! -main

Catall.py[editar | editar código-fonte]


Categoriza todos os artigos. O bot pede a categoria para cada artigo.

catall.py -onlynew[editar | editar código-fonte]

categoriza somente os artigos que não contém categorias.

Marcação dos bots[editar | editar código-fonte]

Os robots podem ser marcados, i.e., identificados ao nível do software como bots, para que as suas intervenções sejam escondidas da página de Mudanças Recentes por defeito (mediante a opção hidebots=0 no endereço).

No entanto, esta medida carece da aprovação da comunidade existente na Wikipédia. Os passos a tomar para a marcação de bots são:

  • Apresentação do bot na Redação sobre a sua função e âmbito de utilização, bem como o software utilizado.
  • Inscrição das funções e âmbito do bot na página: Wikinotícias:Robôs/Pedidos de aprovação
  • Prestar atenção a alterações da página supracitada, pois será nela que será discutida a marcação do bot.
  • Caso o bot seja aprovado, adicioná-lo à lista da Coordenação robótica

Atualização constante do software[editar | editar código-fonte]

Como os snapshots são demorados para serem atualizados e o trabalho de desenvolvimento, correção de bugs e construções de novas funcionalidades é constante, o mais viável é a atualização do software direto do repositório utilizando CVS.