aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2010-11-09 01:28:27 +0100
committerThibaut Horel <thibaut.horel@gmail.com>2010-11-09 01:28:27 +0100
commit15ae8d0c1075d4002d614964c33b13326866110d (patch)
treec389567bf5eca68268080e6996ef281c0c288bc1
parentcf27be9bc60d18a558226ca7d248cffbf4324515 (diff)
downloadalias-15ae8d0c1075d4002d614964c33b13326866110d.tar.gz
Add presence managment
-rw-r--r--server.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/server.py b/server.py
index 705ebb7..2472c54 100644
--- a/server.py
+++ b/server.py
@@ -6,7 +6,9 @@ class ObjectComponent(ComponentXMPP):
def __init__(self, jid, secret, server, port):
ComponentXMPP.__init__(self, jid, secret, server, port)
self.add_event_handler("session_start", self.start)
+ self.add_event_handler("presence_probe", self.presenceProbe)
self.add_event_handler("message", self.message)
+ self.add_event_handler("changed_subscription", self.presenceSubscription)
def start(self, event):
pass
@@ -14,6 +16,17 @@ class ObjectComponent(ComponentXMPP):
def message(self, msg):
msg.reply("Thanks for sending\n%(body)s" % msg).send()
+ def presenceSubscription(self, subscription) :
+ if subscription["type"] == "subscribe" :
+ userJID = subscription["from"].jid
+ self.sendPresenceSubscription(pto=userJID, ptype="subscribed")
+ self.sendPresence(pto = userJID)
+ self.sendPresenceSubscription(pto=userJID, ptype="subscribe")
+
+ def presenceProbe(self, event):
+ self.sendPresence(pto = event["from"])
+
+
if __name__ == '__main__' :
commandline = ArgumentParser(description='Connect the alias component to a given server')
commandline.add_argument('-p', '--port',