Terrance / SkPy

An unofficial Python library for interacting with the Skype HTTP API.
https://skpy.t.allofti.me
BSD 3-Clause "New" or "Revised" License
268 stars 66 forks source link

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

Open truenicoco opened 2 years ago

truenicoco commented 2 years ago

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

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)

Terrance commented 2 years ago

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.