Skip to content

运行代码插件

1. 插件介绍

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')")