我正在尝试使用基本的Skype机器人Skype4Py并遇到了相当严重的错误.我正在使用32位Python 2.7.8的64位Windows 7.已安装,以及最新版本的Skype4Py.
我的主要要求是机器人概述了5不同的Skype聊天:四个用户聊天,四个用户和一个共同聊天,所有四个用户都参与其中.为此,我编写了两个不同的函数来处理个人回复和群聊:
class SkypeBot(object):
def __init__(self):
self.skype = Skype4Py.Skype(Events=self)
self.skype.Attach()
self.active_chat = find_conference_chat()
def MessageStatus(self, msg, status):
if status == Skype4Py.cmsReceived:
if msg.Chat.Name == self.active_chat.Name:
msg.Chat.SendMessage(respond_to_group(msg))
else:
msg.Chat.SendMessage(respond_to_individual(msg))
bot = SkypeBot()
Run Code Online (Sandbox Code Playgroud)
上面的代码(还有更多内容,但它的核心是写下来的)应该回答任何用户私下或群聊中发送的每条消息.
但是,有一个问题.通常,这段代码工作得很好.机器人响应每个用户以及群聊.然后,每隔一段时间(每10次聊天),机器人停止响应个别消息.该功能MessageStatus根本不会触发,这让我觉得可能还有其他需要捕获的事件.所以我在机器人中添加了一个通用事件捕手:
def Notify(self, notification):
print "NOTIFICATION:"
print notification
print "=========================="
Run Code Online (Sandbox Code Playgroud)
此代码的唯一目的是查看我是否遗漏了任何事件.所以我等了一下,当机器人没有响应时,我检查了该函数的打印输出.
MessageStatus事件的通知.CHAT **** ACTIVITY_TIMESTAMP ******.没有收到聊天消息的通知,因此没有回复的消息.当我手动点击我的Skype客户端并将我的窗口集中在收到的消息上时,MessageStatusevend终于解雇了,机器人响应了,但这太迟了.
我的问题有几个部分:
Skype4Py完美运行,我的代码可以正常工作吗?| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |