Usuário(a):Nuno Tavares/Perlbot

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 utilizarEditar

  •   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;
  •   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.
  •   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;
  •   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.
  •   Teste alguns artigos (de preferência na página de testes);
  •   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.

TemplateEditar

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 disambiguationEditar

Level 1Editar

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

SynopsisEditar

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

Changelog do PerlbotEditar

09:49, 30 Janeiro 2006 (UTC)Editar

  • 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

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

não me lembroEditar

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

pré-históriaEditar

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 :))