Eggdrop
Un eggdrop (ombre d'œuf) est un robot IRC populaire pour sa souplesse et la bibliothèque étoffée d'extensions et de scripts.
Installation recommandée pour Linux, FreeBSD, NetBSD, OpenBSD, etc
L'installation depuis la dernière archive originale de l'éditeur a l'avantage de pouvoir compiler le robot sur sa machine, de mieux comprendre le fonctionnement du bot et de paramétrer plus finement. Par contre cette installation est longue et nécessite des compétences d'administrateur système.
Préparation
Nous avons besoin de ces plusieurs archives :
- Le robot IRC
- Le module Gseen pour avoir une commande !seen améliorée + traduction des messages en français
- Le module MegaHAL pour un robot qui interagit avec les utilisateurs (attention aux petites configs le cpu est activement utilisé)
URLs :
- http://www.geteggdrop.com/
- http://www.kreativrauschen.de/gseen.mod/gseen.mod.1.1.1.dev3.tar.gz
- http://www.kreativrauschen.de/gseen.mod/langfiles/gseen.fr.Mad_Fab.lang
- http://bin.barkerjr.net/pub/irc/eggdrop/modules/megahal/megahal.mod.2.7.tar.bz2
Sur votre compte *utilisateur*, décompressez les sources (vous avez de grandes chances de les garder longtemps) :
greudin@castor:~$>tar -zxvf eggdrop1.6.18.tar.gz
greudin@castor:~$>cd eggdrop1.6.18 greudin@castor:~/eggdrop1.6.18$>ls CONTENTS NEWS config.status language COPYING README configure logs ChangeLog aclocal.m4 configure.ac lush.h FEATURES config.cache disabled_modules misc INSTALL config.h doc scripts Makefile config.h.in eggdrop.conf src Makefile.in config.log help text greudin@castor:~/eggdrop1.6.18$>
La commande !seen par défaut n'est pas idéale, nous allons récupérer une version plus complète et rapide :
greudin@castor:~/eggdrop1.6.18$>cd src/mod greudin@castor:~/eggdrop1.6.18/src/mod$>wget http://www.kreativrauschen.de/gseen.mod/gseen.mod.1.1.1.dev3.tar.gz greudin@castor:~/eggdrop1.6.18/src/mod$>tar -zxvf gseen.mod.1.1.1.dev3.tar.gz
MegaHAL est logiciel en intelligence artificielle simulant des conversations. On s'adresse au robot qui réponds suivant ce qui a été dit sur le chan.
greudin@castor:~/eggdrop1.6.18/src/mod$>wget http://bin.barkerjr.net/pub/irc/eggdrop/modules/megahal/megahal.mod.2.7.tar.bz2 greudin@castor:~/eggdrop1.6.18/src/mod$>tar -jxvf megahal.mod.2.7.tar.bz2 greudin@castor:~/eggdrop1.6.18/src/mod$>cd ../..
Compilation
Les sources de ce module sont maintenant installées, nous continuons par le processus compilation (les documents en anglais pour la compilation sont INSTALL et doc/COMPILE-GUIDE).
Commencez par la vérification de la présence des outils de compilation :
greudin@castor:~/eggdrop1.6.18$>./configure
En cas d'erreur installez les paquetages demandés (apt-get install, pkg_add -r, etc).
S'il n'y a aucune erreur, nous compilons le bot et ses modules :
greudin@castor:~/eggdrop1.6.18$>make config
greudin@castor:~/eggdrop1.6.18$>make
Le robot est compilé, il ne reste plus qu'à l'installer :
greudin@castor:~/eggdrop1.6.18$>make install && make clean
Ceci installera le bot dans :
/home/user/eggdrop
Copiez le robot compilé dans le dossier définitif.
Configuration simple
Modifiez le fichier de configuration :
greudin@castor:~$>cd bots/monrobot/ greudin@castor:~/bots/monrobot$>cp eggdrop.conf monrobot.conf greudin@castor:~/bots/monrobot$>vim monrobot.conf
Le fichier conf contient de nombreuse section, pour lancer rapidement le robot nous allons d'abord modifier le strict minimum.
Changez la première ligne vers chemin vers votre script exécutable (shebang) :
#! /path/to/executable/eggdrop
en :
#!/home/greudin/bots/monrobot.conf
Ensuite, effacez les lignes commençant par :
die "..."
Changez les premiers paramètres :
set username "monrobot" addlang "french"
Indiquez le nom du canal à surveiller et le fichier où seront enregistrés les logs
logfile jpk #canal1 "logs/canal1.log"
Puis : set nick "monrobot" set altnick "monrobot_" set realname "monrobot est un robot."
Important ! Choisissez au moins 3 serveurs proche géographiquement de votre shell :
set servers {
irc.lame.net
irc.fr.lame.net
irc.de.lame.net
}
Décommentez la section concernant les canaux où se trouvera le bot :
channel add #canal1 {
...
}
Décommentez la ligne du moteur de chiffrage :
loadmodule blowfish
Tout en bas du fichier conf, rajoutez :
- La configuration du module gseen
source gseen.conf
- Le chargement du module d'intelligence artificielle et les paramètres pour le canal souhaité
loadmodule megahal channel set #canal1 +megahal +learnall set mega_wpm 0
Le robot a maintenant son fichier de configuration de base, vous allez surement y revenir pour ajuster des choses comme le flood, des nouveaux scripts, etc.
Premier démarrage
Le premier démarrage se fait rarement avec succès, notez la toute première erreur affiché pour ensuite corriger votre oubli dans le fichier .conf.
greudin@castor:~/bots/monrobot$>./eggdrop -m monrobot.conf
S'il n'y a aucune erreur le bot sera lancé en tâche de fond (background pid), allez vite sur IRC et vérifiez sa présence en ligne et sur le bon canal :
/whois monrobot
Présentez-vous au robot comme le propriétaire :
/msg monrobot HELLO
Enregistrez un mot de passe :
/msg monrobot PASS un_mdp
Voilà votre robot est configuré et prêt à être relancé. Terminez le processus ou arretez-le avec la commande DIE :
/msg monrobot DIE un_mdp
Production
Lancez votre bot depuis son dossier :
greudin@castor:~/bots/monrobot$>./monrobot.conf
Il est possible que le bot plante, il vous faut rajouter un cronjob surveillant le processus régulièrement pour le relancer.
greudin@castor:~/bots/monrobot$>cd scripts/ greudin@castor:~/bots/monrobot/scripts$>./autobotchk monrobot.conf -15 -noemail
Le bot sera surveillé toutes les 15 minutes et relancé silencieusement (aucun email). Voici à quoi la crontab ressemblera :
greudin@castor:~/bots/monrobot/scripts$>crontab -l 0,15,30,45 * * * * /home/greudin/bots/monrobot/Lamestbot.botchk >/dev/null 2>&1
Utilisation
La party line
La party line est l'interface de contrôle du robot, directement en telnet ou en chat DCC.
.chanset #chan chanmode +nti-k
Ajouts
Statistiques web avec Pisg
Pisg est un script Perl qui génère une jolie page web à partir des données brutes du fichier .log.