Wxpy Versions Save

微信机器人 / 可能是最优雅的微信个人号 API ✨✨

0.3.9.8

6 years ago
  1. [新增] 将聊天对象标记为已读,即消除小红点 (文档)
  2. [新增] 机器人启动后自动将新消息标为已读 (文档)
  3. [修复] Python 2.x 版本中多个因 is== 引起的问题
  4. [修复] Python 2.x 版本中的 Logging 系统兼容性问题 ('No handler found' 报错)
  5. [修复] Linux 系统中临时文件未及时关闭导致的 'too many open files' 问题

0.3.9.7

6 years ago
  1. [新增] 正式兼容 Python 2.7,感谢 @RaPoSpectre 的贡献!

  2. [新增] 公众号推送中的文章列表 Message.articles (文档)

    收到公众号推送消息(Sharing)时,可通过 msg.articles 来获取本条推送中的所有文章

  3. [新增] .set_remark_name() 可为群聊成员设置备注

  4. [修复] 上个版本中引入的 -1001 错误 (原因)

  5. [修复] 为 SentMessage 对象补全了 .member 属性

  6. [文档] 增加了 异常处理 (文档),并调整一些细节

  7. [新增] 加入了部分主要功能的 tests

0.3.9.6

6 years ago
  1. [修复] 原 bot.groups() 中会包含一些曾经加入但实际已退出的群 (Web 微信 BUG)
    • 现针对这种情况增加过滤: 仅返回包含自身的群
  2. [修复] 当使用 get_wechat_logger()WeChatLoggingHandler 时,将等级设置为 INFO 导致循环发送日志的问题

0.3.9.5

6 years ago
  1. [优化] 改善因网络问题导致机器人掉线的问题 (表现为发送消息时报 1101 错误,但机器人没有自动 logout)

  2. [新增] ResponseError 异常新增 err_codeerr_msg 两个属性,出错时方便判断错误号

    try:
        # 尝试向某个群员发送消息
        group.members[3].send('Hello')
    except ResponseError as e:
        # 若群员还不是好友,将抛出 ResponseError 错误
        print(e.err_code, e.err_msg) # 查看错误号和错误消息
    
  3. [新增] detect_freq_limit(),可用于检测Web微信对于特定操作的频率限制 (文档)

  4. [调整] 默认的机器人默认最大历史消息数调整为 200 (原先默认不限制),以节省内存占用

  5. [修复] 与 Python 3.4 的语法兼容性问题

  6. [修复] Message.url 报错的问题

  7. [修复] wxpy 命令行工具中日志选项 -l / --logging_level 无效的问题


wxpy 的 Python 2.x 版本 (感谢 @RaPoSpectre 的贡献) 已处于测试阶段,欢迎有需要的同学进行测试

0.3.9

6 years ago
  1. [新增] 持续有效,且稳定唯一的聊天对象/用户ID: Chat.puid 属性 (文档)

    请使用 Bot.enable_puid() 来启用 puid

        # 启用 puid 属性,并指定 puid 所需的映射数据保存/载入路径
        bot.enable_puid('wxpy_puid.pkl')
    
        # 指定一个好友
        my_friend = bot.friends().search('游否')[0]
    
        # 查看他的 puid
        print(my_friend.puid)
        # 'edfe8468'
    
  2. [新增] 程序中通过 .send/reply() 系列方法发出的消息: SentMessage 类 (文档)

    想和好友开个玩笑?

        words = '苟******,*******'
        sent = list()
        for i in words:
            sent.append(my_friend.send(i)) # 逐字发送
            time.sleep(0.5)
        for i in sent:
            i.recall() # 全部撤回
    
  3. [新增] Message 对象新增 receive_timelatency 属性,分别表示 “接收时间” 和 “接收延迟秒数” (文档)

  4. [新增] 关注公众号 Bot.add_mp() (文档)

  5. [修复] Bot.add_friend() 使用微信号作为参数时,加好友失败的问题

0.3.6

7 years ago
  1. [优化] 完善了日志输出,新增新消息/对应注册函数,及各种事件的日志,方便查找问题

    试试加入以下代码,查看完善后的日志

    import logging
    
    # 将日志设为调试等级
    logging.basicConfig(level=logging.DEBUG)
    
    # 减少网络层日志的干扰
    for m in 'requests', 'urllib3':
        logging.getLogger(m).setLevel(logging.WARNING)
    
  2. [新增] 支持通过 微信 ID 添加个人号或公众号为好友 (Bot.add_friend())

    例如通过 微信 ID 加 wxpy 机器人 为好友

    bot.add_friend('wxpy_bot')
    
  3. [新增] 消息转发功能 (Message.forward()) 新增支持转发自己发出的个人号名片

  4. [文档] 完善了各聊天对象类型的继承关系说明 (查看)

0.3.5

7 years ago
  1. [优化] 机器人在线稳定性 (通过增加内部最大重试次数,实测在线数天未掉线)

  2. [优化] IDE 中的自动补全提示 (通过在 docstring 中加入 rtype 字段)

    例如,在 PyCharm 中输入 bot.friends(),按下 . 会提示补全 search()

  3. [修复] 图灵机器人的上下文识别能力

    例如 Q: 天气 A: 悄悄告诉我你在哪个城市? Q: 深圳 A: 深圳 4月9号 周日,22-29° 多云转阵雨…

0.3.4

7 years ago
  1. [修复] 消息转发功能中的视频类消息转发失败的 BUG
  2. [修复] 将部分对象属性改为 weakref,以优化内存占用
  3. [调整] 群消息同步的默认消息前缀,去掉了代表性别的 emoji (可通过 prefix 参数修改)

0.3.3

7 years ago
  1. [新增] 为消息转发和群消息同步功能增加“地图”类消息支持
  2. [调整] 为群消息同步功能调整了一些 emoji 表情 (用于代表转发后的头像)
  3. [修复] 消息的对象的 url 属性未被反转义的问题
  4. [调整] 临时将 itchat 版本依赖固定为 1.2.32,以避免近期发现的一些细节问题,期待修复

0.3.2

7 years ago
  • [新增] 转发消息,目前支持 7 种消息类型 Message.forward() (文档)

    例如,将公司群中的老板消息转发出来

    from wxpy import *
    
    bot = Bot()
    
    # 定位公司群
    company_group = ensure_one(bot.groups().search('公司微信群'))
    
    # 定位老板
    boss = ensure_one(company_group.search('老板大名'))
    
    # 将老板的消息转发到文件传输助手
    @bot.register(company_group)
    def forward_boss_message(msg):
       if msg.member == boss:
           msg.forward(bot.file_helper, prefix='老板发言')
    
    # 堵塞线程
    embed()
    
    
  • [新增] 在多个群中同步消息 sync_message_in_groups() (文档)

    my_groups = [group1, group2, group3 ...]
    
    @bot.register(my_groups, except_self=False)
    def sync_my_groups(msg):
        sync_message_in_groups(msg, my_groups)
    
  • [新增] 上传文件并获得 media_id,可用于重复发送 Bot.upload_file() (文档)

  • [新增] 堵塞进程,直到结束消息监听 (例如,机器人被登出时) Bot.join() (文档)

  • [新增] 群聊中的机器人自身(作为群成员) Group.self

  • [修复] 群消息中,当发送者为机器人自身时,msg.member 为 None 的问题