Xee XMPP Bot
Rédigé par BeHuman
Aucun commentaire

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
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)