Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • W wxpy
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 295
    • Issues 295
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Youfou
  • wxpy
  • Issues
  • #84
Closed
Open
Issue created Jun 14, 2017 by Youfou@youfouOwner10 of 10 checklist items completed10/10 checklist items

重构 wxpy.Bot.core

背景

  1. wxpy 没有使用 itchat 的最新版本,是因为升级后 (可能因为兼容性问题) 会出现内存泄露
  2. 近期在 itchat 1.2.32 (目前依赖的版本) 中,陆续发现了一些难以在外部修复的问题
  3. 最后综合未来灵活性的考虑,决定重构 wxpy.Bot.core,取消对 itchat 的依赖
  4. 预计重构后还将带来性能上的提升 (专门针对 wxpy 的需求进行实现)

方法

  • 参照 itchat.Core 接口进行重构 (必要调整除外),减少对现有代码的改动,避免引入新的 bug
  • Web 微信协议部分,主要参考 Web 微信中的 JS 代码 和 itchat 中的部分实现
  • 在重构过程中关注并实现以下任务点

任务

  • 改进 synccheck 和 webwxsync 请求的重试机制 (尽可能的增加宽容度),加强在线稳定性
  • 排查上述两个请求的各参数细节,解决短时间大量消息时的漏收问题
  • 内部数据更多考虑使用以 user_name 为 key 的 dict 进行保存,提高查找性能
  • 减少内存占用
  • 支持更新部分好友或部分群友的详细信息 (性别、地区、签名)
  • 将所有 callback 整合为 hooks={event: func} 机制
  • 改用 pyqrcode 内置的终端打印方法,提升环境兼容性 (无需设定宽度)
  • 初始化 Bot 时支持设定网络代理
  • 支持获取文件类消息发送成功后的 media_id
  • 将发送表情与发送图片的接口分离 (原先是发送图片为 .gif 自动当做表情发送)

暂时考虑如上,希望了解下大家的看法,请在下方评论 ^^

Assignee
Assign to
Time tracking