Terrance/SkPy

No event thrown when other party reads a message sent via SkPy

truenicoco opened this issue · 1 comments

When sending a message via skpy, getEvents() yield:

  • A SkypeNewMessageEvent with my own message
  • A SkypeChatUpdateEvent that looks like a message receipt

But when the other party reads the message, no event arrives in skpy.

Account type

Microsoft account - application password

Conversation details

1 on 1

Steps to reproduce

from threading import Thread

import skpy

def skype_blocking():
    while True:
        for event in sk.getEvents():
            print(event)

sk = skpy.Skype(u, p)

Thread(target=skype_blocking).start()

sk.contacts["Some skype ID"].chat.sendMsg("some text")

a = input()  # just to keep the thing going

Result

When the other party reads the message, I can see his "read mark" in the skype web UI but nothing is printed on the console.

(I did not include the logs since they weren't relevant IMHO, let me know if you want them)

The event stream should handle unknown events (by returning a base event class instance), so if you're not seeing any events when the other party reads your message then the server just isn't sending you one.

It's possible that we need to subscribe to them manually (as was recently changed with contact status changes) -- the existing chat update events were implemented as a best-guess interpretation of the events we were receiving, and was implemented before Skype exposed read markers in chats.