2

一部のユーザーをブロックする小さなSkypeボットを作成しようとしています。

これは私が持っているコードです:

import Skype4Py

skype = Skype4Py.Skype(Transport='x11')

skype.Attach()
print "Attachment status is " + str(skype.AttachmentStatus)
...
user._SetIsBlocked(True)

このスクリプトを初めて実行すると、 skype.AttachmentStatusとして1が表示され、選択したユーザーがブロックされます。ただし、2回実行すると、 skype.AttachmentStatusとして0が返され、選択したユーザーがブロックされません。

しばらく(約5分)待ってからもう一度スクリプトを実行しようとすると、動作を開始します。しかし、一度だけ。もう一度実行するには、さらに5分待つ必要があります。

誰かがこれが起こっている理由を助けたり説明したりできますか?

ありがとう!

4

1 に答える 1

1

このエラーの解決策は、独自のイベント ハンドラーを 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

その後、実行するたびに機能します。

于 2013-03-14T09:57:59.097 に答える