How can I send a message to a group conversation with Skype4Py in Python

后端 未结 1 820
攒了一身酷
攒了一身酷 2021-02-03 15:40

I\'ve been trying to get my script to send a message to a group conversation in Skype using the Skype4Py library, the only way I am currently able to send messages is to specifi

相关标签:
1条回答
  • 2021-02-03 16:11

    The following little script should work. (Assuming you already have a group chat open)

    def sendGroupChatMessage():
        """
        Send Group Chat Messages.
        """
        import Skype4Py as skype
        skypeClient = skype.Skype()
        skypeClient.Attach()
        for elem in skypeClient.ActiveChats:
            if len(elem.Members) > 2:
                elem.SendMessage("SomeMessageHere")
    

    I'm basically importing all the current chats, checking the number of members and sending a message accordingly. It should be easy to check within various groups too.

    To get the handles too, change your function to this.

    def sendGroupChatMessage():
        """
        Send Group Chat Messages.
        """
        import Skype4Py as skype
        skypeClient = skype.Skype()
        skypeClient.Attach()
        for elem in skypeClient.ActiveChats:
            if len(elem.Members) > 2:
                for friend in elem.Members:
                      print friend.Handle
                elem.SendMessage("SomeMessageHere")
    

    If you can bookmark your chat, you just have to do this, then.

    >>> groupTopic = 'Insert a Topic Here'
    >>> for chat in skypeClient.BookmarkedChats:
            if chat.Topic == groupTopic:
                chat.SendMessage("Send a Message Here")
    

    This is the final code that should be standalone.

    def sendGroupChatMessage(topic=""):
        """
        Send Group Chat Messages.
        """
        import Skype4Py as skype
        skypeClient = skype.Skype()
        skypeClient.Attach()
        messageSent = False
        for elem in skypeClient.ActiveChats:
            if len(elem._GetMembers()) > 2 and elem.Topic == topic:
                elem.SendMessage("SomeMessageHere")
                messageSent = True
    
        if not messageSent:
            for chat in skypeClient.BookmarkedChats:
                if chat.Topic == topic:
                    chat.SendMessage("SomeMessageHere")
                    messageSent = True
    
        return messageSent
    
    0 讨论(0)
提交回复
热议问题