欢迎来 botrs 讨论! #1
YinMo19
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
关于这个项目
这个项目是我 (YinMo19) 的个人项目。基本上是照搬了 botpy 的所有逻辑,因此和 botpy 命名相同格式用了 botrs.... 话说这样真的好吗,占用了一个短又好的名字.....
然后这个项目本身我没有很多的测试,事实上我自己的机器人只有一些基础的发送图片和回复文字的功能——因为我也就只需要这些功能,所以这个框架测试很少..... 我只能尽量保证代码质量不错,但是对于 api 本身的一些逻辑我从 python 那边转过来肯定是会出现问题的。
python 对于 None 的处理是不严谨的。尤其是对于 rust 这样的语言来说,None 必须要慎之又慎的处理,但是 python 对于 None 就只是当成一个常规量处理,在不做类型标注的前提下,完全看不出来一个值会不会是 Optional 的值。对于 rust serde 库从网络服务中解析一个 json,serde 如果遇到了不存在的字段就会直接解析失败,遇到了缺失字段也会解析失败。而对于 python,一般来说遇到缺失字段的就直接当成 None 处理了,因此在没有经过实际测试的时候必然会遇到相应的问题。
一个案例就是 服务器返回了一个 {"op": xxx}, python 按照 {"op":xxx, "d": yyy} 解析,但是实际上 "d" 字段是不存在的,所以在维持 websocket 长连接的时候就出现一分钟断一次的现象。这个问题我修了半个钟才发现原来是解析返回值失败,因为当时的 log 显示的是
WebSocket protocol error: Connection reset without closing handshake我一直以为是协议有问题(虽然解析返回值失败也算是协议问题)如果你有兴趣试用这个框架,并且你的机器人也确实有这些功能的话,请可以帮我测试一下!我的 log 打的还算比较全面,如果遇到解
析问题应该会很快暴露出来。如果你遇到了一些奇怪的问题,也欢迎在 issue 中告诉我,我能修就会去修一下。
不过话说回来,由于我目前课业忙忙,所以只能说尽量修.....
话说回来,为什么我要帮腾讯写他们的机器人 sdk...... 不懂,反正也写了万多行了,大家喜欢的话点个🌟,不喜欢就当做看个 riir 的乐子hahahah
Beta Was this translation helpful? Give feedback.
All reactions