一个命令就可启用的微信机器人
Project description
WhoChat
___ __ ___ ___ ________ ________ ___ ___ ________ _________
|\ \ |\ \|\ \|\ \|\ __ \|\ ____\|\ \|\ \|\ __ \|\___ ___\
\ \ \ \ \ \ \ \\\ \ \ \|\ \ \ \___|\ \ \\\ \ \ \|\ \|___ \ \_|
\ \ \ __\ \ \ \ __ \ \ \\\ \ \ \ \ \ __ \ \ __ \ \ \ \
\ \ \|\__\_\ \ \ \ \ \ \ \\\ \ \ \____\ \ \ \ \ \ \ \ \ \ \ \
\ \____________\ \__\ \__\ \_______\ \_______\ \__\ \__\ \__\ \__\ \ \__\
\|____________|\|__|\|__|\|_______|\|_______|\|__|\|__|\|__|\|__| \|__|
一个依赖于 ComWeChatRobot提供的Com接口的微信机器人,在此之上提供了:
- 发布至PyPI,可以一键安装
- 命令行支持,可以方便通过命令操作(见下面使用说明)
- WebSocket消息推送
- JSON-RPC2.0方法调用,支持WebSocket和HTTP
- 简单的定时任务支持
- 其他
当前支持微信版本为3.7.0.30
, Python版本3.8及以上
安装:
pip install whochat
若需要HTTP RPC支持,则是
pip install whochat[httprpc]
安装完成之后尝试使用whochat
命令,理应看到以下输出:
D:\
> whochat --help
Usage: whochat [OPTIONS] COMMAND [ARGS]...
微信机器人
使用<子命令> --help查看使用说明
Options:
--help Show this message and exit.
Commands:
list-wechat 列出当前运行的微信进程
regserver 注册COM
serve-message-ws 运行接收微信消息的Websocket服务
serve-rpc-http 运行微信机器人RPC服务(JSON-RPC2.0), 使用HTTP接口
serve-rpc-ws 运行微信机器人RPC服务(JSON-RPC2.0), 使用Websocket
show-rpc-docs 列出RPC接口
version 显示程序和支持微信的版本信息
使用
- 列出当前运行的微信进程:
> whochat list-wechat
PID: 102852
启动时间: 2022-08-27T22:22:02.290700
运行状态: running
用户名: wxid_hjkafa123a
---
- 注册COM服务:
> whochat regserver # 注册
> whochat regserver --unreg # 取消注册
注册一次就可以使用服务了。
- 开启微信消息转发WebSocket服务
> whochat serve-message-ws --help
Usage: whochat serve-message-ws [OPTIONS] [WX_PIDS]...
运行接收微信消息的Websocket服务
WX_PIDS: 微信进程PID
Options:
-h, --host TEXT Server host. [default: localhost]
-p, --port INTEGER Server port [default: 9001]
--help Show this message and exit.
该子命令接受一或多个微信PID作为位置参数,可以指定地址
> whochat serve-message-ws 102852
注册SIGINT信号处理程序: WechatWebsocketServer.shutdown
开始运行微信消息接收服务
开始向客户端广播接收到的微信消息
开始运行微信Websocket服务,地址为:<localhost:9001>
{'wxId': 'wxid_hjkafa123a', 'wxNumber': 'wxid_hjkafa123a', 'wxNickName': 'Cider', 'Sex': '男', 'wxSignature': 'null', 'wxBigAvatar': 'http://wx.qlogo.cn/mmhead/ver_1/R50J6cxxTRzE28sY32DVJibeRUZPiaPotzPVjuReXZsONBdNZXQChSfrK0rDWh8RKS5ibt7VJdK0p22YJrOGjRA051lY9mwkt6ONruLmYTyBAA/0', 'wxSmallAvatar': 'http://wx.qlogo.cn/mmhead/ver_1/R50J6cxxTRzE28sY32DVJibeRUZPiaPotzPVjuReXZsONBdNZXQChSfrK0rDWh8RKS5ibt7VJdK0p22YJrOGjRA051lY9mwkt6ONruLmYTyBAA/132', 'wxNation': 'CN', 'wxProvince': 'Anhui', 'wxCity': 'Hefei', 'PhoneNumber': 'null'}
开启Robot消息推送
默认地址为localhost:9001
,连接测试:
当前接收消息格式示例:
{
"extrainfo": {
"is_at_msg": true,
"at_user_list": [
"wx_user_id1",
"wx_user_id2"
],
"member_count": 23
},
"filepath": "",
"isSendMsg": 0,
"message": "@wx_user1\u2005@wx_user2\u2005Hello",
"msgid": 7495392442139043211,
"pid": 17900,
"sender": "20813132945@chatroom",
"time": "2022-09-03 22: 10: 33",
"type": 1,
"wxid": "wx_user_id10"
}
- 开启WebSocket RPC服务进行方法调用:
> whochat serve-rpc-ws
PID: 28824
注册SIGINT信号处理程序: run.<locals>.shutdown
运行微信机器人RPC websocket服务, 地址为<localhost:9002>
默认地址为localhost:9002
,测试发送消息给文件传输助手,记得先调用,现在调用方法时会自动注入dll
RPC所有方法和参数可通过start_robot_service
注入dllwhochat show-rpc-docs
命令查看或者whochat show-rpc-docs --json > docs.json
生成JSON文档(rpc-api.json):
> whochat show-rpc-docs --help
Usage: whochat show-rpc-docs [OPTIONS]
列出RPC接口
whochat show-rpc-docs
or
whochat show-rpc-docs --json > docs.json
Options:
--json JSON文档
--help Show this message and exit.
- 定时任务:
在每天上午6点整喊基友起床,同样使用RPC调用schedule_a_job
(获取接口文档见4),
{
"jsonrpc": "2.0",
"method": "schedule_a_job",
"params": {
"name": "GETUP",
"unit": "days",
"every": 1,
"at": "08:00:00",
"do": {
"func": "send_text",
"args": [
102852,
"jiyou",
"GET UP!"
]
},
"description": "",
"tags": [
"jiyou"
]
},
"id": 4
}
v1.3.5
- 解析最新微信版本
extra_info
- Log raw message at debug level
v1.3.4
- 自动设置微信版本号避免更新
- 增加环境变量
WHOCHAT_WECHAT_VERSION
自定义微信版本号 - 尝试使
BotWebsocketRPCClient.rpc_call
更正确地运行
v1.3.3
- 增加获取微信最新版本号的方法
- 修复Mac用户发送@消息无法正确解析的问题
v1.3.2
- 修改日志级别,增加日志文件记录
v1.3.0
- 增加RPC Websocket客户端
- 消息转发命令行增加
--welcome
参数决定是否在客户端连接是发送"hello" hook_
方法返回路径- 增加
prevent_revoke
阻止文件消息被撤回时被删除
v1.2.1
- 更新适配 Robot DLL
- 添加
_comtypes.py
方便在非Windows平台开发
v.1.1.0
- 更新 Robot DLL
- 接收消息增加
extrainfo
字段,当消息为群消息时可获取群成员数量和被@的人的微信ID - 命令行增加
log-level
选项控制日志级别 - 调用bot方法时自动注入dll
- 添加 docs/rpc/api.json
v1.0.1
- 添加Python版本依赖说明
欢迎学习交流,点个star⭐️
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
whochat-1.3.5.tar.gz
(221.0 kB
view details)
Built Distribution
whochat-1.3.5-py3-none-any.whl
(222.6 kB
view details)
File details
Details for the file whochat-1.3.5.tar.gz
.
File metadata
- Download URL: whochat-1.3.5.tar.gz
- Upload date:
- Size: 221.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3604313887c236bd318ff619a7f2443a7735f5d01b3104dab8d21806f1eb9cf5 |
|
MD5 | e8ea4185f0e4ae49bea4aef25d64c230 |
|
BLAKE2b-256 | e165923ba8024f583f23d9c662ea19edde43643dc9b50b5e4c74ba3ba067e953 |
File details
Details for the file whochat-1.3.5-py3-none-any.whl
.
File metadata
- Download URL: whochat-1.3.5-py3-none-any.whl
- Upload date:
- Size: 222.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26e1de7a699cee85719b95a8899056d6ff5b464ded2656e49edcc7434cb56a1f |
|
MD5 | 32658f39e02238d9a146f932a31b279a |
|
BLAKE2b-256 | 87d60c5fe4606b8887dfd35c5bb269d9389d9154ed0ea2fcf436330dc5a06ab7 |