Skype4Py: messageStatusChanged not always called

怎甘沉沦 提交于 2019-12-05 19:36:17

No solution but I investigated this a bit further because I am asking myself the same question. You can use dbus-monitor to see if the incoming message had been signaled over dbus when you see messageStatusChanged missing in your application.

$ dbus-monitor "interface=com.Skype.API.Client"

I have the impression that the first status change often goes missing if there was a lot of "silence" from Skype for a longer period of time.

Specifically, a "first" message shows this pattern in the dbus-monitor (yes, in pairs, not sure why that is):

method call sender=:1.1036 -> dest=:1.1028 serial=5088 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696242"
method call sender=:1.1036 -> dest=:1.1232 serial=5089 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696242"

The message above doesn't trigger messageStatusChanged but the next one does (again in pairs):

method call sender=:1.1036 -> dest=:1.1028 serial=5090 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696353"
method call sender=:1.1036 -> dest=:1.1232 serial=5091 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHAT #thesender/$thereceiver;2c328ad79b074208 ACTIVITY_TIMESTAMP 1362696353"
method call sender=:1.1036 -> dest=:1.1028 serial=5092 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHATMESSAGE 3535369 STATUS RECEIVED"
method call sender=:1.1036 -> dest=:1.1232 serial=5093 path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
   string "CHATMESSAGE 3535369 STATUS RECEIVED"

In the second example it not only shows a CHAT from thesender to thereceiver but it actually shows that a CHATMESSAGE with the serial 3535369 and STATUS has been RECEIVED. Only the latter seems to trigger messageStatusChanged.

The question is: Is the first message supposed to create a CHATMESSAGE {serial} STATUS RECEIVED? If yes: Is this a bug in the Skype client? If no: If CHATMESSAGE is only sent in case of an update to an established chat, should you be listening for a different event?

I don't know the answer yet but maybe this helps.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!