Skip to content

关于添加是否有新消息接口方法的建议 #23

@open8eye

Description

@open8eye

#22 的中我提到如果只监听导航栏的红色tag来判断是否有新消息。我觉得这非常有用,所以我就去拉取wxauto的源码,但我拉取后发现,wxauto的作者已经提供了这部分的方法,在wxauto/ui/navigationbox.py下有个has_new_message方法。所以我在app/wechat_adapter.py 添加了HasNewMessage方法 因为我只有wxauto包所有我只改了这部分。

wechat_adapter.py :

Image
    def __init__(self, lib_name: str = 'wxauto', lazy_init: bool = False):
        """
        初始化适配器

        Args:
            lib_name: 指定使用的库名称,可选值: 'wxauto', 'wxautox',默认为'wxauto'
            lazy_init: 是否延迟初始化,如果为True,则不立即导入库
        """
        self._instance = None
        self._navigation_box = None
        self._lib_name = None
Image
else:  # wxauto
    # 直接导入pip安装的wxauto包
    from wxauto import WeChat
    # 尝试创建WeChat实例,处理可能的Unicode编码错误
    try:
        self._instance = WeChat()
        # 添加导航栏
        self._navigation_box = self._instance.core.navigation
        logger.info("成功创建wxauto.WeChat实例")
Image
   # 是否有新消息
    def HasNewMessage(self):
        if not self._instance:
            raise AttributeError("微信实例未初始化")
        return self._navigation_box.has_new_message()

我的想法还是轮询,因为没有主动触发的事件,gui加个开关,打开后,填写一个服务端的通知接口地址,然后开启个死循环每3s检查一次并且发送给通知接口,由服务端来获取消息再加佐料,然后执行发送;或者暴露一个接口被服务端轮询请求,有消息再获取最新消息。。。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions