小于 1 分钟
这里我使用的是python脚本,这里参考的是一个段久远的机器人插件记忆
核心代码:
from flask import Flask, request
import importlib.util
import os
current_dir = os.path.dirname(os.path.abspath(__file__))
client = Flask("client")
@client.route('/plugins/<path:path>', methods=['GET', 'POST'])
def route_plugins(path):
""" 在plugins文件夹中查找<plugin_name>目录,并调用里面main.py里的main(),进行返回 """
path_parts = path.split('/')
plugin_name = path_parts[0]
plugin_path = os.path.join(current_dir, 'plugins', plugin_name, 'main.py')
if not os.path.exists(plugin_path):
return f"插件不存在: {plugin_name}", 404
spec = importlib.util.spec_from_file_location(f"{plugin_name}.main", plugin_path)
main_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(main_module)
if not hasattr(main_module, 'main'):
return f"插件没有入口函数: {plugin_name}", 400
params = request.args if request.method == 'GET' else request.form
return main_module.main(path, params)
def main():
client.run(host='127.0.0.1', port=15000)