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
editarPrimeiro é 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
editarA 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
editarO 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
editarAgora 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:
- Para habilitar o uso do graphviz com interwiki.
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
editarPara 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ódulos
editarMó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
editarPara 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
editarPercebe-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
editarPara 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
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
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
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
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
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
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
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
Serve para desambiguar páginas rapidamente.
Redirecionamentos
editar
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
Para rodar o bot em todas as páginas com ambiguamento no domínio principal:
python solve_disambiguation.py -start:! -main
Catall.py
editar
Categoriza todos os artigos. O bot pede a categoria para cada artigo.
catall.py -onlynew
editar
- categoriza somente os artigos que não contém categorias.
Marcação dos bots
editar
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
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.