N-PN White-Hat Project
Aide pour mon premier Bot IRC! - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Questions (https://dev.n-pn.fr/forum/forumdisplay.php?fid=11)
+--- Forum : Question diverses (https://dev.n-pn.fr/forum/forumdisplay.php?fid=30)
+--- Sujet : Aide pour mon premier Bot IRC! (/showthread.php?tid=2773)

Pages : 1 2


RE: Aide pour mon premier Bot IRC! - thxer - 05-03-2013

Pour le code pas de soucis ... il faut je l'arrange un peu mais je code sale vraiment très sale XD
Je te le donnerai dans la semaine


RE: Aide pour mon premier Bot IRC! - Creepy_p0ney - 05-03-2013

merci, je suis un peu sur le même genre de truc en c, pour le moment il ressemble plus àç un ftp mais à terme je vais le changer un petit peu


RE: Aide pour mon premier Bot IRC! - Meyo - 05-03-2013

Euh, je crois que le blog que vous m'avez indiqué explique for bien le principe en donnant un exemple assez bien détaillé. Je suis tout à fait d'accord avec ceux qui conseillent de comprendre l'origine des choses. Et je vous assure que c'est ce qui m'a poussé à entrer dans ce monde sans fin. Parfois on se contente tous d'un copier coller, surtout quand le boulot est colossale, n'empêche que revenir aux sources est tout ce qu'il y a aussi cool.

Je crois que je vais l'attaquer par Python et faire des tests simples (se connecter, rejoindre un #chan, envoyer PRVMSG...etc...). Avec les bases on pourrait toujours aller loin en laissant libre cours à notre imagination.

M.


RE: Aide pour mon premier Bot IRC! - MLT - 05-03-2013

Il faudrait crée une section où chacun partagerai ses codes de bot en différents langages


RE: Aide pour mon premier Bot IRC! - InstinctHack - 05-03-2013

@MLT la section "programmation" est là pour ça, inutile d'en crée une nouvelle.

Citation :Euh, je crois que le blog que vous m'avez indiqué explique for bien le principe en donnant un exemple assez bien détaillé. Je suis tout à fait d'accord avec ceux qui conseillent de comprendre l'origine des choses. Et je vous assure que c'est ce qui m'a poussé à entrer dans ce monde sans fin. Parfois on se contente tous d'un copier coller, surtout quand le boulot est colossale, n'empêche que revenir aux sources est tout ce qu'il y a aussi cool.

Je crois que je vais l'attaquer par Python et faire des tests simples (se connecter, rejoindre un #chan, envoyer PRVMSG...etc...). Avec les bases on pourrait toujours aller loin en laissant libre cours à notre imagination.

M.

alors tant mieux Smile Car comme l'as si bien dis jonky, utilisais des classes, cache un peu le fonctionnement du code (c'est aussi le but) et puis le protocole est assez simple je dirais Smile
SI t'as un problème, n'hésite pas, connecte-toi sur irc, poste sur le forum, ou envoie-moi un mp, on t'aideras Smile

et comme un problème ne devrais pas à être résolu deux fois, voilà une fonction qui parse les élements du message :
Code PYTHON :

(Msg_entier)
Msg_split = Msg_entier.split(' ')
Msg_element = {}

Msg_element['pseudo']           =''
Msg_element['host']             =''
Msg_element['ip']                   =''
Msg_element['command']          =''
Msg_element['channel']          =''
Msg_element['text']             =''

Msg_element['machine']          =''
Msg_element['msg_numerique']    =''

if Msg_split[1] in ["PING","PONG"]:
    Msg_element['command']=Msg_split[1]
    Msg_element['machine']=Msg_split[0][1:]
    if Msg_split[1]=="PING":
        self.irc_msg_send("PONG "+Msg_split[0])
    self.other_debug("reception_ping_pong")
#self.other_print("\t\tc'est un "+Msg_split[1]+" de : "+Msg_element['machine'])


elif Msg_split[0][1:]==self.Data['General']['Name_server']:#ça vient du serveur
    Msg_element['machine']=Msg_split[0][1:]
    if self.Data['Regexs_compilées']["msg_parse_server_reponse_numerique"].match(Msg_split[1]):#si c'est un message de type REPONSE NUMERIQUE
        self.other_debug("digital_reception_server_message_types")
        Msg_element['msg_numerique']=Msg_split[1]
    else:
        self.other_debug("reception_server_message_type_text")

else:
    Msg_split[0]=Msg_split[0][1:]
    try :
        msg_split2=Msg_split[0].split("!")
        Msg_element['pseudo']           =msg_split2[0]
        Msg_element['host']             =msg_split2[1].split('@')[0]
        Msg_element['ip']                   =msg_split2[1].split('@')[1]
    except:
        print("recuperation impossible avec : "+Msg_split[0])

    Msg_element['command']=Msg_split[1]
    Msg_element['channel']=Msg_split[2]
    Msg_element['text']=" ".join(Msg_split[3:])[1:].rstrip()
return Msg_element

 



RE: Aide pour mon premier Bot IRC! - Meyo - 06-03-2013

Merci beaucoup pour votre aide. Voilà qui m'indique un peu le chemin à suivre. Pour ma part j'ai fait quelques recherches et voilà les premières lignes (c'est rien juste le début):

Code :
#! /usr/bin/python
import socket, string, time, threading

network = 'xxxxxxxxx'
channel = '#Chanel-x-x-x-x'
pseudo  = 'Meyo'
port    = 6667
dest = "XXXX"
message = ""
connecter = 1
msg = ""
val = 1

def pingpong ( valeur):
    if valeur.find('PING') != -1:
        irc.send('PONG '+valeur.split()[1]+'\r\n')
    


irc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
irc.connect((network,port))
irc.send('NICK %s\r\n' % pseudo)
irc.send('USER %s %s %s :Python IRC bot\r\n' % (pseudo,pseudo,pseudo))

C'est nul comparé à ce que je viens de lire Undecided
Je crois que je suis loin de ma perfection et je compte me baser sur ce que vous m'avez donné.
Ceci étant dit, je cois que je vais vous envoyer au fur et à mesure mon code pour avoir votre avis et pour une éventuelle correction Tongue


RE: Aide pour mon premier Bot IRC! - Junky - 06-03-2013

Bonjour.

Alors un conseil pour ton code. Déjà code propre dès le début. Fait un "__main__", Les variables globales s'pas top.

Si je te dis ceci c'est pour que tu prennes l'habitudes de le faire. Et à juste tritre. Tu te lance dans un Bot IRC, ton code va grossir,:

* tu va avoir du threading certainement donc des class
* a l'interieur de celle-ci, des fonctions
* puis d'autres fonction,
* etc...

Enfin je suis très loins de pouvoir donner des conseils finallement car je ne dispose pas des qualitées de certains présent ici ou non, mais y'as des petites choses à suivre dès le début si tu ne veut pas te perdre dans ton propre code. Wink

Junky


RE: Aide pour mon premier Bot IRC! - InstinctHack - 06-03-2013

Junky as tout à fait raison Smile

N'hésite pas à commenter et si tu connait la POO, utilise la, tu verras c'est plus simple après :p