summaryrefslogtreecommitdiff
path: root/ATRI/plugins/console/data_source.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/console/data_source.py')
-rw-r--r--ATRI/plugins/console/data_source.py35
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("控制台初始化完成")