Как мне отправить сообщение на групповой разговор с Skype4Py в Python

Я пытался заставить свой сценарий отправить сообщение на групповой разговор в Skype с помощью библиотеки Skype4Py, единственный способ, которым я в настоящее время могу отправлять сообщения, - определенным пользователям.

import Skype4Py
Skype = Skype4Py.Skype()
Skype.Attach()
Skype.SendMessage('namehere','testmessage')

Кто-нибудь знает, как я могу изменить свой код, чтобы отправить сообщение на групповой разговор?

1 ответ

Решение

Следующий маленький скрипт должен работать. (Предполагая, что у вас уже открыт групповой чат)

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")

Я в основном импортирую все текущие чаты, проверяю количество участников и соответственно отправляю сообщение. Это должно быть легко проверить в разных группах.

Чтобы получить ручки тоже, измените свою функцию на это.

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")

Если вы можете добавить свой чат в закладки, тогда вам просто нужно сделать это.

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

Это последний код, который должен быть автономным.

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
Другие вопросы по тегам