diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2008-07-12 22:10:31 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@frugalware.org> | 2008-07-12 22:10:31 +0200 |
commit | 4b0092ef36e57d7043720078482d01212749e9f1 (patch) | |
tree | 45e6b6fbaec3c5209a267c63f4b45e41be170cad | |
parent | 9033a0ab5c23a5031f45ab4982c762809db41cd6 (diff) |
skyped: send periodically a 'PING' to the client
also ignore the 'PONG' output from it (so don't forward it to skype)
-rw-r--r-- | skype/skyped.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/skype/skyped.py b/skype/skyped.py index 32048fdd..dbbd2e53 100644 --- a/skype/skyped.py +++ b/skype/skyped.py @@ -63,7 +63,7 @@ def input_handler(fd, io_condition): skype.send(i.strip()) return True -def idle_handler(skype): +def skype_idle_handler(skype): try: c = skype.skype.Command("PING", Block=True) skype.skype.SendCommand(c) @@ -71,6 +71,16 @@ def idle_handler(skype): dprint("Warning, pinging Skype failed (%s)." % (s)) return True +def bitlbee_idle_handler(skype): + if options.conn: + try: + e = "PING" + options.conn.send("%s\n" % e) + except Exception, s: + dprint("Warning, sending '%s' failed (%s)." % (e, s)) + options.conn.close() + return True + def server(host, port): global options try: @@ -161,7 +171,7 @@ class SkypeApi: options.conn.close() def send(self, msg_text): - if not len(msg_text): + if not len(msg_text) or msg_text == "PONG": return e = msg_text.decode(locale.getdefaultlocale()[1]) dprint('>> ' + e) @@ -272,5 +282,6 @@ if __name__=='__main__': skype = SkypeApi() except Skype4Py.SkypeAPIError, s: sys.exit("%s. Are you sure you have started Skype?" % s) - gobject.timeout_add(2000, idle_handler, skype) + gobject.timeout_add(2000, skype_idle_handler, skype) + gobject.timeout_add(60000, bitlbee_idle_handler, skype) gobject.MainLoop().run() |