我正在尝试编写一个小型Skype Bot,该机器人会阻止一些用户。
这是我拥有的代码:
import Skype4Py
skype = Skype4Py.Skype(Transport='x11')
skype.Attach()
print "Attachment status is " + str(skype.AttachmentStatus)
...
user._SetIsBlocked(True)
第一次运行此脚本时,它给了我 1 作为 skype.AttachmentStatus ,并阻止了我选择的用户。但是,如果我第二次运行,它将给我 0 作为 skype.attachmentStatus ,并且不会阻止我选择的用户。
如果我会等待一些时间(大约5分钟),然后尝试再次运行脚本,它将开始工作。但是只有一次。我必须再等五分钟才能再次运行。
有人可以帮助或解释为什么会发生这种情况?
谢谢!
解决此错误的解决方案是将自己的事件处理程序添加到Skype.onattachmentstatus
示例:
# Attachment status handler
def OnAttach(status):
print 'API attachment status: ' + skype.Convert.AttachmentStatusToText(status)
if status == Skype4Py.apiAttachAvailable:
skype.Attach()
if status == Skype4Py.apiAttachSuccess:
print '*************************************************'
...
# Creating Skype object, assigning handler functions and attaching to Skype
skype = Skype4Py.Skype(Transport='x11')
skype.OnAttachmentStatus = OnAttach
skype.OnMessageStatus = OnMessageStatus
之后,每次运行它都会工作。