• Billet écrit dans : Découverte PHP 27.09.2008 Aucune réponse à cet article.

    Dans un article précédent, nous avions vu comment créer un bot IRC en PHP. Seulement assurer la connexion du bot sur le salon était assez laborieux. Un processus php par bot qui tourne sur votre machine, c’est pas folichon.

    Mais grâce à http://new.imified.com, ce souci n’en est plus un ! Ce service web permet de connecter un bot à MSN, IRC, Gtalk etc et ce bot demandera à votre page PHP ce qu’il doit faire.

    Au final nous n’avons plus qu’a se consacrer sur les réponses et les traitements à faire en fonction du dialogue de l’utilisateur (donnée récupérer sous forme de $_GET). Fini le parsage du stream pour détecter la bonne ligne ^^

    Je vous avouerais, j’ai pas encore tester. Mais je compte le faire un de ces quatres :) Je pense que c’est LA solution pour créer rapidement un compagnon virtuel … Imaginer un bot de ce style qui pilote votre twitter, facebook etc. Vous lui parlez, il s’occupe du reste :)

    Vu sur le channel #symfony-fr (irc.freenode.com) grâce à [MA]Pascal.
    Il a crée un bot qui relaie ce que vous lui dites sur un site donné. (Système de prise de notes rapide)
    Ajouter paste@bot.im à votre compte Gtalk et parler lui. Enfin, cela reste surtout un bot de test, réalisé avec Symfony 1.2 et Doctrine (un ORM comme propel)

    Billet écrit dans : Découverte PHP 27.09.2008 Aucune réponse à cet article.
  • Billet écrit dans : Découverte PHP 31.08.2008 Aucune réponse à cet article.

    Bonjour, j’ai pu découvrir comment créer un bot IRC en PHP grâce à la communauté IRCienne de symfony. (Qu’est ce qu’IRC ? Qu’est ce qu’un Bot ?). Tout est expliqué sur cette page.

    Squattant en ce moment le chan (salon de discutions) de symfony-fr, je passe mon temps à remercier les uns les autres. Depuis peu même j’arrive à aider les nouveaux ^^. Je me suis donc dit que ca serait bien d’avoir un système pour compatibiliser le nombre de « merci » par personnes et d’en sortir quelques statistiques.

    Ainsi est née le bot qui sert à avoir une système à points. Chacun peut donc donner, ou enlever un point, et le robot fera le compte.

    Fonctionnement

    Après quelques discutions sur le channel de symfony, j’ai mis au point 4 petites commandes que le bot va interpréter :

    !point guillaume
    !malus guillaume
    !bonus guillaume
    !total

    Comment ca marche ?

    Le bot est écrit en PHP 5 et se lance via une ligne de commande du style :

    php -f utilisation.php

    Il n’y a que peu de classes pour le faire fonctionner :

    1. Une classe de connexion qui s’occupe de créer un flux de donnée (une socket via fsockopen), de se connecter à un channel irc,  de pouvoir transmettre des commandes IRC et de récupérer ligne par ligne ce qui se passe sur le channel.
    2. Une classe principal qui permet de garder le flux de donné ouvert (et donc fait en sorte que le bot reste sur le channel IRC), et qui permet de lancer des Plugins. Son rôle tient plus d’un controlleur PHP que d’une classe à mon sens.
    3. Une interface et une classe de base pour la gestion des Plugins. En fait un plugin est une classe qui contient le coeur d’un programme et permet de réagir vis à vis d’un évènement sur le channel. Un plugin fait donc office d’observateur puisqu’il permet d’écouter des évènements mais il s’obverse lui même vu qu’il traite ces évènements et y répond.

    J’ai donc créer un plugin et modifier un temps soit peu la classe principal pour avoir à tout moment la liste des utilisateurs du channel. Au final le code n’est pas bien compliquer et bien long (330 lignes à tout casser). Les points sont stocker dans une base de données local (voui, pas besoin de serveur en ligne vu que l’on lance le bot en local on peut accèder à une base en local ^^). Quelques random rendent le bot sympathiques pour avoir des phrases de réponses un peu plus humaine.

    Je ne vous donne pas le code source de cette petite application car je le juge « pas très propre » et je pense y faire encore pas mal de modifications dessus :)

    Pour la suite

    Je prévois de faire une application symfony pour ajouter/modifier des phrases de réponses clées. Faire des graphiques de statistiques, et ré-initalisé la base de données à souhait. Tout n’est pas encore fixé, mais j’aimerais bien une console d’administration du bot à distance sympathique :)

    Voilà voilà

    Billet écrit dans : Découverte PHP 31.08.2008 Aucune réponse à cet article.
CV Guillaume chave