Vous n'êtes pas identifié(e).

Top posteurs

Statistiques

Partenaires

  • eXolia Hosting
  • Eggdrop.fr

#1 09/11/2011 22:21:11

Nic0
IRCzien en herbe
Inscription : 09/11/2011
Messages : 83
Site Web

[Python] Construire un bot IRC

Salut,

Le code suivant s'appuie sur la bibliothèque de irclib, disponible sur le lien suivant: http://python-irclib.sourceforge.net/
La bibliothèque est fonctionnelle et toujours maintenu, certainement disponible dans les dépôts de votre distribution Linux favorite (en tout cas c'est mon cas)

L'utilisation est on ne peut plus simple, testé à l'instant avec Python 2.7, le but, est de faire rejoindre un salon, et d'écrire en console tout les messages écrit sur le salon.

La bibliothèque repose sur un système de callback qui est assez fréquent pour ce genre de choses, le code, écrit un peu à la va-vite peut être amélioré de bien des façons (gestion d'exception en autre)

La ligne à adapter selon les besoins est :

Code: Python
MyBot('irc.monserveur.tdl', 6667, 'botnick', '#salon')
Code: Python
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
 
from irclib import IRC
 
class MyBot(object):
 
    def __init__(self, irc, port, nick, channel):
        self.channel = channel
        self.irc = IRC()
        self.bot = self.irc.server()
        self.bot.connect(irc, port, nick)
        self.init_callback()
        self.irc.process_forever()
 
    def init_callback(self):
        self.bot.add_global_handler('welcome', self.on_connect)
        self.bot.add_global_handler('pubmsg', self.on_pubmsg)
 
    def on_connect(self, connection, event):
        self.bot.join(self.channel)
 
    def on_pubmsg(self, connection, event):
        msg = event.arguments()
        print msg[0]
 
if __name__ == '__main__':
    MyBot('irc.monserveur.tdl', 6667, 'botnick', '#salon')

Edit: Si vous avez mis ça dans le fichier 'bot.py', n'oubliez pas de rendre le fichier exécutable :

chmod +x bot.py
#puis on lance
./bot.py

Dernière modification par Nic0 (09/11/2011 22:26:38)


Linux and programming blog

Hors ligne

#2 02/01/2014 18:39:17

Oxyg3n3
Nouveau IRCzien
Inscription : 01/01/2013
Messages : 47
Site Web

Re : [Python] Construire un bot IRC

Bonjour,

je viens de tester votre codage et j'ai cette erreur et je trouve pas comment la rectifier...

./bot.py: ligne3: $'\r' : commande introuvable
./bot.py: ligne4: Erreur de syntaxe près du symbole inattendu « ( »
'/bot.py: ligne4: `class MyBot(object):


Nous avons la boîte magique et vous les secrets, pourquoi ne pas les partager avec nous ?

Hors ligne

#3 03/01/2014 10:18:40

Darks
IRCzien
Inscription : 04/07/2011
Messages : 122

Re : [Python] Construire un bot IRC

Oxyg3n3 a écrit :

Bonjour,

je viens de tester votre codage et j'ai cette erreur et je trouve pas comment la rectifier...

./bot.py: ligne3: $'\r' : commande introuvable
./bot.py: ligne4: Erreur de syntaxe près du symbole inattendu « ( »
'/bot.py: ligne4: `class MyBot(object):

Je pense que cette erreur provient des lignes shebang en entête du fichier ou d'un problème de séparateurs.
Je te rappelle que le python est indentation-sensible, c'est à dire que ce sont les indentations qui délimitent un bloc d'instruction pour l'interpéteur.
Peux tu copier coller le code exact que tu as dans ton fichier ? (limite joindre le fichier pour que je puisse le voir sous edtieur linux)
Peux tu préciser ton système d'exploitation ?
Peux tu préciser le dossier de l'interpréteur python ?

Hors ligne

#4 03/01/2014 19:47:19

Oxyg3n3
Nouveau IRCzien
Inscription : 01/01/2013
Messages : 47
Site Web

Re : [Python] Construire un bot IRC

Peux tu préciser ton système d'exploitation ?

Je tourne sous debian


Nous avons la boîte magique et vous les secrets, pourquoi ne pas les partager avec nous ?

Hors ligne

Pied de page des forums

448160 visites ( 181 aujourd'hui ) 5 visiteurs en ligne
Copyright © 2004 - 2013 IRCz