diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2010-11-11 10:31:42 +0100 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2010-11-11 10:31:42 +0100 |
| commit | 9c346b3143433fa075973f9ea580c19becdbafa4 (patch) | |
| tree | 84b12a4d4538ab546182de7a54a42f9e0b782c7a | |
| parent | 606420c2418eda560a6e7fb855216c2f2b9b9a0b (diff) | |
| download | alias-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.py | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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" + + |
