Usuário(a):Nuno Tavares/Perlbot

Origem: Wikipédia, a enciclopédia livre.

Esta é a página do PerlBot, um bot criado para o WikiProjecto:Cidades do Mundo. O código-fonte, apesar de ser GPL, não é publicado aqui para evitar más utilizações do bot. Se desejar obter uma cópia, envie um e-mail para o autor, Nuno Tavares.

Como utilizar[editar | editar código-fonte]

  • Sim Criar um script que recolha os dados e os carregue numa base de dados MySQL. Neste exemplo (ver comunas da Suíça) os dados são recolhidos da wikipédia italiana;
  • Sim Faça os ajustes necessários. Para o mesmo exemplo, utilizei um script para efectuar conversões dos nomes em italiano para português. Repare-se que este script é bastante versátil (e muito pouco user-friendly) permitindo fazer várias combinações de substituições.
  • Sim Assim que os dados estiverem compilados, crie um template para o bot. A documentação para o template está incluída na documentação do bot. Ainda no mesmo exemplo, o template foi este;
  • Sim Aproveite e crie um template para uma eventual página de desambiguação. Em caso de colisão com um artigo, o bot irá criar a página seguindo as instruções desse template. Em todo o caso, ficarão os artigos que resultaram em colisão disponíveis numa directoria criada para o efeito, para tratamento manual. O modo de operação do bot em relação às desambiguações está explicado na documentação do bot. Para exemplo, foi utilizado para as comunas francesas este template.
    • Se desejar preparar o trabalho (ajuda bastante se for administrador), pode correr o bot em modo de simulação para detectar quais os artigos que precisará mover.
  • Não Teste alguns artigos (de preferência na página de testes);
  • Sim Se tudo lhe parecer correct, é só correr o bot passando o ficheiro do template para os artigos e como segundo parâmetro, o template para a desambiguação.

Template[editar | editar código-fonte]

Eis alguns parâmetros para o ficheiro de template, extraída da documentação do bot. Estes parâmetros são especificados entre chavetas duplas {{}}:

  • SQLCONNECTION|host|database|username|password
  • SQLREFTABLE|table|field
  • Tabela e campo que ditará os titulos
  • SQLTABLELINK|table|field|table|field
  • Parâmetros de cláusulas WHERE para ligar duas tabelas
  • SQLFIELD|table|field
  • Um por linha. Para juntar linhas separadas numa só, usar "\" no final da linha.
  • DISAMBIGSUFFIX|type|suffix
  • Este parâmetro, se especificado, activará a desambiguação automática (não impede o registo do evento, para consulta posterior!). O sufixo para desambiguar ficará na forma na forma "título (suffix)". Os sufixos são escolhidos por ordem de especificação. Ou seja, o segundo sufixo especificado só será utilizado caso exista colisão com a desambiguação utilizando o primeiro sufixo. Os tipos type são:
  • fixed: o sufixo é invariável. O título ficará "título (suffix)"
  • field: é utilizado o valor do campo field. O título ficará "título (valor_do_campo_suffix)"

Eis o exemplo utilizado para as comuna francesas.

Automatic disambiguation[editar | editar código-fonte]

Level 1[editar | editar código-fonte]

This level of automatic disambiguation will handle internal colisions inside the database.

You have to create a template for the disambiguation and an extra field called 'disambig' on your MySQL reference table. The size of this field will be that of a sum of the size of the former 'reference field' (you use in the template) and the size of the bigger DISAMBIGSUFFIX field plus five chars.

This template have to specify DISAMBIGSUFFIX for variable suffixes and at least one line starting with '*' which will be used to iterate through colisions. This line usually starts with:

* [[{{SQLFIELD|table|disambig}}|{{subst:PAGENAME}}]]

Note: that the 'disambig' won't change as it is intendend to be the new generated field.

This template will also need the {{SQLREFTABLE}} which should be identical to that used on the main template file, so the bot can have a reference field to refer to.

Also note that you can predict which internal colisions are actually coliding on the live wiki, using the '-justcheck' option, which

Synopsis[editar | editar código-fonte]

perlbot template-articles
perlbot -disambig template-disambig [ -justcheck ]

Changelog do Perlbot[editar | editar código-fonte]

09:49, 30 Janeiro 2006 (UTC)[editar | editar código-fonte]

  • v1.0.1 : Desambiguação local (BD) e possível criação das páginas de desambiguação com base num template. Além disso, o bot pode agora detectar as colisões que irão suceder para as páginas de desambiguação (parâmetro -justcheck).

18:41, 20 Dezembro 2005 (UTC)[editar | editar código-fonte]

  • v1.0.0 : Suporte para templates, Login, e EditTime é agora dinâmico;

não me lembro[editar | editar código-fonte]

  • v0.0.1 : Primeiro esboço. Está confirmado: é possível :)

pré-história[editar | editar código-fonte]

Este bot nasceu da panóplia de scripts que foram concebidos para criar vários artigos para o WP:PCM. Por isso, embora sem versão, os scripts também merecem referência :))