Skip to content

Instantly share code, notes, and snippets.

@mattd
Created May 3, 2011 14:04
Show Gist options
  • Save mattd/953374 to your computer and use it in GitHub Desktop.
Save mattd/953374 to your computer and use it in GitHub Desktop.
class RelayBot(ClientXMPP):
def __init__(self, jid, password) :
super(RelayBot, self).__init__(jid, password)
self.add_event_handler("session_start", self.handle_session_start)
self.add_event_handler("presence_subscribe",
self.handle_presence_subscribe)
self.add_event_handler("presence_unsubscribe",
self.handle_presence_unsubscribe)
self.add_event_handler("message", self.handle_message)
def run(self):
self.connect()
self.process(threaded=False)
def handle_session_start(self, event):
self.send_presence(pstatus="Send me a message")
def handle_presence_subscribe(self, presence):
self.update_roster(presence['from'], subscription='both')
def handle_presence_unsubscribe(self, presence):
self.del_roster_item(presence['from'])
def handle_message(self, message):
self.get_roster()
recipients = [address for address in self.roster.keys()
if self.roster[address]['subscription'] != 'none']
for address in recipients:
self.send_message(address, message["body"])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment