The trashiest blog in the World...

Aller au contenu | Aller au menu | Aller à la recherche

Documentation francophone, IRC et recherches

En mars 2008, eponyme nous annonçait l'arrivée sur les canaux IRC francophones de Fedora d'un bot programmé par ses soins : trustyRC.

Voilà donc un peu plus de deux ans maintenant que trustyRC faisait son travail, répondant inlassablement aux requêtes des utilisateurs sur la documentation francophone, sur le FAS (Fedora Account System), ...

Mais la fatigue l'a malheureusement gagné. eponyme s'est tourné vers d'autres horizons, et deux problèmes principaux persistaient avec trustyRC :

  • les données du FAS devaient être mises à jour à la main ; ce qui n'est fait que très rarement (il faut y penser et en avoir le courage, on connaît tous ça !),
  • la recherche sur la documentation francophone de Fedora ne faisait qu'interroger le MediaWiki et récupérer un résultat HTML. Or, chacun sait que la recherche MediaWiki de base est entravée de limitations pour le moins étranges, et n'est simplement pas fonctionnelle. Les résultats ne sont en conséquence souvent pas à la hauteur de nos espérances ; ce n'est cependant pas la faute de trustyRC, le pauvre.

Depuis peu, je m'intéresse de très près à Apache Solr (une solution de recherche web basée sur le projet Lucene) ; j'ai même très récemment ajouté l'extension php-pecl-solr dans les dépôts Fedora.

solr.jpg

Je me suis donc fixé comme but d'indexer le wiki de la documentation francophone ; puisque je connais assez bien les données et certaines recherches effectuées régulièrement (notamment sur IRC) ; c'était un bon point de comparaison pour moi.
Le résultat est assez impressionnant, la puissance de recherche de Solr n'est en rien comparable à celle d'une « simple » application PHP. comme MediaWiki Solr permet, entre autres, la suppression des caractères accentués, la mise en minuscule des caractères, le découpage de termes, le sur-lignage, le filtrage, ... Pour exemple, une recherche sur les termes réseau, reseau et network renvoie - pour l'index sur lequel j'ai travaillé - les mêmes résultats.

Afin de pouvoir tester ce système d'indexation et de recherche un peu plus avant, il me fallait une interface d'interrogation publique. Je me suis dit que ce serait une bonne occasion de refaire quelques tests de bots IRC. J'ai choisi de ne pas contribuer à trustyRC principalement car je n'ai pas les compétences requises. Au lieu de cela, j'ai cherché et testé les bots existants en python ; j'en ai trouvé plusieurs, mais seul Supybot m'a réellement satisfait (en fait, c'était le seul à ne pas subir de déconnexions très régulières du réseau FreeNode :( ).

Le résultat ? Un plugin Supybot pour la documentation francophone, connecté sur les canaux francophones Fedora sous le doux nom de MrBot !

Les plugins externes chargés dans cette instance de Supybot sont :

  • le plugin de recherche dans le wiki fedora-fr (développé par votre serviteur, les sources sont disponibles sous licence BSD),
  • un plugin de validation (X)HTML pour m'amuser (également développé par votre serviteur, sur la base du plugin de validation de Phenny, dont les sources sont également disponibles sous licence BSD),
  • le plugin Fedora qui permet d'interroger les FAS et savoir, par exemple, qui maintient un paquet spécifique,
  • le plugin Koji qui nous donne quelques informations sur les builders Koji de Fedora,
  • le plugin Bugzilla qui affiche des détails sur une entrée du bugzilla de Fedora lorsqu'un lien valide est posté (ou une chaîne de la forme bug #{numéro de bogue}).

L'utilisation de MrBot pour la recherche wiki se fait de la façon suivante :

  • .wiki ce que je cherche : effectue une recherche dans les titres du wiki. Si aucun résultat n'est trouvé, une recherche dans les textes sera effectuée automatiquement,
  • .wiki plain ce que je cherche : effectue une recherche dans les textes uniquement,
  • .wiki solr {requête solr} : permet d'interroger l'index avec une requête Solr (principalement implémenté pour mes tests).

L'interrogation via la commande wiki renverra au maximum deux URL ; le nombre de résultats non renvoyés sera également spécifié entre parenthèses.

Vous remarquerez que le caractère d'interrogation est désormais le . (point) ; alors que trustyRC répondait à un ! (point d'exclamation). Pourquoi ce changement ? Parce que j'en avais envie, na ! :-D
Toute plaisanterie mise à part ; un bot Supybot est déjà présent sur certains canaux Fedora anglophones - zodbot sur #fedora-devel par exemple - qui répond au . ; l'utilisation du même caractère permet simplement un peu d'harmonie.

Pour la majorité des fonctions, il est également possible d'interroger MrBot en message privé :

  • /msg MrBot wiki ce que je cherche

Pour vérifier qu'une URL donnée est valide W3C :

  • .validate blog.ulysses.fr
  • .validate http://blog.ulysses.fr

L'interrogation des services Fedora :

  • .whoowns paquet : renvoie le nom (FAS) du mainteneur du paquet
  • .fas fasname : renvoie des informations sur le compte FAS d'un utilisateur. Vous devriez probablement utiliser cette commande en message privé plutôt que sur un canal.
  • .branches paquet : renvoie la liste des branches actives pour le paquet spécifié
  • .what paquet : renvoie une description courte du paquet
  • .list Fedora : affiche la liste des commandes disponibles pour le plugin Fedora

Commentaires

1. Le samedi 15 mai 2010, 12:58 par trashy

Je me rend compte après coup que j'ai « oublié » de lister les index présents... Les voici :

  • titleText : les titres du wiki,
  • text : le texte intégral,
  • timestamp : la date de dernière modification,
  • author : l'auteur de l'article
  • contibutor : les différents contributeurs à la page (Ie. les personnes qui ont édité cette page du wiki)
  • category : les catégories des articles
2. Le lundi 17 mai 2010, 21:40 par eponyme

Bravo pour ce plugin, et trustyRC m'a demander de te transmettre ses remerciement pour sa retraite bien méritée !!!!!