Skype4Py Проверить наличие группового чата

есть ли способ проверить, является ли чат групповым чатом? Или хотя бы узнать, сколько пользователей в группе.

Например, проверив номер пользователя, если он равен 2, то это, очевидно, 1-1 (одиночный), но если это что-то еще, это будет групповой чат.


person Andrew Wong    schedule 24.02.2013    source источник
comment
skype4py.sourceforge.net/doc/html   -  person Andrew Wong    schedule 24.02.2013


Ответы (3)


Свойство Type объекта чата будет либо chatTypeDialog, либо chatTypeMultiChat, причем последнее будет групповым чатом. Вы можете спокойно игнорировать другие устаревшие значения перечисления.

person Claus Jørgensen    schedule 24.02.2013
comment
Извините, что плохо разбираюсь в python, но как мне это проверить? - person Andrew Wong; 26.02.2013
comment
Если вы не можете понять, как проверить значение простого свойства, я рекомендую вам прочитать руководство для начинающих по Python 101. - person Claus Jørgensen; 26.02.2013
comment
Ну, я пробовал, если Message.Chat.Type == Skype4Py.chatTypeMultiChat, но код зависает и никогда не запускается - person Andrew Wong; 27.02.2013
comment
подтверждено: message.Chat.Type всегда зависает и со временем теряется соединение со Skype - person hansaplast; 10.03.2014

Это небольшая модификация кода, который я написал для другого вопроса здесь. Следующий код проверяет, есть ли групповые чаты в открытых чатах или чатах с закладками. Вы должны ввести topic, чтобы найти чат на эту тему.

def checkGroupChat(topic=""):
    """
    Checks if a group exists.
    """
    import Skype4Py as skype
    skypeClient = skype.Skype()
    skypeClient.Attach()
    for elem in skypeClient.ActiveChats:  # Looks in active chats and returns True if chat is found.
        if len(elem.Members) > 2 and elem.Topic == topic:
            return True

    for chat in skypeClient.BookmarkedChats: # Looks in Bookmarked Chats.
        if chat.Topic == topic:
            return True

    return False
person Sukrit Kalra    schedule 23.06.2013
comment
Как насчет проверки текущего чата или чата, из которого было отправлено сообщение? - person Andrew Wong; 24.06.2013
comment
Привет! Часть skypeClient.ActiveChats позаботится об этом, если у вас есть сообщение и вы хотите идентифицировать чат по нему, вы можете внести небольшие изменения в приведенный выше код. - person Sukrit Kalra; 26.06.2013
comment
Хорошо, тогда как бы я изменил его? - person Andrew Wong; 28.06.2013
comment
Можете ли вы сказать мне, что вы можете использовать для уникальной идентификации чата? - person Sukrit Kalra; 28.06.2013
comment
Блоб чата? Заголовок? Последнее сообщение? - person Andrew Wong; 29.06.2013
comment
Я хочу, чтобы он мог проверить, является ли он админом в групповом чате, а затем выполнять команды оттуда. - person Andrew Wong; 29.06.2013
comment
Вы хотите пройтись по всем чатам Active/Bookmarked Group и посмотреть, какой из них имеет администратора, а затем выполнить ваши команды, я прав? - person Sukrit Kalra; 30.06.2013
comment
Когда вы говорите «у кого из них есть администратор», что вы имеете в виду? Если вы имеете в виду отправить команду/получить роль в каждой чат-группе, а если это MASTER и т. д., выполнить команду, то да. В противном случае.. ????? Может быть, я мог бы использовать чат, чтобы проверить - person Andrew Wong; 01.07.2013

Это сработало для меня:

def on_message(message, status):
    len(message.Chat.Members) > 2:
        # this is a private chat

s = Skype4Py.Skype()
s.OnMessageStatus = on_message
s.Attach()

message.Chat.Type у меня всегда зависал и потом через несколько секунд пропадало соединение со скайпом. Кажется, это ошибка

person hansaplast    schedule 10.03.2014