Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s045pd/webot
💪🤖️write a bot for wechat !
https://github.com/s045pd/webot
bot webapi wechat weixin
Last synced: 9 days ago
JSON representation
💪🤖️write a bot for wechat !
- Host: GitHub
- URL: https://github.com/s045pd/webot
- Owner: s045pd
- Created: 2019-05-14T06:57:20.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-22T23:55:31.000Z (over 1 year ago)
- Last Synced: 2023-05-23T01:15:27.012Z (over 1 year ago)
- Topics: bot, webapi, wechat, weixin
- Language: Python
- Homepage:
- Size: 7.74 MB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Webot
这是一个基于web微信协议的简易微信机器人,目前功能比较简陋且不堪🙈。
## 现有功能
- AI机器人(ollama)
- 简单文字消息回复
- 消息过滤
- 实时信息展示(带斗图表情(Iterm2))
- 语音消息自动播报及保存
- 通讯录导出
- 好友地区分布旭日图导出
- 好友头像墙制作## 文件夹结构
- ```extra```
- ```analysis``` 分析整合结果文件夹
- ```x_contacts.xlsx``` 通讯录
- ```x_icon_wall.png``` 头像墙
- ```x_sunburst_city.html``` 区域分布旭日图
- ```log``` 聊天记录[未做]
- ```media``` 媒体文件夹
- ```emoji``` 聊天表情
- ```icons``` 好友头像
- ```images``` 聊天图片
- ```videos``` 聊天视频[未做]
- ```voices``` 聊天语音
- ```static```
- ```⚡️current_msg.json``` 最新消息日志[用于调试]
- ```batch_contacts.json``` 群聊数据
- ```contact.json``` 通讯录数据
- ```person_data.json``` 个人数据
- ```wxbot.pkl``` 缓存登录信息## 逻辑图
> `【varb】` 指代变量名 ,逻辑图内均使用python代码
### 指示线
![](./media/logic.png)
### 登录逻辑图
![](./media/webot_login.png)
[mindnode文件](./media/webot_login.mindnode)
## 环境安装
首先保证您已经安装了```python3.10```及以上版本,然后依次运行如下命令。
```sh
git clone https://github.com/aoii103/Webot.gitcd webot
python3 -m pip install -r requirements.txt
```## 额外配置
在安装好依赖之后,我们在通过```webot/conf.py```该文件进行默认配置修改, 也可以通过```run```方法传入, 各参数作用如下。
- ```debug = True``` 开启debug模式
- ```play_voice = True``` 自动播报声音
- ```export_xlsx = True``` 自动导出好友列表
- ```make_icon_wall = True``` 自动导出头像墙
- ```sunburst_city = True``` 自动导出好友分布旭日图
- ```need_interaction = False``` 交互式shell## 案例用法
下面是一个简单的文本回复案例即```test.py``````python
from webot.core import Webot
from webot.util import Device
from pprint import pprintclass bot(Webot):
@Device.filters(["text"], is_me=True)
def send_back(self, msg):
pprint(msg)
if msg["type"] == "text":
if "你好" == msg["content"]:
self.send_text(msg["from"], "你好呀!")bot().run(True, False)
```当然我们也可以通过```python3 test.py```直接使用默认测试案例。
以下是运行开始的截图!
![](./media/demo.png)
## 功能详解
### 1.消息格式
- `from`为发送者ID
- `to`为接受者ID```python
{
"content": "你好",
"from": "@1798bad2f5dc126a19450ef2c86aa8e3",
"from_nick": "zhangsan",
"is_group": False,
"is_me": True,
"raw_content": "你好",
"time": 1560230438,
"to": "@8ef49591902e6c6642732eb7289a5619456u98965f6ea32fa671fe3ab33a002f",
"to_nick": "filehelper",
"type": "text"
}```
### 2.通讯录导出结果所有的好友、公众号信息都会被保存至```xxx_contacts.xlsx```中。
![](./media/xlsx.png)
### 3.语音消息及播报
语音流将会按照被下载存储,并通过pygame播放,但不知为何播放的声音仿佛过了变声器一般。
![](./media/voice.png)
### 4.机器人预设回复及表情
![](./media/robot.png)
### 5. 头像墙
![](./media/icon_wall.jpg)
### 6. 区域分布旭日图
![](./media/sunburst_city.gif)
## TODO
- 文件及图片发送
- 其他更多思考中的功能
- 基于sqlite的消息记录## 📝 License
This project is [MIT](https://github.com/kefranabg/readme-md-generator/blob/master/LICENSE) licensed.
***
如果您觉得这个脚本对您有用,可别忘了star哟🐶。