重构 wxpy.Bot.core
背景
- wxpy 没有使用 itchat 的最新版本,是因为升级后 (可能因为兼容性问题) 会出现内存泄露
- 近期在 itchat 1.2.32 (目前依赖的版本) 中,陆续发现了一些难以在外部修复的问题
- 最后综合未来灵活性的考虑,决定重构 wxpy.Bot.core,取消对 itchat 的依赖
- 预计重构后还将带来性能上的提升 (专门针对 wxpy 的需求进行实现)
方法
- 参照 itchat.Core 接口进行重构 (必要调整除外),减少对现有代码的改动,避免引入新的 bug
- Web 微信协议部分,主要参考 Web 微信中的 JS 代码 和 itchat 中的部分实现
- 在重构过程中关注并实现以下任务点
任务
-
改进 synccheck 和 webwxsync 请求的重试机制 (尽可能的增加宽容度),加强在线稳定性 -
排查上述两个请求的各参数细节,解决短时间大量消息时的漏收问题 -
内部数据更多考虑使用以 user_name 为 key 的 dict 进行保存,提高查找性能 -
减少内存占用 -
支持更新部分好友或部分群友的详细信息 (性别、地区、签名) -
将所有 callback 整合为 hooks={event: func}
机制 -
改用 pyqrcode 内置的终端打印方法,提升环境兼容性 (无需设定宽度) -
初始化 Bot 时支持设定网络代理 -
支持获取文件类消息发送成功后的 media_id -
将发送表情与发送图片的接口分离 (原先是发送图片为 .gif 自动当做表情发送)
暂时考虑如上,希望了解下大家的看法,请在下方评论 ^^