diff options
Diffstat (limited to 'src/xmpppy-0.5.0rc1/doc/examples/bot.py')
-rwxr-xr-x | src/xmpppy-0.5.0rc1/doc/examples/bot.py | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/src/xmpppy-0.5.0rc1/doc/examples/bot.py b/src/xmpppy-0.5.0rc1/doc/examples/bot.py deleted file mode 100755 index 42636300..00000000 --- a/src/xmpppy-0.5.0rc1/doc/examples/bot.py +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/python -# -*- coding: koi8-r -*- -# $Id: bot.py,v 1.2 2006/10/06 12:30:42 normanr Exp $ -import sys -import xmpp - -commands={} -i18n={'ru':{},'en':{}} -########################### user handlers start ################################## -i18n['en']['HELP']="This is example jabber bot.\nAvailable commands: %s" -def helpHandler(user,command,args,mess): - lst=commands.keys() - lst.sort() - return "HELP",', '.join(lst) - -i18n['en']['EMPTY']="%s" -i18n['en']['HOOK1']='Responce 1: %s' -def hook1Handler(user,command,args,mess): - return "HOOK1",'You requested: %s'%args - -i18n['en']['HOOK2']='Responce 2: %s' -def hook2Handler(user,command,args,mess): - return "HOOK2","hook2 called with %s"%(`(user,command,args,mess)`) - -i18n['en']['HOOK3']='Responce 3: static string' -def hook3Handler(user,command,args,mess): - return "HOOK3"*int(args) -########################### user handlers stop ################################### -############################ bot logic start ##################################### -i18n['en']["UNKNOWN COMMAND"]='Unknown command "%s". Try "help"' -i18n['en']["UNKNOWN USER"]="I do not know you. Register first." - -def messageCB(conn,mess): - text=mess.getBody() - user=mess.getFrom() - user.lang='en' # dup - if text.find(' ')+1: command,args=text.split(' ',1) - else: command,args=text,'' - cmd=command.lower() - - if commands.has_key(cmd): reply=commands[cmd](user,command,args,mess) - else: reply=("UNKNOWN COMMAND",cmd) - - if type(reply)==type(()): - key,args=reply - if i18n[user.lang].has_key(key): pat=i18n[user.lang][key] - elif i18n['en'].has_key(key): pat=i18n['en'][key] - else: pat="%s" - if type(pat)==type(''): reply=pat%args - else: reply=pat(**args) - else: - try: reply=i18n[user.lang][reply] - except KeyError: - try: reply=i18n['en'][reply] - except KeyError: pass - if reply: conn.send(xmpp.Message(mess.getFrom(),reply)) - -for i in globals().keys(): - if i[-7:]=='Handler' and i[:-7].lower()==i[:-7]: commands[i[:-7]]=globals()[i] - -############################# bot logic stop ##################################### - -def StepOn(conn): - try: - conn.Process(1) - except KeyboardInterrupt: return 0 - return 1 - -def GoOn(conn): - while StepOn(conn): pass - -if len(sys.argv)<3: - print "Usage: bot.py username@server.net password" -else: - 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) |