运行代码插件
1. 插件介绍
- 功能:运行代码并输出代码的打印信息;目前支持
python
c
javascript
三种代码语言 - 代码:https://github.com/shenxgan/qqbot/tree/main/ws/plugins/run_code
2. 触发方式
- 使用
###
开头,后接代码;支持大段代码 - 示例:
python
###print('hello')
python
###
while True:
print('hello world.')
3. 实现细节
- 插件目录(名称):
run_code
- 代码的运行是在一个 python 的 docker 容器中;可预置一些三方库(比如 requests 库),要增加预置库,在 requirements.txt 文件中添加即可
- 容器中运行一个 web 服务,接收代码并执行,最后返回代码输出
- 代码容器也内置在此机器人代码中:https://github.com/shenxgan/qqbot/blob/main/python/server.py
- 对于每次运行的时间与输出行数、输出长度均有限制
4. 注意事项
- 如果机器人开启了检测自己的消息,则需要在回复结果中添加额外的信息(比如加一个随机的 emoji 图标🏄✨🚀⚡⚽🧐);防止套娃回复
- 举例说明:
- 比如输入
###print('python')
- 不加额外信息的话,就会回复 python,而 python 又会触发 Python 关键字插件
- 还有多层嵌套:
###print("###print('python')")
- 比如输入