Skip to content
This repository has been archived by the owner on Aug 23, 2020. It is now read-only.

QQBot

Compare
Choose a tag to compare
@pandolia pandolia released this 14 Apr 18:05
· 185 commits to master since this release

1) 修正 v2.1.16 中 QContact 类增加 getattr 方法导致无法被 pickle 的 bug ,感谢 @lixindreamer 不二 kairyu 的帮助

2) 优化消息分段,一次发消息内容最长为 240 个汉字或 720 个英文,也就是 utf8 编码后的长度不能超过 720 ,超过此长度将被分段,按以下原则分段:如果 620~720之间有空格字符(空格,\t,\n等),则按最后一个空格进行分割,否则,按 720 进行分割。

3) QQBot 类中将判断是否被 @ 的功能分离出来,放到 detectAtMe 方法中,如果需要实现自己的 @ 判断逻辑,可以覆盖此方法。

4) bot.SendTo 接口中增加一个参数: reSendOn1202 ,若此参数为 True (默认值),则发消息时如果 QQ 服务器返回 1202 代码(表明发消息可能失败),还会继续发送 3 次,直至返回 0 代码, 若此参数为 False ,则不会尝试重发。
设为 True 在绝大部分情况下能保证消息一定能发出去,但缺点是有时一条消息会重复发送。设为 False 则相反,消息不会重复发送,但有时消息发送不出去。
总之因为这个 1202 代码的不确定性,没有完美的解决办法。

5) 配置文件中增加一个 pluginsConf 项,用户可以在此项中保存自己的配置,在运行的过程中通过 bot.conf.pluginsConf 访问, qqbot 会在启动时自动读取这里面的配置。

6) 增加一个 fresh-restart 命令,此命令重启程序且不加载 pickle 文件(必须手动扫码)。修改原来的 restart 命令的重启方式,此命令重启程序,且会加载 pickle 文件。