diff options
Diffstat (limited to 'skype/skyped.py')
-rw-r--r-- | skype/skyped.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/skype/skyped.py b/skype/skyped.py index 6d56cf82..186d38cc 100644 --- a/skype/skyped.py +++ b/skype/skyped.py @@ -52,7 +52,8 @@ def input_handler(fd, io_condition): input = fd.recv(1024) for i in input.split("\n"): if i: - fd.send((skype.send(i.strip()) + "\n").encode(locale.getdefaultlocale()[1])) + for j in skype.send(i.strip()): + fd.send((j + "\n").encode(locale.getdefaultlocale()[1])) return True def server(host, port): @@ -84,7 +85,7 @@ class SkypeApi(dbus.service.Object): sys.exit("Can't find any Skype instance. Are you sure you have started Skype?") reply = self.send('NAME ' + CLIENT_NAME) - if reply != 'OK': + if reply[0] != 'OK': sys.exit('Could not bind to Skype client') reply = self.send('PROTOCOL 5') @@ -116,7 +117,18 @@ class SkypeApi(dbus.service.Object): except LookupError: pass mainloop.quit() - dprint('<< ' + reply) + if "\n" in reply: + # crappy skype prefixes only the first line for + # multiline messages so we need to do so for the other + # lines, too. this is something like: + # 'CHATMESSAGE id BODY first line\nsecond line' -> + # 'CHATMESSAGE id BODY first line\nCHATMESSAGE id BODY second line' + prefix = " ".join(reply.split(" ")[:3]) + reply = ["%s %s" % (prefix, i) for i in " ".join(reply.split(" ")[3:]).split("\n")] + else: + reply = [reply] + for i in reply: + dprint('<< ' + i) return reply class Options: |