Skype4Py 检查是否为群聊
有没有办法检查一个聊天是不是群聊?或者至少能知道群里有多少个用户。
比如说,如果用户数量是2,那肯定就是一对一聊天(单聊);但如果用户数量不止2,那就可以判断是群聊了。
3 个回答
0
这个方法对我有效:
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的连接断了。看起来这是个bug。
0
这是我为另一个问题稍微修改过的一段代码,具体内容可以在这里找到。下面的代码会检查当前打开的聊天或书签聊天中是否有任何群聊。你需要传入一个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
0
聊天对象的 Type
属性可以是 chatTypeDialog
或 chatTypeMultiChat
。其中,chatTypeMultiChat
表示的是群聊。你可以放心地忽略其他旧的枚举值。