Metadata-Version: 2.1
Name: wcferry
Version: 3.7.0.30.13
Summary: 一个玩微信的工具
Home-page: https://github.com/lich0821/WeChatFerry
Author: Changhua
Author-email: lichanghua0821@gmail.com
License: MIT
Description: # WeChatFerry Python 客户端
        ⚠️ **只支持 Windows** ⚠️
        
        ## 快速开始
        ```sh
        pip install wcferry
        ```
        
        参考 Demo：
        ```py
        #! /usr/bin/env python3
        # -*- coding: utf-8 -*-
        
        import logging
        from threading import Thread
        
        from wcferry import Wcf
        
        logging.basicConfig(level='DEBUG', format="%(asctime)s %(message)s")
        LOG = logging.getLogger("Demo")
        
        
        def process_msg(wcf: Wcf):
            """处理接收到的消息"""
            while wcf.is_receiving_msg():
                try:
                    msg = wcf.get_msg()
                except Exception as e:
                    continue
        
                LOG.info(msg)  # 简单打印
        
        
        def main():
            LOG.info("Start demo...")
            wcf = Wcf(debug=True)             # 默认连接本地服务
            # wcf = Wcf("tcp://127.0.0.1:10086") # 连接远端服务
        
            LOG.info(f"已经登录: {True if wcf.is_login() else False}")
            LOG.info(f"wxid: {wcf.get_self_wxid()}")
        
            # 允许接收消息
            # wcf.enable_recv_msg(LOG.info) # deprecated
        
            # 允许接收消息
            wcf.enable_receiving_msg()
            Thread(target=process_msg, name="GetMessage", args=(wcf,), daemon=True).start()
        
            # wcf.disable_recv_msg() # 当需要停止接收消息时调用
        
            ret = wcf.send_text("Hello world.", "filehelper")
            LOG.info(f"send_text: {ret}")
        
            ret = wcf.send_image("TEQuant.jpeg", "filehelper")
            LOG.info(f"send_image: {ret}")
        
            LOG.info(f"Message types:\n{wcf.get_msg_types()}")
            LOG.info(f"Contacts:\n{wcf.get_contacts()}")
        
            LOG.info(f"DBs:\n{wcf.get_dbs()}")
            LOG.info(f"Tables:\n{wcf.get_tables('db')}")
            LOG.info(f"Results:\n{wcf.query_sql('MicroMsg.db', 'SELECT * FROM Contact LIMIT 1;')}")
        
            # wcf.accept_new_friend("v3", "v4") # 需要真正的 V3、V4 信息
        
            # 一直运行
            wcf.keep_running()
        
        
        if __name__ == "__main__":
            main()
        
        ```
        
        ## 一起开发
        ### 配置环境
        ```sh
        # 创建虚拟环境
        python -m venv .env
        # 激活虚拟环境
        source .env/Scripts/activate
        # 升级 pip
        pip install --upgrade pip
        # 安装依赖包
        pip install grpcio-tools pynng
        ```
        
        ### 重新生成 PB 文件
        ```sh
        cd python\wcferry
        python -m grpc_tools.protoc --python_out=. --proto_path=..\..\rpc\proto\ wcf.proto
        ```
        
        ### 参考项目 [README](../README.MD)
        
Platform: UNKNOWN
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Customer Service
Classifier: Topic :: Communications :: Chat
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Requires-Python: >=3.7
Description-Content-Type: text/markdown
