【问题标题】:Skype4Py Check If Group ChatSkype4Py 检查是否群聊
【发布时间】:2013-02-24 07:33:52
【问题描述】:

有没有办法检查聊天是否是群聊?或者至少要找出一个组中有多少用户。

比如查用户号,如果是2,那么明明是1-1(Single),但如果是其他的话,那就是群聊了。

【问题讨论】:

标签: python skype skype4py


【解决方案1】:

聊天对象的Type 属性将是chatTypeDialogchatTypeMultiChat,后者是群聊。您可以放心地忽略其他旧枚举值。

【讨论】:

  • 很抱歉我不擅长python,但是我该如何继续检查呢?
  • 如果您不知道如何检查简单属性的值,我建议您阅读 Python 101 初学者教程。
  • 如果 Message.Chat.Type == Skype4Py.chatTypeMultiChat 我试过了,但代码挂起并且永远不会运行
  • 已确认:message.Chat.Type 总是挂起,最终失去与 Skype 的连接
【解决方案2】:

这是我为另一个问题here. 编写的代码的轻微修改以下代码检查打开的聊天或已添加书签的聊天中是否有任何群聊。您应该传入 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

【讨论】:

  • 如何检查当前聊天,或发送消息的聊天
  • 嗨! skypeClient.ActiveChats 部分负责这一点,如果您有一条消息并想从中识别聊天,那么您可以对上述代码进行少量修改。
  • 好的,那我该如何修改呢?
  • 您能告诉我您可以使用什么来唯一标识聊天吗?
  • 聊天块?标题?最新消息?
【解决方案3】:

这对我有用:

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

【讨论】:

    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多