From be52ec2bded21e98e08c7a52c0b12e03ebf68ca8 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Thu, 13 Mar 2025 17:50:49 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=94=AF=E6=8C=81=E6=95=B4?= =?UTF-8?q?=E5=90=88=E5=8C=85=E6=8F=92=E4=BB=B6=E5=AE=89=E8=A3=85=E5=92=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B4=E5=90=88=E5=8C=85=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 ++++++++++++++++ .../plugin_store/data_source.py | 22 +++++++++++++++- .../web_ui/api/configure/__init__.py | 25 ++++++++++--------- 3 files changed, 56 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6eb1d5a5..9b4003a8 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,28 @@ AccessToken: PUBLIC_ZHENXUN_TEST - 提供了 cd,阻塞,每日次数等限制,仅仅通过简单的属性就可以生成一个限制,例如:`PluginCdBlock` 等 - **更多详细请通过 [传送门](https://hibikier.github.io/zhenxun_bot/) 查看文档!** +## 🐣 小白整合 + +如果你系统是 **Windows** 且不想下载 Python +可以使用整合包(Python3.10+zhenxun+webui) + +文档地址:[整合包文档](https://hibikier.github.io/zhenxun_bot/beginner/) + +
+下载地址 + +- **百度云:** + https://pan.baidu.com/s/1ph4yzx1vdNbkxm9VBKDdgQ?pwd=971j + +- **天翼云:** + https://cloud.189.cn/web/share?code=jq67r2i2E7Fb + 访问码:8wxm + +- **Google Drive:** + https://drive.google.com/file/d/1cc3Dqjk0x5hWGLNeMkrFwWl8BvsK6KfD/view?usp=drive_link + +
+ ## 🛠️ 简单部署 ```bash diff --git a/zhenxun/builtin_plugins/plugin_store/data_source.py b/zhenxun/builtin_plugins/plugin_store/data_source.py index 6e662a81..85dcabd0 100644 --- a/zhenxun/builtin_plugins/plugin_store/data_source.py +++ b/zhenxun/builtin_plugins/plugin_store/data_source.py @@ -18,6 +18,8 @@ from zhenxun.utils.utils import is_number from .config import BASE_PATH, DEFAULT_GITHUB_URL, EXTRA_GITHUB_URL +BAT_FILE = Path() / "win启动.bat" + def row_style(column: str, text: str) -> RowStyle: """被动技能文本风格 @@ -50,8 +52,26 @@ def install_requirement(plugin_path: Path): return try: + if BAT_FILE.exists(): + command = [ + "./Python310/python.exe", + "-m", + "pip", + "install", + "-r", + str(existing_requirements), + ] + else: + command = [ + "poetry", + "run", + "pip", + "install", + "-r", + str(existing_requirements), + ] result = subprocess.run( - ["poetry", "run", "pip", "install", "-r", str(existing_requirements)], + command, check=True, capture_output=True, text=True, diff --git a/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py b/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py index 016db121..f04fe5fe 100644 --- a/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py +++ b/zhenxun/builtin_plugins/web_ui/api/configure/__init__.py @@ -1,7 +1,6 @@ import asyncio import os from pathlib import Path -import platform import re import subprocess import sys @@ -23,6 +22,8 @@ driver = nonebot.get_driver() port = driver.config.port +BAT_FILE = Path() / "win启动.bat" + FILE_NAME = ".configure_restart" @@ -58,11 +59,12 @@ async def _(setting: Setting) -> Result: Config.set_config("web-ui", "username", setting.username) Config.set_config("web-ui", "password", setting.password, True) env_file.write_text(env_text, encoding="utf-8") + for file in os.listdir(Path()): + if file.startswith(FILE_NAME): + Path(file).unlink() flag_file = Path() / f"{FILE_NAME}_{int(time.time())}" flag_file.touch() - return Result.ok( - platform.system() == "Windows", info="设置成功,请重启真寻以完成配置!" - ) + return Result.ok(BAT_FILE.exists(), info="设置成功,请重启真寻以完成配置!") @router.get( @@ -92,20 +94,19 @@ async def run_restart_command(bat_path: Path, port: int): description="重启", ) async def _() -> Result: - if platform.system() != "Windows": - return Result.fail("自动重启仅支持Windows系统,请尝试手动重启") - flag_file = None - for file in os.listdir(Path()): - if file.startswith(FILE_NAME): - flag_file = Path() / file + if not BAT_FILE.exists(): + return Result.fail("自动重启仅支持意见整合包,请尝试手动重启") + flag_file = next( + (Path() / file for file in os.listdir(Path()) if file.startswith(FILE_NAME)), + None, + ) if not flag_file or not flag_file.exists(): return Result.fail("重启标志文件不存在...") set_time = flag_file.name.split("_")[-1] if time.time() - float(set_time) > 10 * 60: return Result.fail("重启标志文件已过期,请重新设置配置。") flag_file.unlink() - bat_path = Path() / "win启动.bat" try: return Result.ok(info="执行重启命令成功") finally: - asyncio.create_task(run_restart_command(bat_path, port)) # noqa: RUF006 + asyncio.create_task(run_restart_command(BAT_FILE, port)) # noqa: RUF006