Utilisateur:Thilp/Robots/vik0de

Aller à la navigation Aller à la recherche

Le titre s'écrit « thilp → Robots → vik0de », mais ce navigateur n'a pas pu l'afficher correctement.

thilp a dû apprendre tout seul à faire des robots et ce n'était pas facile alors, maintenant qu'il en sait un peu plus, il a envie de le partager avec les autres Vikidiens qui cherchent eux aussi à se créer un esclave d'octets sur cette encyclopédie.

Pour cela, il a décidé de réunir au même endroit tout ce qui peut permettre de comprendre comment fabriquer un robot sur Vikidia et les fonctions de base, avec lesquelles il est bien plus facile de faire des choses intéressantes.

L'idée sous-jacente est que les novices en dressage de robots ne devraient pas avoir à se soucier des aspects compliqués. thilp a mis beaucoup de temps avant de parvenir à écrire son premier robot fonctionnel parce qu'il fallait gérer les transmissions via HTTP, maîtriser l'API de MediaWiki, etc. : il serait bien dommage que d'autres abandonnent à cause de ces choses ennuyeuses.

Qu'est-ce qu'un robot ?[modifier | modifier le wikicode]

Sur Vikidia, on appelle robot ou bot un programme informatique qui agit avec un compte d'utilisateur, comme un humain. (Par conséquent, AbuseFilter n'est pas un robot.)

  • Ce programme est exécuté par un ordinateur. Ce peut être un ordinateur personnel ou un serveur. L'avantage des serveurs est qu'ils ne s'arrêtent presque jamais (le programme peut donc fonctionner en permanence), mais ils sont chers et, contrairement à l'ordinateur personnel, on en a rarement un à la maison !
  • Un programme a été écrit dans un certain langage de programmation. Le choix de ce langage influence bien sûr le programme final ! Certains langages permettent de travailler très facilement sur le texte, d'autres ont une très bonne gestion de la mémoire, d'autres enfin sont faits pour fonctionner sur des serveurs, etc. Certains sont plus faciles que d'autres. Il est important de bien choisir son langage de programmation quand on veut créer un robot. Le meilleur choix est en général un langage que l'on connaît bien et qui est haut niveau, c'est-à-dire qui ne nécessite pas de manipulations trop compliquées pour accéder à Internet, modifier du texte, etc.
  • Le robot fait quelque chose de précis. Il ne peut pas tout faire, il faut choisir ! Sinon, il serait bien trop compliqué et très difficile à modifier. Il est bon de choisir une tâche précise que l'on compte faire à son robot pour ne pas s'éparpiller ni perdre son temps.

Comment faire un robot ?[modifier | modifier le wikicode]

Le langage[modifier | modifier le wikicode]

Avant tout, il faut connaître un langage de programmation. Comme c'est la « langue » dans laquelle sont écrits tous les programmes informatiques (et donc tous les robots), c'est indispensable ! Il n'est pas envisageable d'utiliser un robot sans comprendre son code.

Heureusement, apprendre un langage de programmation est vraiment facile. Sur le Web, on trouve de très nombreux et bons tutoriels ou introductions à tous types de langages. Les langages dont je recommanderais l'apprentissage à quelqu'un qui n'en connaît aucun et voudrait créer un robot sont :

Chacun d'entre eux a ses spécificités mais ils sont de toute façon pratiques. Perl et PHP sont en gras car je suis, à l'heure actuelle, en mesure de fournir du code de robot qui fonctionne sur Vikidia dans ces langages et parce que je les trouve particulièrement adaptés à notre sujet. Perl est très fort sur les modifications de texte et plus simple à utiliser que PHP (qui est fait pour tourner sur des serveurs, même s'il est possible de le faire facilement passer sur un ordinateur personnel). Python aussi est simple d'accès, bien documenté et l'on peut facilement lui ajouter des fonctionnalités. Java est un langage orienté objet (une « saveur » différente des trois autres, très intéressante aussi pour fabriquer un robot). Tous fonctionnent sur n'importe quel système d'exploitation sans avoir à modifier le programme du robot et peuvent tous tourner aussi bien sur un serveur que sur un ordinateur personnel.

L'API[modifier | modifier le wikicode]

Une fois choisi le langage qui sera utilisé pour écrire le robot, on peut commencer ! Il ne faut néanmoins pas se précipiter : il vaut mieux savoir à l'avance tout ce qu'on va faire plutôt que se jeter à l'aveugle dans le code.

Communiquer avec Vikidia sera l'une des occupations principales du robot. Pour cela, il doit parler la même langue que Vikidia pour se faire comprendre ! Cette langue, c'est l’API (Application Programming Interface). Quand le programme utilise les méthodes de l'API pour dire ce qu'il veut à Vikidia, il se fait comprendre.

Vikidia repose entièrement sur un logiciel appelé MediaWiki. C'est lui qui affiche les pages de l'encyclopédie, enregistre les nouveaux inscrits, compte les articles, les relie par catégories, gère les droits des utilisateurs, etc. Lorsque nous modifions un article, c'est en fait MediaWiki qui a reçu ce que nous avions écrit, l'a analysé, modifie sa base de données, actualise l'historique de la page, met à jour la page des modifications récentes et qui finalement affiche la nouvelle version de l'article en transformant les [[liens]] en liens (entre autres modifications). Tout passe par MediaWiki. Il va donc falloir que notre robot aussi ait affaire à lui.

L'API est en fait la « surface » de MediaWiki : c'est la seule façon pour un robot de lui « parler ». Par exemple, grâce à l'API, un robot peut facilement obtenir la liste des vingt premiers articles dont le nom commence par un K et qui appartiennent à la catégorie Mammifère ou demander de supprimer d'un seul coup les 5000 pages de publicité créées par un spammeur. L'API de MediaWiki est très simple et permet pourtant de faire des actions puissantes, qui ne sont pas accessibles depuis l'interface « pour les humains » de Vikidia à laquelle nous sommes habitués.