更新 data_source.py

This commit is contained in:
Natalie Johnson 2024-08-21 16:37:07 +08:00
parent 16e43de35e
commit fead5a87a8

View File

@ -1,5 +1,7 @@
import shutil
from pathlib import Path
import subprocess
import os
import nonebot
import ujson as json
@ -83,6 +85,20 @@ async def download_file(url: str):
f.write(r.text)
def install_requirement(plugin_path: Path):
requirement_path = plugin_path / "requirement.txt"
if not requirement_path.exists():
logger.debug(f"No requirement.txt found for plugin: {plugin_path.name}", "插件管理")
return
try:
result = subprocess.run(["pip", "install", "-r", str(requirement_path)], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
logger.debug(f"Successfully installed dependencies for plugin: {plugin_path.name}. Output:\n{result.stdout}", "插件管理")
except subprocess.CalledProcessError as e:
logger.error(f"Failed to install dependencies for plugin: {plugin_path.name}. Error:\n{e.stderr}")
class ShopManage:
type2name = {
@ -171,6 +187,11 @@ class ShopManage:
return "插件下载地址构建失败..."
logger.debug(f"尝试下载插件 URL: {url_path}", "插件管理")
await download_file(DOWNLOAD_URL.format(url_path))
# 安装依赖
plugin_path = BASE_PATH / "/".join(module_path_split)
install_requirement(plugin_path)
return f"插件 {plugin_key} 安装成功!"
@classmethod