gpt4 book ai didi

python - Skype4Py:不总是调用 messageStatusChanged

转载 作者:行者123 更新时间:2023-11-28 17:48:00 24 4
gpt4 key购买 nike

我有一个 Skype 机器人连接到 X (Linux) 中的一个工作 Skype 实例。问题是 messageStatusChanged 事件并不总是在传入消息到来时触发。在大多数情况下它确实如此,但有时消息只是“丢失”了。我可以看到它们出现在 Skype 客户端中,但由于某种原因没有触发 Skype4Py 的事件。这些消息所包含的内容没有任何区别。

为什么会这样?

最佳答案

没有解决方案,但我对此进行了进一步调查,因为我在问自己同样的问题。当您看到应用程序中缺少 messageStatusChanged 时,您可以使用 dbus-monitor 查看传入消息是否已通过 dbus 发出信号。

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

我的印象是,如果 Skype 长时间处于“沉默”状态,第一次状态更改通常会丢失。

具体来说,“第一条”消息在 dbus-monitor 中显示了这种模式(是的,成对出现,不确定为什么会这样):

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"

上面的消息不会触发 messageStatusChanged 但下一个会触发(再次成对):

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"

在第二个例子中,它不仅显示了一个从thesenderthereceiverCHAT,而且它实际上显示了一个CHATMESSAGE 序列号 3535369STATUS 已被 RECEIVED。只有后者似乎触发了 messageStatusChanged

问题是:第一条消息是否应该创建一个 CHATMESSAGE {serial} STATUS RECEIVED?如果是:这是 Skype 客户端中的错误吗?如果否:如果 CHATMESSAGE 仅在更新已建立的聊天的情况下发送,您是否应该监听不同的事件?

我还不知道答案,但也许这会有所帮助。

关于python - Skype4Py:不总是调用 messageStatusChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com