0

実行できる単純な Skype ボットを作成しようとしています。特定のチャットでメッセージが送信された場合、ローテーションする 3 つのメッセージのうちの 1 つを送信します。ただし、メッセージがチャットに送信されたときにチェックする方法を見つけようとしています。

これまでに持っている:

import Skype4Py as skype
skypeClient = skype.Skype()
skypeClient.Attach()
def sendGroupChatMessage(topic="Topic"):
    messageSent = False
    messagenum = 0
    for elem in skypeClient.ActiveChats:
        if (messagenum == 0):
            elem.SendMessage("I see")
            messagenum = 1
            messageSent = True
        elif (messagenum == 1):
            elem.SendMessage("That's amazing")
            messagenum = 2
            messageSent = True
        elif (messagenum == 2):
            elem.SendMessage("It's not your fault")
            messagenum = 0
            messageSent = True
    if not messageSent:
        for chat in skypeClient.BookmarkedChats:
            if chat.Topic == topic:
                chat.SendMessage("SomeMessageHere")
                messageSent = True

    return messageSent

if skypeClient.OnMessageStatus == 'RECEIVED':
    sendGroupChatMessage()
4

1 に答える 1

3

イベント MessageStatus を登録する必要があります。
http://skype4py.sourceforge.net/doc/html/Skype4Py.skype.SkypeEvents-class.html
詳細については、こちらを参照してください。

コード例、送信者にメッセージを再送信するもの (エコーのみ):

import Skype4Py

skype = Skype4Py.Skype()
skype.Attach()

def onMsg(msg, status):
  if status == Skype4Py.cmsReceived:
    msg.Chat.SendMessage(msg.Body)

skype.RegisterEventHandler('MessageStatus', onMsg)
while 1: pass
于 2014-11-21T14:50:30.293 に答える