Xee XMPP Bot

Rédigé par BeHuman Aucun commentaire
Classé dans : Python, Hack Mots clés : jabber, xmpp, chat, dialogue, communication, robot

Xee est un bot pour protocole XMPP, Je me suis basé sur le script d'exemple de la doc python-xmpp. Le champs username n'est pas important, il sert juste à savoir quoi afficher comme pseudo : 

Xee Utilise PYTHON-XMPP. Si il n'est pas installé, vous pouvez l'installer via APT:

sudo apt-get install python-xmpp

Exemple de commande:

$ ./xee compte@jappix.com "123456" "Blaz" "est en train de fumer un clope :P" "est dehors en bas de sa porte d'entrée :)" "./fichier.log"

Help:

$ ./xee -h 
XEE XMPP BOT 
GNU/GPL v3 
XEE is a bot for the XMPP protocol 
Create by BeHuman (craft@ckdevelop.org) 
Usage: 
    xee username@server.net password username info dispo file_log 
Help: 
    xee -h or --help
#!/usr/bin/python 
# -*- coding: utf8 -*- 

import sys, os, string 
import xmpp 


intro="""XEE XMPP BOT 
GNU/GPL v3 
XEE is a bot for the XMPP protocol 
Create by Be Human (craft at ckdevelop.org)""" 

############################ bot logic start ##################################### 

bonjour=["salut", "slt", "bonjour", "bjr", "yop", "yo", "hello", "hi", "lu"] 
aurevoir=["tchao", "by", "bye", u"++", u"a+", u"a +", u"@+", u"@ +", "aurevoir", u"à plus", u"a plus"] 
faire=["quesque", "keske", "kesk", u"quesqu'il", "keskil", u"que fait", u"que fais", u"fais tu", u"fait tu", u"fait il", u"tu fais", u"il fait", u"tu fait", u"il fais"] 
dispo=[u"où", u"ou ai", u"ou é", u"ou es", u"ou ais", u"où ai", u"où é", u"où es", u"où ais"] 
insulte=[u"enculé", u"connard", u"batard", u"encule", u"salop"] 
def messageCB(conn,mess): 
    text=mess.getBody() 
    retour="Désolé, je ne suis qu'un bot pré-programmé,\nje ne comprend pas ce que vous me dîtes." 
    bbjr=False 
    barv=False 
    for a in bonjour: 
        if a in text: 
            bbjr=True 
            retour="Salut, je suis Xee le bot de "+NameUser+".\nIl n'ai pas là pour le moment." 
    for a in aurevoir: 
        if a in text: 
            barv=True 
            retour="/me reste à ta disposition :P ++" 
    for a in faire: 
        if a in text: 
            retour="/me "+infofaire 
    for a in dispo: 
        if a in text: 
            retour="/me "+infodispo 
    for a in insulte: 
        if a in text: 
            retour="C'est toi le %s !!!" % a 
            if bbjr: 
                retour="Salut mais pas la peine d'être vulgaire !!!" 
            if barv: 
                retour="Tchao %s !!!" % a 
    conn.send(xmpp.Message(mess.getFrom(),retour)) 
    out=open(sys.argv[6], 'a') 
    nick=mess.getFrom().getNode() 
    intext=nick+": "+text+"\n\n" 
    outtext="Xee: %s\n\n" % retour 
    out.write(intext) 
    out.write(outtext) 
    out.close 
     

############################# bot logic stop ##################################### 

def StepOn(conn): 
    try: 
        conn.Process(1) 
    except KeyboardInterrupt: 
        return 0 
    return 1 

def GoOn(conn): 
    while StepOn(conn): pass 

def help(): 
    print(intro+"""\nUsage: 
    xee     
Help: 
    xee -h or --help""") 
    sys.exit(1) 

if len(sys.argv)<7: 
    if (len(sys.argv) < 2): 
        print("\n[!]Mauvais nombre d\'arguments[!]\n") 
        help() 
    else: 
        if sys.argv[1] == "-h" or sys.argv[1] == "--help": 
            help() 
        else: 
            print("\n[!]Mauvais nombre d\'arguments[!]\n") 
            help() 
else: 
    if sys.argv[1] == "-h" or sys.argv[1] == "--help": 
        help() 
    NameUser=sys.argv[3] 
    infofaire=sys.argv[4] 
    infodispo=sys.argv[5] 
    jid=xmpp.JID(sys.argv[1]) 
    user,server,password=jid.getNode(),jid.getDomain(),sys.argv[2] 
    conn=xmpp.Client(server)#,debug=[]) 
    conres=conn.connect() 
    if not conres: 
        print "Unable to connect to server %s!"%server 
        sys.exit(1) 
    if conres<>'tls': 
        print "Warning: unable to estabilish secure connection - TLS failed!" 
    authres=conn.auth(user,password) 
    if not authres: 
        print "Unable to authorize on %s - check login/password."%server 
        sys.exit(1) 
    if authres<>'sasl': 
        print "Warning: unable to perform SASL auth os %s. Old authentication method used!"%server 
    conn.RegisterHandler('message',messageCB) 
    conn.sendInitPresence() 
    print "Bot started." 
    GoOn(conn)

 

Écrire un commentaire

Quelle est la dernière lettre du mot juban ?

Fil RSS des commentaires de cet article