diff options
Diffstat (limited to 'ATRI/plugins/console/data_source.py')
-rw-r--r-- | ATRI/plugins/console/data_source.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/ATRI/plugins/console/data_source.py b/ATRI/plugins/console/data_source.py index eee862c..a0e5ef0 100644 --- a/ATRI/plugins/console/data_source.py +++ b/ATRI/plugins/console/data_source.py @@ -1,6 +1,7 @@ import json import socket import string +import zipfile from random import sample from pathlib import Path @@ -8,7 +9,9 @@ from nonebot.permission import SUPERUSER from ATRI.service import Service from ATRI.utils import request +from ATRI.rule import is_in_service from ATRI.exceptions import WriteFileError +from ATRI.log import logger as log CONSOLE_DIR = Path(".") / "data" / "plugins" / "console" @@ -18,7 +21,13 @@ CONSOLE_DIR.mkdir(parents=True, exist_ok=True) class Console(Service): def __init__(self): Service.__init__( - self, "控制台", "前端管理页面", True, main_cmd="/con", permission=SUPERUSER + self, + "控制台", + "前端管理页面", + True, + is_in_service("控制台"), + main_cmd="/con", + permission=SUPERUSER, ) @staticmethod @@ -56,3 +65,27 @@ class Console(Service): if not data: return {"data": None} return data + + +FRONTEND_DIR = CONSOLE_DIR / "frontend" +FRONTEND_DIR.mkdir(parents=True, exist_ok=True) +CONSOLE_RESOURCE_URL = "https://jsd.imki.moe/gh/kyomotoi/Project-ATRI-Console@main/archive/dist.zip" + + +async def init_resource(): + log.info("控制台初始化中...") + + try: + resp = await request.get(CONSOLE_RESOURCE_URL) + except Exception: + log.error("控制台资源装载失败, 将无法访问管理界面") + return + print(len(resp.read())) + file_path = CONSOLE_DIR / "dist.zip" + with open(file_path, "wb") as w: + w.write(resp.read()) + + with zipfile.ZipFile(file_path, "r") as zr: + zr.extractall(FRONTEND_DIR) + + log.success("控制台初始化完成") |