Skip to main content

一个玩微信的工具

Project description

WeChatFerry Python 客户端

PyPi Downloads Documentation Status

📖 文档 📺 视频教程 🙋 FAQ

🤖示例机器人框架:WeChatRobot

快速开始

pip install --upgrade wcferry

Demo:

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import logging
from threading import Thread
from time import sleep

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)

    sleep(5)  # 等微信加载好,以免信息显示异常
    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() # 当需要停止接收消息时调用
    sleep(5)
    ret = wcf.send_text("Hello world.", "filehelper")
    LOG.info(f"send_text: {ret}")

    sleep(5)
    ret = wcf.send_image("TEQuant.jpeg", "filehelper")  # 需要确保图片路径正确,建议使用绝对路径(使用双斜杠\\)
    LOG.info(f"send_image: {ret}")

    sleep(5)
    ret = wcf.send_file("README.MD", "filehelper")  # 需要确保文件路径正确,建议使用绝对路径(使用双斜杠\\)
    LOG.info(f"send_file: {ret}")

    sleep(5)
    LOG.info(f"Message types:\n{wcf.get_msg_types()}")
    LOG.info(f"Contacts:\n{wcf.get_contacts()}")

    sleep(5)
    LOG.info(f"DBs:\n{wcf.get_dbs()}")
    LOG.info(f"Tables:\n{wcf.get_tables('MicroMsg.db')}")
    LOG.info(f"Results:\n{wcf.query_sql('MicroMsg.db', 'SELECT * FROM Contact LIMIT 1;')}")

    # 需要真正的 V3、V4 信息
    # wcf.accept_new_friend("v3", "v4")

    # 添加群成员,填写正确的群 ID 和成员 wxid
    # ret = wcf.add_chatroom_members("chatroom id", "wxid1,wxid2,wxid3,...")
    # LOG.info(f"add_chatroom_members: {ret}")

    # 删除群成员,填写正确的群 ID 和成员 wxid
    # ret = wcf.del_chatroom_members("chatroom id", "wxid1,wxid2,wxid3,...")
    # LOG.info(f"add_chatroom_members: {ret}")

    # 一直运行
    wcf.keep_running()


if __name__ == "__main__":
    main()
碲矿 赞赏
后台回复 WeChatFerry 加群交流 如果你觉得有用

一起开发

配置环境

# 创建虚拟环境
python -m venv .env
# 激活虚拟环境
source .env/Scripts/activate
# 升级 pip
pip install --upgrade pip
# 安装依赖包
pip install grpcio-tools pynng

重新生成 PB 文件

# CMD
cd python\wcferry
python -m grpc_tools.protoc --python_out=. --proto_path=..\..\rpc\proto\ wcf.proto

# GitBash
cd python/wcferry
python -m grpc_tools.protoc --python_out=. --proto_path=../../rpc/proto/ wcf.proto

版本更新

版本号:w.x.y.z

其中:

  • w 是微信的大版本号,如 37 (3.7.a.a), 38 (3.8.a.a), 39 (3.9.a.a)
  • x 是适配的微信的小版本号,从 0 开始
  • yWeChatFerry 的版本,从 0 开始
  • z 是各客户端的版本,从 0 开始

39.0.0.1 (2023.07.15)

修复不能 @ 问题。

功能:

  • 检查登录状态
  • 获取登录账号的 wxid
  • 获取消息类型
  • 获取所有联系人
  • 获取所有好友
  • 获取数据库
  • 获取某数据库下的表
  • 获取用户信息
  • 发送文本消息(可 @)
  • 发送图片(Python 客户端支持网络路径)
  • 发送文件
  • 允许接收消息
  • 停止接收消息
  • 执行 SQL 查询
  • 接受好友申请
  • 添加群成员
  • 删除群成员
  • 解密图片
  • 某功能(Breaking Change)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wcferry-39.0.0.1.tar.gz (883.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wcferry-39.0.0.1-py3-none-any.whl (883.0 kB view details)

Uploaded Python 3

File details

Details for the file wcferry-39.0.0.1.tar.gz.

File metadata

  • Download URL: wcferry-39.0.0.1.tar.gz
  • Upload date:
  • Size: 883.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for wcferry-39.0.0.1.tar.gz
Algorithm Hash digest
SHA256 e36e089df3a3385902317784975bd82d8dbbef2a1dfe40be57150d9b9c3dafff
MD5 a89033a7fc5aab644cdf036ac6a997cd
BLAKE2b-256 6d5dd6f727c4080b407f9eca8e6646582ccc2f88e513f5213903896669f91254

See more details on using hashes here.

File details

Details for the file wcferry-39.0.0.1-py3-none-any.whl.

File metadata

  • Download URL: wcferry-39.0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 883.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for wcferry-39.0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 80aeed5c87c152642660bc8824f9eb3820f46ca11f52789e57c65589d53e0761
MD5 d6d25a74ce4751619d07649cbe9f9105
BLAKE2b-256 087a472786908630ca1d7204e1b492372e03aea8d6d99f3ac178c11c452e61c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page