Skype4Py 检查是否为群聊

0 投票
3 回答
1430 浏览
提问于 2025-04-17 16:55

有没有办法检查一个聊天是不是群聊?或者至少能知道群里有多少个用户。

比如说,如果用户数量是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 属性可以是 chatTypeDialogchatTypeMultiChat。其中,chatTypeMultiChat 表示的是群聊。你可以放心地忽略其他旧的枚举值。

撰写回答