Documentation - Installation de LazyBot (Français)

Transcription

Documentation - Installation de LazyBot (Français)
Documentation - Installation de LazyBot
(Français)
Florian Metton)
26 juin 2015
Table des matières
I
Usage général
1
1 Installation et configuration
1.1 Télécharger le bot . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Configurer le bot . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
2 Des plugins partout
4
3 Contenu de settings.ini
5
4 lazybot2.py arguments
6
II
7
Pour les développeurs
5 Création de plugins
5.1 Les bases . . . . . . . . . . . . . . . . . . .
5.1.1 Template d’un module . . . . . . . .
5.1.2 La méthode de chargement loadinit .
5.1.3 La classe Module . . . . . . . . . . .
5.2 Les signaux . . . . . . . . . . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
9
9
9
9
Résumé
LazyBot est un Bot IRC Modulaire utilisant Python. La totalité du code de
l’application est sous licence GPLV3. Ce document vous permettra de vous aider
dans l’installation du bot IRC. Vous apprendrez dans ce document comment
l’utiliser, le configurer, mais aussi comment créer des plugins pour LazyBot.
Première partie
Usage général
1
Chapitre 1
Installation et configuration
1.1
Télécharger le bot
Nous partons du postulat que Python (sur sa version 3) a déjà été installé
sur votre machine.
Pour commencer, vous devez télécharger LazyBot. Pour ce faire, rendez-vous
sur ce site : http://lazybot.lazyone.fr/download.php.
Il existe deux versions. La première stable est la dernière version fonctionnelle. Pas forcément la plus récente, mais le meilleur choix. La version On The
Fly (ou en vol ) constitue le pendant INSTABLE . Peut fonctionner, mais
sans totale certitude (non testé).
Une fois le fichier téléchargé, vous devez décompresser le fichier compressé dans
un dossier de votre choix.
tar zxvf lazybot-stable-44c39eb.tar.gz
cd lazybot-stable-44c39eb
Sous Windows, vous pouvez utiliser 7zip.
Une fois téléchargé, il peut être nécessaire de créer un répertoire data dans
le dossier de LazyBot. Ceci n’est plus nécessaire depuis LazyBot 2.0.7
2
1.2
Configurer le bot
Une configuration à la main peut être nécessaire. Par défaut, LazyBot se configure sur localhost (port 6667. Mais si vous souhaitez configurer vous même
LazyBot avant de le lancer, créez simplement un fichier INI :
[main]
profile = principal
[profile.principal]
connect.server = localhost
connect.port = 6667
connect.ident = LazyBot
connect.realname = LazyBot 2.0.5 - LazyOne Software
connect.nick = LazyBot LazyBot_ LazyBot__
Section
[main]
Clé
profile
[profile.profil ]
connect.server
[profile.profil ]
[profile.profil ]
connect.port
connect.ident
[profile.profil ]
connect.realname
[profile.profil ]
connect.nick
Valeur
Il s’agit du profil sélectionné.
Vous pouvez en définir un manuellement.
Serveur IRC à connecter.
(Défaut : localhost).
Port à connecter (Défaut : 6667)
Il s’agit de l’identité. Elle
se situe entre le pseudo et
l’host de la personne (nickname !ident@host)
Il s’agit du message associé au
pseudo qui apparaı̂t quand l’on
fait un Whois
Il s’agit du/des pseudos du bot.
Vous pouvez en définir plusieurs
séparé par des espaces. Si le premier est utilisé, il passera au second et ainsi de suite.
Certain plugins incluent leur propre configuration dans settings.ini. Référez
vous à leur documentation associée pour plus de renseignement.
Adaptez les valeurs selon vous convenances, puis, sauvegardez votre fichier. A
présent, si vous lancez le bot, il devrait se connecter sans encombre sur IRC.
Félicitation votre bot est installé !
3
Chapitre 2
Des plugins partout
LazyBot peut supporter une vaste collection de plugins. Allant du Quizz au bot
de statistiques, tout est possible. Il existe en général plusieurs types de plugins :
— Des plugins standards qui se contentent simplement de faire des choses.
Ils émettent souvent des signaux.
— Des plugins de composant principal (ou core) qui n’émettent quasiment
jamais (ou peu) de signaux.
— Des plugins Wrappers qui permettent d’interface un plugin standard a
un composant principal. Ils reçoivent et émettent des signaux.
Exemple concret :
Un bot de quizz, pose des questions. Quand un utilisateur donne une bonne
réponse, il émet un signal GOODRESPONSE. Mais ne donne aucun points.
Un autre module, gère une sorte de monnaie virtuelle.
Un Wrapper spécifique pour le Quizz vers Monnaie virtuelle, va réceptionner les
signaux GOODRESPONSE pour les transmettre au module de monnaie, qui
va alimenter le compte virtuel de l’utilisateur.
Peu importe leur style, ces modules doivent être mis dans le répertoire ./modules/lazybot (dans le répertoire de LazyBot).
Des modules officiels et/ou validés, peuvent être trouvés ici http://lazybot.
lazyone.fr/modules.php
Nous mettons tout en œuvre pour filtrer les modules dangereux pour LazyBot. Toutefois, sachez que nous ne pouvons être responsable quant à l’installation d’un plugin tiers douteux. Nous appelons donc à votre plus grande
vigilance. Pour leur installation et configuration, nous vous invitons à consulter
la documentation fournit avec le module en question.
4
Chapitre 3
Contenu de settings.ini
Cette section va traiter du fichier de configuration. Avant de commencer, sachez que le bot se base sur un système de profil. Un profil est un ensemble de
configuration. Pour switcher d’un profil à un autre, il suffit de modifier la valeur
profile dans [main] . Par exemple vous créez un profil pour :
— Utiliser plusieurs connexions sur plusieurs serveurs (Voir les arguments
plus bas).
— Utiliser un profil de test pour faire vos essais.
Voilà un exemple de fichier de configuration vide.
[main]
profile = principal
[profile.principal]
connect.server = localhost
connect.port = 6667
connect.ident = LazyBot
connect.realname = LazyBot 2.0.5 - LazyOne Software
connect.nick = LazyBot LazyBot_ LazyBot__
5
Chapitre 4
lazybot2.py arguments
Pour le moment, LazyBot2 ne supporte pas d’arguments. Cela devrait changer
dans la version 2.0.8.
6
Deuxième partie
Pour les développeurs
7
Chapitre 5
Création de plugins
Cette partie traite de la création de plugins pour LazyBot. Nous verrons les bases
et la création de nouveaux modules. Nous considérerons que vous connaissez déjà
Python, ainsi que le principe de la programmation orienté objet,
5.1
Les bases
Un module contient plusieurs choses :
— Un fichier .py
— Une méthode de chargement loadinit
— Une classe Module()
Quand un module est chargé dans LazyBot, il envoie l’instance de lui même dans
la classe Module(). Cette instance peut être récupérée par le module, permettant
ainsi l’accès aux méthodes et attributs du composant principal.
Les modules communiquent par Signaux. Les modules doivent associer leur
méthodes à ces signaux (par exemple, quand un utilisateur join un canal, un
signal est envoyé aux modules).
8
5.1.1
Template d’un module
Un module minimaliste est très simple :
def loadinit(mh):
return True
name = "Template"
version = "2.0"
description = "Module Template"
author = "Author <mail@mail>"
class Module():
def __init__(self, mh):
self.mh = mh
self.mh.listensignal("CMESSAGE", self.parsemessage)
def parsemessage(self, user, channe, message):
if self.channel == "#test":
self.mh.send("PRIVMSG #test :%s a dit %s !" %
(user.getName(), message))
self.mh.emitsignal("RECEIVED", message)
Dans cet exemple, le module écoute tous les messages des canaux de discussion du canal #test. Dés qu’il reçoit un message, il répond et envoie un signal
RECEIVED. Le signal Received peut être écouté par un autre modules.
5.1.2
La méthode de chargement loadinit
Nous allons nous attarder sur la méthode loadinit. Cette méthode est appelée
juste avant l’instanciation de Module() par le composant principal. L’instance
du composant principal est passé en premier argument, permettant ainsi d’avoir
accès à toute les informations du client. Elle doit retourner True pour valider le
chargement du module. Sans quoi, Module() ne sera pas instancié.
ATTENTION toutefois, cette méthode doit exister d’une façon ou d’une
autre, sinon le composant principal considérera le résultat comme False.
5.1.3
La classe Module
La classe Module() est la classe principal du module. Rien ne vous empêche de
créer d’autre classes, mais Module() sera le centre névralgique du Module.
9
5.2
Les signaux
Cette partie traite les bases des signaux que LazyBot envoie au plugin.
TODO : ... Liste des signaux ici ...
10

Documents pareils