SHARE
TWEET

bino-echobot.py

a guest Aug 31st, 2010 173 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #echobot.py
  2. from twisted.words.xish import domish
  3. from wokkel.xmppim import MessageProtocol, AvailablePresence
  4.  
  5. from twisted.web import xmlrpc
  6.  
  7.  
  8. class EchoBotProtocol(MessageProtocol):
  9.         def connectionMade(self):
  10.                 print "Connected!"
  11.  
  12.                 # send initial presence
  13.                 self.send(AvailablePresence())
  14.  
  15.         def connectionLost(self, reason):
  16.                 print "Disconnected!"
  17.  
  18.         def onMessage(self, msg):
  19.                 print str(msg)
  20.  
  21.                 if msg["type"] == 'chat' and hasattr(msg, "body"):
  22.                         reply = domish.Element((None, "message"))
  23.                         reply["to"] = msg["from"]
  24.                         reply["from"] = msg["to"]
  25.                         reply["type"] = 'chat'
  26.                         reply.addElement("body", content="echo: " + str(msg.body))
  27.  
  28.                         self.send(reply)
  29.         def mycall(self, msg):
  30.                 print "ooppss= "+(msg)
  31.  
  32.                 reply = domish.Element((None, "message"))
  33.                 reply["to"] = 'bino@jabber.int'
  34.                 reply["from"] = 'iwic02@jabber.int'
  35.                 reply["type"] = 'chat'
  36.                 reply.addElement("body", content='Some body sent this : ' + str((msg)))
  37.  
  38.                 xmppclient.send(reply)
  39.                
  40.  
  41.                 return 'your msg is : '+ msg
  42.  
  43. class MyRPC(xmlrpc.XMLRPC):
  44.         def __init__(self):
  45.                 self.allowNone = True
  46.                 self.useDateTime = False
  47.                 self.fc = EchoBotProtocol()
  48.                 #self.fc = echobot()
  49.  
  50.         def xmlrpc_dispatch(self, m):
  51.                 return self.fc.mycall(m)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top