aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2010-11-11 10:31:42 +0100
committerThibaut Horel <thibaut.horel@gmail.com>2010-11-11 10:31:42 +0100
commit9c346b3143433fa075973f9ea580c19becdbafa4 (patch)
tree84b12a4d4538ab546182de7a54a42f9e0b782c7a
parent606420c2418eda560a6e7fb855216c2f2b9b9a0b (diff)
downloadalias-9c346b3143433fa075973f9ea580c19becdbafa4.tar.gz
When the component exits, send unavalaible status to all subscribed users
Keyboard Interrupt (Ctrl-C) now works properly
-rw-r--r--server.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/server.py b/server.py
index 21c4929..c561193 100644
--- a/server.py
+++ b/server.py
@@ -1,6 +1,7 @@
from sleekxmpp.componentxmpp import ComponentXMPP
from argparse import ArgumentParser
from user import UserHandler
+from sleekxmpp.xmlstream.xmlstream import XMLStream
class ObjectComponent(ComponentXMPP):
@@ -15,6 +16,11 @@ class ObjectComponent(ComponentXMPP):
def start(self, event):
for user in self.userHandler.getUserList() :
self.sendPresence(pto = user)
+
+ def disconnect(self, reconnect=False):
+ for user in self.userHandler.getUserList() :
+ self.sendPresence(pto = user, ptype = "unavailable")
+ XMLStream.disconnect(self, reconnect)
def message(self, msg):
msg.reply("Thanks for sending\n%(body)s" % msg).send()
@@ -53,6 +59,8 @@ if __name__ == '__main__' :
if component.connect() :
print 'Component', args.name, 'connected to', args.host + ':' + str(args.port)
- component.process()
+ component.process(False)
else :
print "Couldn't connect"
+
+