summaryrefslogtreecommitdiff
path: root/src/xmpppy-0.5.0rc1/doc/examples/bot.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpppy-0.5.0rc1/doc/examples/bot.py')
-rwxr-xr-xsrc/xmpppy-0.5.0rc1/doc/examples/bot.py94
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)