Skype4Py Проверьте, если групповой чат
Есть ли способ проверить, является ли чат групповым? Или хотя бы узнать, сколько пользователей в группе.
Например, проверяя номер пользователя, если он равен 2, то, очевидно, он равен 1-1 (Single), но если он, как и все остальное, это будет групповой чат.
3 ответа
Type
свойство объекта чата будет либо chatTypeDialog
или же chatTypeMultiChat
с последним, являющимся групповым чатом. Вы можете спокойно игнорировать другие устаревшие значения перечисления.
Это сработало для меня:
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
всегда зависал для меня, а затем через несколько секунд соединение с Skype теряется. Кажется, это ошибка
Это небольшая модификация кода, который я написал для другого вопроса здесь. Следующий код проверяет, есть ли групповые чаты в открытых чатах или в чатах с закладками. Вы должны пройти в 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