From a49f2774d0588bf448101d6ce59b05a72cfa73c4 Mon Sep 17 00:00:00 2001 From: Tianmoy <95174435+Tianmoy@users.noreply.github.com> Date: Sun, 16 Mar 2025 19:57:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=EF=BC=9A=E6=B7=BB=E5=8A=A0conda?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=80=89=E9=A1=B9=20=E6=9B=B4=E6=94=B9MongoD?= =?UTF-8?q?B=E5=90=AF=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MaiLauncher.bat | 1173 +++++++++++++++++++++++++---------------------- 1 file changed, 636 insertions(+), 537 deletions(-) diff --git a/MaiLauncher.bat b/MaiLauncher.bat index c3dce052a..adb7a1a7e 100644 --- a/MaiLauncher.bat +++ b/MaiLauncher.bat @@ -1,537 +1,636 @@ -@echo off -@setlocal enabledelayedexpansion -@chcp 936 - -@REM 设置版本号 -set "VERSION=1.0" - -title 麦麦Bot控制台 v%VERSION% - -@REM 设置Python和Git环境变量 -set "_root=%~dp0" -set "_root=%_root:~0,-1%" -cd "%_root%" - - -:search_python -cls -if exist "%_root%\python" ( - set "PYTHON_HOME=%_root%\python" -) else if exist "%_root%\venv" ( - call "%_root%\venv\Scripts\activate.bat" - set "PYTHON_HOME=%_root%\venv\Scripts" -) else ( - echo 正在自动查找Python解释器... - - where python >nul 2>&1 - if %errorlevel% equ 0 ( - for /f "delims=" %%i in ('where python') do ( - echo %%i | findstr /i /c:"!LocalAppData!\Microsoft\WindowsApps\python.exe" >nul - if errorlevel 1 ( - echo 找到Python解释器:%%i - set "py_path=%%i" - goto :validate_python - ) - ) - ) - set "search_paths=%ProgramFiles%\Git*;!LocalAppData!\Programs\Python\Python*" - for /d %%d in (!search_paths!) do ( - if exist "%%d\python.exe" ( - set "py_path=%%d\python.exe" - goto :validate_python - ) - ) - echo 没有找到Python解释器,要安装吗? - set /p pyinstall_confirm="继续?(Y/n): " - if /i "!pyinstall_confirm!"=="Y" ( - cls - echo 正在安装Python... - winget install --id Python.Python.3.13 -e --accept-package-agreements --accept-source-agreements - if %errorlevel% neq 0 ( - echo 安装失败,请手动安装Python - start https://www.python.org/downloads/ - exit /b - ) - echo 安装完成,正在验证Python... - goto search_python - - ) else ( - echo 取消安装Python,按任意键退出... - pause >nul - exit /b - ) - - echo 错误:未找到可用的Python解释器! - exit /b 1 - - :validate_python - "!py_path!" --version >nul 2>&1 - if %errorlevel% neq 0 ( - echo 无效的Python解释器:%py_path% - exit /b 1 - ) - - :: 提取安装目录 - for %%i in ("%py_path%") do set "PYTHON_HOME=%%~dpi" - set "PYTHON_HOME=%PYTHON_HOME:~0,-1%" -) -if not exist "%PYTHON_HOME%\python.exe" ( - echo Python路径验证失败:%PYTHON_HOME% - echo 请检查Python安装路径中是否有python.exe文件 - exit /b 1 -) -echo 成功设置Python路径:%PYTHON_HOME% - - - -:search_git -cls -if exist "%_root%\tools\git\bin" ( - set "GIT_HOME=%_root%\tools\git\bin" -) else ( - echo 正在自动查找Git... - - where git >nul 2>&1 - if %errorlevel% equ 0 ( - for /f "delims=" %%i in ('where git') do ( - set "git_path=%%i" - goto :validate_git - ) - ) - echo 正在扫描常见安装路径... - set "search_paths=!ProgramFiles!\Git\cmd" - for /f "tokens=*" %%d in ("!search_paths!") do ( - if exist "%%d\git.exe" ( - set "git_path=%%d\git.exe" - goto :validate_git - ) - ) - echo 没有找到Git,要安装吗? - set /p confirm="继续?(Y/N): " - if /i "!confirm!"=="Y" ( - cls - echo 正在安装Git... - set "custom_url=https://ghfast.top/https://github.com/git-for-windows/git/releases/download/v2.48.1.windows.1/Git-2.48.1-64-bit.exe" - - set "download_path=%TEMP%\Git-Installer.exe" - - echo 正在下载Git安装包... - curl -L -o "!download_path!" "!custom_url!" - - if exist "!download_path!" ( - echo 下载成功,开始安装Git... - start /wait "" "!download_path!" /SILENT /NORESTART - ) else ( - echo 下载失败,请手动安装Git - start https://git-scm.com/download/win - exit /b - ) - - del "!download_path!" - echo 临时文件已清理。 - - echo 安装完成,正在验证Git... - where git >nul 2>&1 - if %errorlevel% equ 0 ( - for /f "delims=" %%i in ('where git') do ( - set "git_path=%%i" - goto :validate_git - ) - goto :search_git - - ) else ( - echo 安装完成,但未找到Git,请手动安装Git - start https://git-scm.com/download/win - exit /b - ) - - ) else ( - echo 取消安装Git,按任意键退出... - pause >nul - exit /b - ) - - echo 错误:未找到可用的Git! - exit /b 1 - - :validate_git - "%git_path%" --version >nul 2>&1 - if %errorlevel% neq 0 ( - echo 无效的Git:%git_path% - exit /b 1 - ) - - :: 提取安装目录 - for %%i in ("%git_path%") do set "GIT_HOME=%%~dpi" - set "GIT_HOME=%GIT_HOME:~0,-1%" -) - -:search_mongodb -cls -sc query | findstr /i "MongoDB" >nul -if !errorlevel! neq 0 ( - echo MongoDB服务未运行,正在尝试启动... - powershell -Command "Start-Process -Verb RunAs cmd -ArgumentList '/c net start MongoDB'" - echo 正在等待MongoDB服务启动... - echo 按下任意键跳过等待... - timeout /t 30 >nul - sc query | findstr /i "MongoDB" >nul - if !errorlevel! neq 0 ( - echo MongoDB服务启动失败,可能是没有安装,要安装吗? - set /p confirm="继续?(Y/N): " - if /i "!confirm!"=="Y" ( - echo 正在安装MongoDB... - winget install --id MongoDB.Server -e --accept-package-agreements --accept-source-agreements - echo 安装完成,正在启动MongoDB服务... - net start MongoDB - if %errorlevel% neq 0 ( - echo 启动MongoDB服务失败,请手动启动 - exit /b - ) - echo MongoDB服务已启动 - ) else ( - echo 取消安装MongoDB,按任意键退出... - pause >nul - exit /b - ) - ) -) else ( - echo MongoDB服务已运行 -) - -@REM set "GIT_HOME=%_root%\tools\git\bin" -set "PATH=%PYTHON_HOME%;%GIT_HOME%;%PATH%" - -:install_maim -if not exist "!_root!\bot.py" ( - cls - echo 你似乎没有安装麦麦Bot,要安装在当前目录吗? - set /p confirm="继续?(Y/N): " - if /i "!confirm!"=="Y" ( - echo 要使用Git代理下载吗? - set /p proxy_confirm="继续?(Y/N): " - if /i "!proxy_confirm!"=="Y" ( - echo 正在安装麦麦Bot... - git clone https://ghfast.top/https://github.com/SengokuCola/MaiMBot - ) else ( - echo 正在安装麦麦Bot... - git clone https://github.com/SengokuCola/MaiMBot - ) - xcopy /E /H /I MaiMBot . >nul 2>&1 - rmdir /s /q MaiMBot - git checkout main-fix - - echo 安装完成,正在安装依赖... - python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple - python -m pip install virtualenv - python -m virtualenv venv - call venv\Scripts\activate.bat - python -m pip install -r requirements.txt - - echo 安装完成,要编辑配置文件吗? - set /p edit_confirm="继续?(Y/N): " - if /i "!edit_confirm!"=="Y" ( - goto config_menu - ) else ( - echo 取消编辑配置文件,按任意键返回主菜单... - ) - ) -) - - -@REM git获取当前分支名并保存在变量里 -for /f "delims=" %%b in ('git symbolic-ref --short HEAD 2^>nul') do ( - set "BRANCH=%%b" -) - -@REM 根据不同分支名给分支名字符串使用不同颜色 -echo 分支名: %BRANCH% -if "!BRANCH!"=="main" ( - set "BRANCH_COLOR=" -) else if "!BRANCH!"=="main-fix" ( - set "BRANCH_COLOR=" -@REM ) else if "%BRANCH%"=="stable-dev" ( -@REM set "BRANCH_COLOR=" -) else ( - set "BRANCH_COLOR=" -) - -@REM endlocal & set "BRANCH_COLOR=%BRANCH_COLOR%" - -:check_is_venv -echo 正在检查是否在虚拟环境中... -if exist "%_root%\config\no_venv" ( - echo 检测到no_venv,跳过虚拟环境检查 - goto menu -) -if not defined VIRTUAL_ENV ( - echo 当前使用的Python环境为: - echo !PYTHON_HOME! - echo 似乎没有使用虚拟环境,是否要创建一个新的虚拟环境? - set /p confirm="继续?(Y/N): " - if /i "!confirm!"=="Y" ( - echo 正在创建虚拟环境... - python -m virtualenv venv - call venv\Scripts\activate.bat - echo 要安装依赖吗? - set /p install_confirm="继续?(Y/N): " - if /i "%install_confirm%"=="Y" ( - echo 正在安装依赖... - python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple - python -m pip install -r requirements.txt - ) - echo 虚拟环境创建完成,按任意键返回... - ) else ( - echo 要永久跳过虚拟环境检查吗? - set /p no_venv_confirm="继续?(Y/N): " - if /i "!no_venv_confirm!"=="Y" ( - echo 正在创建no_venv文件... - echo 1 > "%_root%\config\no_venv" - echo 已创建no_venv文件,按任意键返回... - ) else ( - echo 取消跳过虚拟环境检查,按任意键返回... - ) - ) - pause >nul -) -goto menu - -:menu -@chcp 936 -cls -echo 麦麦Bot控制台 v%VERSION% 当前分支: %BRANCH_COLOR%%BRANCH% -echo 当前Python环境: !PYTHON_HOME! -echo ====================== -echo 1. 更新并启动麦麦Bot (默认) -echo 2. 直接启动麦麦Bot -echo 3. 启动麦麦配置界面 -echo 4. 打开麦麦神奇工具箱 -echo 5. 退出 -echo ====================== - -set /p choice="请输入选项数字 (1-5)并按下回车以选择: " - -if "!choice!"=="" set choice=1 - -if "!choice!"=="1" goto update_and_start -if "!choice!"=="2" goto start_bot -if "!choice!"=="3" goto config_menu -if "!choice!"=="4" goto tools_menu -if "!choice!"=="5" exit /b - -echo 无效的输入,请输入1-5之间的数字 -timeout /t 2 >nul -goto menu - -:config_menu -@chcp 936 -cls -if not exist config/bot_config.toml ( - copy /Y "template\bot_config_template.toml" "config\bot_config.toml" - -) -if not exist .env.prod ( - copy /Y "template\.env.prod" ".env.prod" -) - -start python webui.py - -goto menu - - -:tools_menu -@chcp 936 -cls -echo 麦麦时尚工具箱 当前分支: %BRANCH_COLOR%%BRANCH% -echo ====================== -echo 1. 更新依赖 -echo 2. 切换分支 -echo 3. 重置当前分支 -echo 4. 更新配置文件 -echo 5. 学习新的知识库 -echo 6. 打开知识库文件夹 -echo 7. 返回主菜单 -echo ====================== - -set /p choice="请输入选项数字: " -if "!choice!"=="1" goto update_dependencies -if "!choice!"=="2" goto switch_branch -if "!choice!"=="3" goto reset_branch -if "!choice!"=="4" goto update_config -if "!choice!"=="5" goto learn_new_knowledge -if "!choice!"=="6" goto open_knowledge_folder -if "!choice!"=="7" goto menu - -echo 无效的输入,请输入1-6之间的数字 -timeout /t 2 >nul -goto tools_menu - -:update_dependencies -cls -echo 正在更新依赖... -python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple -python.exe -m pip install -r requirements.txt - -echo 依赖更新完成,按任意键返回工具箱菜单... -pause -goto tools_menu - -:switch_branch -cls -echo 正在切换分支... -echo 当前分支: %BRANCH% -@REM echo 可用分支: main, debug, stable-dev -echo 1. 切换到main -echo 2. 切换到main-fix -echo 请输入要切换到的分支: -set /p branch_name="分支名: " -if "%branch_name%"=="" set branch_name=main -if "%branch_name%"=="main" ( - set "BRANCH_COLOR=" -) else if "%branch_name%"=="main-fix" ( - set "BRANCH_COLOR=" -@REM ) else if "%branch_name%"=="stable-dev" ( -@REM set "BRANCH_COLOR=" -) else if "%branch_name%"=="1" ( - set "BRANCH_COLOR=" - set "branch_name=main" -) else if "%branch_name%"=="2" ( - set "BRANCH_COLOR=" - set "branch_name=main-fix" -) else ( - echo 无效的分支名, 请重新输入 - timeout /t 2 >nul - goto switch_branch -) - -echo 正在切换到分支 %branch_name%... -git checkout %branch_name% -echo 分支切换完成,当前分支: %BRANCH_COLOR%%branch_name% -set "BRANCH=%branch_name%" -echo 按任意键返回工具箱菜单... -pause >nul -goto tools_menu - - -:reset_branch -cls -echo 正在重置当前分支... -echo 当前分支: !BRANCH! -echo 确认要重置当前分支吗? -set /p confirm="继续?(Y/N): " -if /i "!confirm!"=="Y" ( - echo 正在重置当前分支... - git reset --hard !BRANCH! - echo 分支重置完成,按任意键返回工具箱菜单... -) else ( - echo 取消重置当前分支,按任意键返回工具箱菜单... -) -pause >nul -goto tools_menu - - -:update_config -cls -echo 正在更新配置文件... -echo 请确保已备份重要数据,继续将修改当前配置文件。 -echo 继续请按Y,取消请按任意键... -set /p confirm="继续?(Y/N): " -if /i "!confirm!"=="Y" ( - echo 正在更新配置文件... - python.exe config\auto_update.py - echo 配置文件更新完成,按任意键返回工具箱菜单... -) else ( - echo 取消更新配置文件,按任意键返回工具箱菜单... -) -pause >nul -goto tools_menu - -:learn_new_knowledge -cls -echo 正在学习新的知识库... -echo 请确保已备份重要数据,继续将修改当前知识库。 -echo 继续请按Y,取消请按任意键... -set /p confirm="继续?(Y/N): " -if /i "!confirm!"=="Y" ( - echo 正在学习新的知识库... - python.exe src\plugins\zhishi\knowledge_library.py - echo 学习完成,按任意键返回工具箱菜单... -) else ( - echo 取消学习新的知识库,按任意键返回工具箱菜单... -) -pause >nul -goto tools_menu - -:open_knowledge_folder -cls -echo 正在打开知识库文件夹... -if exist data\raw_info ( - start explorer data\raw_info -) else ( - echo 知识库文件夹不存在! - echo 正在创建文件夹... - mkdir data\raw_info - timeout /t 2 >nul -) -goto tools_menu - - -:update_and_start -cls -:retry_git_pull -git pull > temp.log 2>&1 -findstr /C:"detected dubious ownership" temp.log >nul -if %errorlevel% equ 0 ( - echo 检测到仓库权限问题,正在自动修复... - git config --global --add safe.directory "%cd%" - echo 已添加例外,正在重试git pull... - del temp.log - goto retry_git_pull -) -del temp.log -echo 正在更新依赖... -python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple -python -m pip install -r requirements.txt && cls - -echo 当前代理设置: -echo HTTP_PROXY=%HTTP_PROXY% -echo HTTPS_PROXY=%HTTPS_PROXY% - -echo Disable Proxy... -set HTTP_PROXY= -set HTTPS_PROXY= -set no_proxy=0.0.0.0/32 - -REM chcp 65001 -python bot.py -echo. -echo Bot已停止运行,按任意键返回主菜单... -pause >nul -goto menu - -:start_bot -cls -echo 正在更新依赖... -python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple -python -m pip install -r requirements.txt && cls - -echo 当前代理设置: -echo HTTP_PROXY=%HTTP_PROXY% -echo HTTPS_PROXY=%HTTPS_PROXY% - -echo Disable Proxy... -set HTTP_PROXY= -set HTTPS_PROXY= -set no_proxy=0.0.0.0/32 - -REM chcp 65001 -python bot.py -echo. -echo Bot已停止运行,按任意键返回主菜单... -pause >nul -goto menu - - -:open_dir -start explorer "%cd%" -goto menu +@echo off +@setlocal enabledelayedexpansion +@chcp 936 + +@REM ð汾 +set "VERSION=1.0" + +title Bot̨ v%VERSION% + +@REM PythonGit +set "_root=%~dp0" +set "_root=%_root:~0,-1%" +cd "%_root%" + + +:search_python +cls +if exist "%_root%\python" ( + set "PYTHON_HOME=%_root%\python" +) else if exist "%_root%\venv" ( + call "%_root%\venv\Scripts\activate.bat" + set "PYTHON_HOME=%_root%\venv\Scripts" +) else ( + echo ԶPython... + + where python >nul 2>&1 + if %errorlevel% equ 0 ( + for /f "delims=" %%i in ('where python') do ( + echo %%i | findstr /i /c:"!LocalAppData!\Microsoft\WindowsApps\python.exe" >nul + if errorlevel 1 ( + echo ҵPython%%i + set "py_path=%%i" + goto :validate_python + ) + ) + ) + set "search_paths=%ProgramFiles%\Git*;!LocalAppData!\Programs\Python\Python*" + for /d %%d in (!search_paths!) do ( + if exist "%%d\python.exe" ( + set "py_path=%%d\python.exe" + goto :validate_python + ) + ) + echo ûҵPython,Ҫװ? + set /p pyinstall_confirm="(Y/n): " + if /i "!pyinstall_confirm!"=="Y" ( + cls + echo ڰװPython... + winget install --id Python.Python.3.13 -e --accept-package-agreements --accept-source-agreements + if %errorlevel% neq 0 ( + echo װʧܣֶװPython + start https://www.python.org/downloads/ + exit /b + ) + echo װɣ֤Python... + goto search_python + + ) else ( + echo ȡװPython˳... + pause >nul + exit /b + ) + + echo δҵõPython + exit /b 1 + + :validate_python + "!py_path!" --version >nul 2>&1 + if %errorlevel% neq 0 ( + echo ЧPython%py_path% + exit /b 1 + ) + + :: ȡװĿ¼ + for %%i in ("%py_path%") do set "PYTHON_HOME=%%~dpi" + set "PYTHON_HOME=%PYTHON_HOME:~0,-1%" +) +if not exist "%PYTHON_HOME%\python.exe" ( + echo Python·֤ʧܣ%PYTHON_HOME% + echo Pythonװ·Ƿpython.exeļ + exit /b 1 +) +echo ɹPython·%PYTHON_HOME% + + + +:search_git +cls +if exist "%_root%\tools\git\bin" ( + set "GIT_HOME=%_root%\tools\git\bin" +) else ( + echo ԶGit... + + where git >nul 2>&1 + if %errorlevel% equ 0 ( + for /f "delims=" %%i in ('where git') do ( + set "git_path=%%i" + goto :validate_git + ) + ) + echo ɨ賣װ·... + set "search_paths=!ProgramFiles!\Git\cmd" + for /f "tokens=*" %%d in ("!search_paths!") do ( + if exist "%%d\git.exe" ( + set "git_path=%%d\git.exe" + goto :validate_git + ) + ) + echo ûҵGitҪװ + set /p confirm="(Y/N): " + if /i "!confirm!"=="Y" ( + cls + echo ڰװGit... + set "custom_url=https://ghfast.top/https://github.com/git-for-windows/git/releases/download/v2.48.1.windows.1/Git-2.48.1-64-bit.exe" + + set "download_path=%TEMP%\Git-Installer.exe" + + echo Gitװ... + curl -L -o "!download_path!" "!custom_url!" + + if exist "!download_path!" ( + echo سɹʼװGit... + start /wait "" "!download_path!" /SILENT /NORESTART + ) else ( + echo ʧܣֶװGit + start https://git-scm.com/download/win + exit /b + ) + + del "!download_path!" + echo ʱļ + + echo װɣ֤Git... + where git >nul 2>&1 + if %errorlevel% equ 0 ( + for /f "delims=" %%i in ('where git') do ( + set "git_path=%%i" + goto :validate_git + ) + goto :search_git + + ) else ( + echo װɣδҵGitֶװGit + start https://git-scm.com/download/win + exit /b + ) + + ) else ( + echo ȡװGit˳... + pause >nul + exit /b + ) + + echo δҵõGit + exit /b 1 + + :validate_git + "%git_path%" --version >nul 2>&1 + if %errorlevel% neq 0 ( + echo ЧGit%git_path% + exit /b 1 + ) + + :: ȡװĿ¼ + for %%i in ("%git_path%") do set "GIT_HOME=%%~dpi" + set "GIT_HOME=%GIT_HOME:~0,-1%" +) + +:search_mongodb +cls +sc query | findstr /i "MongoDB" >nul +if !errorlevel! neq 0 ( + echo MongoDBδУǷз + set /p confirm="Ƿ(Y/N): " + if /i "!confirm!"=="Y" ( + echo ڳMongoDB... + powershell -Command "Start-Process -Verb RunAs cmd -ArgumentList '/c net start MongoDB'" + echo ڵȴMongoDB... + echo ȴ... + timeout /t 30 >nul + sc query | findstr /i "MongoDB" >nul + if !errorlevel! neq 0 ( + echo MongoDBʧܣûаװҪװ + set /p install_confirm="װ(Y/N): " + if /i "!install_confirm!"=="Y" ( + echo ڰװMongoDB... + winget install --id MongoDB.Server -e --accept-package-agreements --accept-source-agreements + echo װɣMongoDB... + net start MongoDB + if !errorlevel! neq 0 ( + echo MongoDBʧܣֶ + exit /b + ) else ( + echo MongoDBѳɹ + ) + ) else ( + echo ȡװMongoDB˳... + pause >nul + exit /b + ) + ) + ) else ( + echo 棺MongoDBδУMaiMBot޷ݿ⣡ + ) +) else ( + echo MongoDB +) + +@REM set "GIT_HOME=%_root%\tools\git\bin" +set "PATH=%PYTHON_HOME%;%GIT_HOME%;%PATH%" + +:install_maim +if not exist "!_root!\bot.py" ( + cls + echo ƺûаװBotҪװڵǰĿ¼ + set /p confirm="(Y/N): " + if /i "!confirm!"=="Y" ( + echo ҪʹGit + set /p proxy_confirm="(Y/N): " + if /i "!proxy_confirm!"=="Y" ( + echo ڰװBot... + git clone https://ghfast.top/https://github.com/SengokuCola/MaiMBot + ) else ( + echo ڰװBot... + git clone https://github.com/SengokuCola/MaiMBot + ) + xcopy /E /H /I MaiMBot . >nul 2>&1 + rmdir /s /q MaiMBot + git checkout main-fix + + echo װɣڰװ... + python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple + python -m pip install virtualenv + python -m virtualenv venv + call venv\Scripts\activate.bat + python -m pip install -r requirements.txt + + echo װɣҪ༭ļ + set /p edit_confirm="(Y/N): " + if /i "!edit_confirm!"=="Y" ( + goto config_menu + ) else ( + echo ȡ༭ļ˵... + ) + ) +) + + +@REM gitȡǰ֧ڱ +for /f "delims=" %%b in ('git symbolic-ref --short HEAD 2^>nul') do ( + set "BRANCH=%%b" +) + +@REM ݲַ֧֧ͬʹòͬɫ +echo ֧: %BRANCH% +if "!BRANCH!"=="main" ( + set "BRANCH_COLOR=" +) else if "!BRANCH!"=="main-fix" ( + set "BRANCH_COLOR=" +@REM ) else if "%BRANCH%"=="stable-dev" ( +@REM set "BRANCH_COLOR=" +) else ( + set "BRANCH_COLOR=" +) + +@REM endlocal & set "BRANCH_COLOR=%BRANCH_COLOR%" + +:check_is_venv +echo ڼ⻷״̬... +if exist "%_root%\config\no_venv" ( + echo ⵽no_venv,⻷ + goto menu +) + +set "ENV_STATUS=δ" +set "ENV_TYPE=ϵͳ" + +:: +if defined VIRTUAL_ENV ( + goto menu +) + +echo ===================================== +echo ⻷⾯棺 +echo ǰʹϵͳPython·!PYTHON_HOME! +echo δ⵽⻷ + +:env_interaction +echo ===================================== +echo ѡ +echo 1 - Venv⻷ +echo 2 - /Conda⻷ +echo 3 - ʱμ +echo 4 - ⻷ +choice /c 1234 /n /m "ѡ(1-4): " + +if errorlevel 4 ( + echo Ҫ⻷ + set /p no_venv_confirm="(Y/N): ....." + if /i "!no_venv_confirm!"=="Y" ( + echo 1 > "%_root%\config\no_venv" + echo Ѵno_venvļ + pause >nul + goto menu + ) else ( + echo ȡ⻷飬... + goto env_interaction + ) +) + +if errorlevel 3 ( + echo 棺ʹϵͳܵͻ + timeout /t 2 >nul + goto menu +) + +if errorlevel 2 goto handle_conda +if errorlevel 1 goto handle_venv + +:handle_venv +echo ڳʼVenv... +echo ⻷venv + python -m virtualenv venv || ( + echo ʧܣ룺!errorlevel! + pause + goto env_interaction +) + +call venv\Scripts\activate.bat +echo ѼVenv +goto install_dependencies + +:handle_conda +where conda >nul 2>&1 || ( + echo δ⵽condaǷװMiniconda + choice /c YN /n /m "ѡ(Y/N): " + if errorlevel 2 goto env_interaction + echo ڰװMiniconda... + winget install --id Anaconda.Miniconda3 -e || ( + echo װʧܣ룺!errorlevel! + pause + goto env_interaction + ) + if exist "%UserProfile%\Miniconda3\Scripts\conda.exe" ( + call "%UserProfile%\Miniconda3\Scripts\conda.exe" init cmd.exe + echo װɺű + timeout /t 10 >nul + exit /b + ) +) + +:conda_menu +echo ѡConda +echo 1 - » +echo 2 - л +echo 3 - ϼ˵ +choice /c 123 /n /m "ѡ(1-3): " + +if errorlevel 3 goto env_interaction +if errorlevel 2 goto activate_conda +if errorlevel 1 goto create_conda + +:create_conda +set /p "CONDA_ENV=»ƣ" +if "!CONDA_ENV!"=="" ( + echo ƲΪգ + goto create_conda +) +conda create -n !CONDA_ENV! python=3.13 -y || ( + echo ʧܣ룺!errorlevel! + pause + goto conda_menu +) +goto activate_conda + +:activate_conda +set /p "CONDA_ENV=ҪĻƣ" +conda activate !CONDA_ENV! || ( + echo ʧܣԭ + echo 1. + echo 2. conda쳣 + pause + goto conda_menu +) +echo ɹconda!CONDA_ENV! + +:install_dependencies +echo ǷҪװĿ +choice /c YN /n /m "ѡ(Y/N): " +if errorlevel 2 goto menu +echo ڰװ... +python -m pip install -r "%_root%\requirements.txt" || ( + echo װʧܣ룺!errorlevel! + pause +) +goto menu + +:menu +@chcp 936 +cls +echo Bot̨ v%VERSION% ǰ֧: %BRANCH_COLOR%%BRANCH% +echo ǰPython: !PYTHON_HOME! +echo ====================== +echo 1. ²Bot (Ĭ) +echo 2. ֱBot +echo 3. ý +echo 4. 湤 +echo 5. ˳ +echo ====================== + +set /p choice="ѡ (1-5)»سѡ: " + +if "!choice!"=="" set choice=1 + +if "!choice!"=="1" goto update_and_start +if "!choice!"=="2" goto start_bot +if "!choice!"=="3" goto config_menu +if "!choice!"=="4" goto tools_menu +if "!choice!"=="5" exit /b + +echo Ч룬1-5֮ +timeout /t 2 >nul +goto menu + +:config_menu +@chcp 936 +cls +if not exist config/bot_config.toml ( + copy /Y "template\bot_config_template.toml" "config\bot_config.toml" + +) +if not exist .env.prod ( + copy /Y "template.env" ".env.prod" +) + +start python webui.py + +goto menu + + +:tools_menu +@chcp 936 +cls +echo ʱй ǰ֧: %BRANCH_COLOR%%BRANCH% +echo ====================== +echo 1. +echo 2. л֧ +echo 3. õǰ֧ +echo 4. ļ +echo 5. ѧϰµ֪ʶ +echo 6. ֪ʶļ +echo 7. ˵ +echo ====================== + +set /p choice="ѡ: " +if "!choice!"=="1" goto update_dependencies +if "!choice!"=="2" goto switch_branch +if "!choice!"=="3" goto reset_branch +if "!choice!"=="4" goto update_config +if "!choice!"=="5" goto learn_new_knowledge +if "!choice!"=="6" goto open_knowledge_folder +if "!choice!"=="7" goto menu + +echo Ч룬1-6֮ +timeout /t 2 >nul +goto tools_menu + +:update_dependencies +cls +echo ڸ... +python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple +python.exe -m pip install -r requirements.txt + +echo ɣع˵... +pause +goto tools_menu + +:switch_branch +cls +echo л֧... +echo ǰ֧: %BRANCH% +@REM echo ÷֧: main, debug, stable-dev +echo 1. лmain +echo 2. лmain-fix +echo Ҫлķ֧: +set /p branch_name="֧: " +if "%branch_name%"=="" set branch_name=main +if "%branch_name%"=="main" ( + set "BRANCH_COLOR=" +) else if "%branch_name%"=="main-fix" ( + set "BRANCH_COLOR=" +@REM ) else if "%branch_name%"=="stable-dev" ( +@REM set "BRANCH_COLOR=" +) else if "%branch_name%"=="1" ( + set "BRANCH_COLOR=" + set "branch_name=main" +) else if "%branch_name%"=="2" ( + set "BRANCH_COLOR=" + set "branch_name=main-fix" +) else ( + echo Чķ֧, + timeout /t 2 >nul + goto switch_branch +) + +echo л֧ %branch_name%... +git checkout %branch_name% +echo ֧лɣǰ֧: %BRANCH_COLOR%%branch_name% +set "BRANCH=%branch_name%" +echo ع˵... +pause >nul +goto tools_menu + + +:reset_branch +cls +echo õǰ֧... +echo ǰ֧: !BRANCH! +echo ȷҪõǰ֧ +set /p confirm="(Y/N): " +if /i "!confirm!"=="Y" ( + echo õǰ֧... + git reset --hard !BRANCH! + echo ֧ɣع˵... +) else ( + echo ȡõǰ֧ع˵... +) +pause >nul +goto tools_menu + + +:update_config +cls +echo ڸļ... +echo ȷѱҪݣ޸ĵǰļ +echo 밴Yȡ밴... +set /p confirm="(Y/N): " +if /i "!confirm!"=="Y" ( + echo ڸļ... + python.exe config\auto_update.py + echo ļɣع˵... +) else ( + echo ȡļع˵... +) +pause >nul +goto tools_menu + +:learn_new_knowledge +cls +echo ѧϰµ֪ʶ... +echo ȷѱҪݣ޸ĵǰ֪ʶ⡣ +echo 밴Yȡ밴... +set /p confirm="(Y/N): " +if /i "!confirm!"=="Y" ( + echo ѧϰµ֪ʶ... + python.exe src\plugins\zhishi\knowledge_library.py + echo ѧϰɣع˵... +) else ( + echo ȡѧϰµ֪ʶ⣬ع˵... +) +pause >nul +goto tools_menu + +:open_knowledge_folder +cls +echo ڴ֪ʶļ... +if exist data\raw_info ( + start explorer data\raw_info +) else ( + echo ֪ʶļвڣ + echo ڴļ... + mkdir data\raw_info + timeout /t 2 >nul +) +goto tools_menu + + +:update_and_start +cls +:retry_git_pull +git pull > temp.log 2>&1 +findstr /C:"detected dubious ownership" temp.log >nul +if %errorlevel% equ 0 ( + echo ⵽ֿȨ⣬Զ޸... + git config --global --add safe.directory "%cd%" + echo ⣬git pull... + del temp.log + goto retry_git_pull +) +del temp.log +echo ڸ... +python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple +python -m pip install -r requirements.txt && cls + +echo ǰ: +echo HTTP_PROXY=%HTTP_PROXY% +echo HTTPS_PROXY=%HTTPS_PROXY% + +echo Disable Proxy... +set HTTP_PROXY= +set HTTPS_PROXY= +set no_proxy=0.0.0.0/32 + +REM chcp 65001 +python bot.py +echo. +echo BotֹͣУ˵... +pause >nul +goto menu + +:start_bot +cls +echo ڸ... +python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple +python -m pip install -r requirements.txt && cls + +echo ǰ: +echo HTTP_PROXY=%HTTP_PROXY% +echo HTTPS_PROXY=%HTTPS_PROXY% + +echo Disable Proxy... +set HTTP_PROXY= +set HTTPS_PROXY= +set no_proxy=0.0.0.0/32 + +REM chcp 65001 +python bot.py +echo. +echo BotֹͣУ˵... +pause >nul +goto menu + + +:open_dir +start explorer "%cd%" +goto menu From aaa11eb4e54034167dd1663872b4b0f7e21c464b Mon Sep 17 00:00:00 2001 From: Tianmoy <95174435+Tianmoy@users.noreply.github.com> Date: Sun, 16 Mar 2025 20:27:52 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=EF=BC=9A=E6=B7=BB=E5=8A=A0conda?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=80=89=E9=A1=B9=20=E6=9B=B4=E6=94=B9MongoD?= =?UTF-8?q?B=E5=90=AF=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MaiLauncher.bat | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MaiLauncher.bat b/MaiLauncher.bat index adb7a1a7e..0d812713c 100644 --- a/MaiLauncher.bat +++ b/MaiLauncher.bat @@ -375,14 +375,16 @@ goto activate_conda :activate_conda set /p "CONDA_ENV=ҪĻƣ" -conda activate !CONDA_ENV! || ( +call conda activate !CONDA_ENV! || ( echo ʧܣԭ echo 1. echo 2. conda쳣 + timeout /t >nul pause goto conda_menu ) echo ɹconda!CONDA_ENV! +timeout /t 2 >nul :install_dependencies echo ǷҪװĿ From b86bfd08b06969582486203a378f295923713422 Mon Sep 17 00:00:00 2001 From: Tianmoy <95174435+Tianmoy@users.noreply.github.com> Date: Mon, 17 Mar 2025 09:07:30 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=EF=BC=9A=E5=B0=86choice=E6=94=B9?= =?UTF-8?q?=E4=B8=BAset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MaiLauncher.bat | 385 ++++++++++++++++++++++++------------------------ 1 file changed, 196 insertions(+), 189 deletions(-) diff --git a/MaiLauncher.bat b/MaiLauncher.bat index 0d812713c..3e1c6065c 100644 --- a/MaiLauncher.bat +++ b/MaiLauncher.bat @@ -2,12 +2,12 @@ @setlocal enabledelayedexpansion @chcp 936 -@REM ð汾 +@REM 设置版本号 set "VERSION=1.0" -title Bot̨ v%VERSION% +title 麦麦Bot控制台 v%VERSION% -@REM PythonGit +@REM 设置Python和Git环境变量 set "_root=%~dp0" set "_root=%_root:~0,-1%" cd "%_root%" @@ -21,14 +21,14 @@ if exist "%_root%\python" ( call "%_root%\venv\Scripts\activate.bat" set "PYTHON_HOME=%_root%\venv\Scripts" ) else ( - echo ԶPython... + echo 正在自动查找Python解释器... where python >nul 2>&1 if %errorlevel% equ 0 ( for /f "delims=" %%i in ('where python') do ( echo %%i | findstr /i /c:"!LocalAppData!\Microsoft\WindowsApps\python.exe" >nul if errorlevel 1 ( - echo ҵPython%%i + echo 找到Python解释器:%%i set "py_path=%%i" goto :validate_python ) @@ -41,46 +41,46 @@ if exist "%_root%\python" ( goto :validate_python ) ) - echo ûҵPython,Ҫװ? - set /p pyinstall_confirm="(Y/n): " + echo 没有找到Python解释器,要安装吗? + set /p pyinstall_confirm="继续?(Y/n): " if /i "!pyinstall_confirm!"=="Y" ( cls - echo ڰװPython... + echo 正在安装Python... winget install --id Python.Python.3.13 -e --accept-package-agreements --accept-source-agreements if %errorlevel% neq 0 ( - echo װʧܣֶװPython + echo 安装失败,请手动安装Python start https://www.python.org/downloads/ exit /b ) - echo װɣ֤Python... + echo 安装完成,正在验证Python... goto search_python ) else ( - echo ȡװPython˳... + echo 取消安装Python,按任意键退出... pause >nul exit /b ) - echo δҵõPython + echo 错误:未找到可用的Python解释器! exit /b 1 :validate_python "!py_path!" --version >nul 2>&1 if %errorlevel% neq 0 ( - echo ЧPython%py_path% + echo 无效的Python解释器:%py_path% exit /b 1 ) - :: ȡװĿ¼ + :: 提取安装目录 for %%i in ("%py_path%") do set "PYTHON_HOME=%%~dpi" set "PYTHON_HOME=%PYTHON_HOME:~0,-1%" ) if not exist "%PYTHON_HOME%\python.exe" ( - echo Python·֤ʧܣ%PYTHON_HOME% - echo Pythonװ·Ƿpython.exeļ + echo Python路径验证失败:%PYTHON_HOME% + echo 请检查Python安装路径中是否有python.exe文件 exit /b 1 ) -echo ɹPython·%PYTHON_HOME% +echo 成功设置Python路径:%PYTHON_HOME% @@ -89,7 +89,7 @@ cls if exist "%_root%\tools\git\bin" ( set "GIT_HOME=%_root%\tools\git\bin" ) else ( - echo ԶGit... + echo 正在自动查找Git... where git >nul 2>&1 if %errorlevel% equ 0 ( @@ -98,7 +98,7 @@ if exist "%_root%\tools\git\bin" ( goto :validate_git ) ) - echo ɨ賣װ·... + echo 正在扫描常见安装路径... set "search_paths=!ProgramFiles!\Git\cmd" for /f "tokens=*" %%d in ("!search_paths!") do ( if exist "%%d\git.exe" ( @@ -106,31 +106,31 @@ if exist "%_root%\tools\git\bin" ( goto :validate_git ) ) - echo ûҵGitҪװ - set /p confirm="(Y/N): " + echo 没有找到Git,要安装吗? + set /p confirm="继续?(Y/N): " if /i "!confirm!"=="Y" ( cls - echo ڰװGit... + echo 正在安装Git... set "custom_url=https://ghfast.top/https://github.com/git-for-windows/git/releases/download/v2.48.1.windows.1/Git-2.48.1-64-bit.exe" set "download_path=%TEMP%\Git-Installer.exe" - echo Gitװ... + echo 正在下载Git安装包... curl -L -o "!download_path!" "!custom_url!" if exist "!download_path!" ( - echo سɹʼװGit... + echo 下载成功,开始安装Git... start /wait "" "!download_path!" /SILENT /NORESTART ) else ( - echo ʧܣֶװGit + echo 下载失败,请手动安装Git start https://git-scm.com/download/win exit /b ) del "!download_path!" - echo ʱļ + echo 临时文件已清理。 - echo װɣ֤Git... + echo 安装完成,正在验证Git... where git >nul 2>&1 if %errorlevel% equ 0 ( for /f "delims=" %%i in ('where git') do ( @@ -140,28 +140,28 @@ if exist "%_root%\tools\git\bin" ( goto :search_git ) else ( - echo װɣδҵGitֶװGit + echo 安装完成,但未找到Git,请手动安装Git start https://git-scm.com/download/win exit /b ) ) else ( - echo ȡװGit˳... + echo 取消安装Git,按任意键退出... pause >nul exit /b ) - echo δҵõGit + echo 错误:未找到可用的Git! exit /b 1 :validate_git "%git_path%" --version >nul 2>&1 if %errorlevel% neq 0 ( - echo ЧGit%git_path% + echo 无效的Git:%git_path% exit /b 1 ) - :: ȡװĿ¼ + :: 提取安装目录 for %%i in ("%git_path%") do set "GIT_HOME=%%~dpi" set "GIT_HOME=%GIT_HOME:~0,-1%" ) @@ -170,40 +170,40 @@ if exist "%_root%\tools\git\bin" ( cls sc query | findstr /i "MongoDB" >nul if !errorlevel! neq 0 ( - echo MongoDBδУǷз - set /p confirm="Ƿ(Y/N): " + echo MongoDB服务未运行,是否尝试运行服务? + set /p confirm="是否启动?(Y/N): " if /i "!confirm!"=="Y" ( - echo ڳMongoDB... + echo 正在尝试启动MongoDB服务... powershell -Command "Start-Process -Verb RunAs cmd -ArgumentList '/c net start MongoDB'" - echo ڵȴMongoDB... - echo ȴ... + echo 正在等待MongoDB服务启动... + echo 按下任意键跳过等待... timeout /t 30 >nul sc query | findstr /i "MongoDB" >nul if !errorlevel! neq 0 ( - echo MongoDBʧܣûаװҪװ - set /p install_confirm="װ(Y/N): " + echo MongoDB服务启动失败,可能是没有安装,要安装吗? + set /p install_confirm="继续安装?(Y/N): " if /i "!install_confirm!"=="Y" ( - echo ڰװMongoDB... + echo 正在安装MongoDB... winget install --id MongoDB.Server -e --accept-package-agreements --accept-source-agreements - echo װɣMongoDB... + echo 安装完成,正在启动MongoDB服务... net start MongoDB if !errorlevel! neq 0 ( - echo MongoDBʧܣֶ + echo 启动MongoDB服务失败,请手动启动 exit /b ) else ( - echo MongoDBѳɹ + echo MongoDB服务已成功启动 ) ) else ( - echo ȡװMongoDB˳... + echo 取消安装MongoDB,按任意键退出... pause >nul exit /b ) ) ) else ( - echo 棺MongoDBδУMaiMBot޷ݿ⣡ + call :RED_WARNING "警告:MongoDB服务未运行,将导致应用程序无法访问数据库!" ) ) else ( - echo MongoDB + echo MongoDB服务已运行 ) @REM set "GIT_HOME=%_root%\tools\git\bin" @@ -212,47 +212,47 @@ set "PATH=%PYTHON_HOME%;%GIT_HOME%;%PATH%" :install_maim if not exist "!_root!\bot.py" ( cls - echo ƺûаװBotҪװڵǰĿ¼ - set /p confirm="(Y/N): " + echo 你似乎没有安装麦麦Bot,要安装在当前目录吗? + set /p confirm="继续?(Y/N): " if /i "!confirm!"=="Y" ( - echo ҪʹGit - set /p proxy_confirm="(Y/N): " + echo 要使用Git代理下载吗? + set /p proxy_confirm="继续?(Y/N): " if /i "!proxy_confirm!"=="Y" ( - echo ڰװBot... + echo 正在安装麦麦Bot... git clone https://ghfast.top/https://github.com/SengokuCola/MaiMBot ) else ( - echo ڰװBot... + echo 正在安装麦麦Bot... git clone https://github.com/SengokuCola/MaiMBot ) xcopy /E /H /I MaiMBot . >nul 2>&1 rmdir /s /q MaiMBot git checkout main-fix - echo װɣڰװ... + echo 安装完成,正在安装依赖... python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip install virtualenv python -m virtualenv venv call venv\Scripts\activate.bat python -m pip install -r requirements.txt - echo װɣҪ༭ļ - set /p edit_confirm="(Y/N): " + echo 安装完成,要编辑配置文件吗? + set /p edit_confirm="继续?(Y/N): " if /i "!edit_confirm!"=="Y" ( goto config_menu ) else ( - echo ȡ༭ļ˵... + echo 取消编辑配置文件,按任意键返回主菜单... ) ) ) -@REM gitȡǰ֧ڱ +@REM git获取当前分支名并保存在变量里 for /f "delims=" %%b in ('git symbolic-ref --short HEAD 2^>nul') do ( set "BRANCH=%%b" ) -@REM ݲַ֧֧ͬʹòͬɫ -echo ֧: %BRANCH% +@REM 根据不同分支名给分支名字符串使用不同颜色 +echo 分支名: %BRANCH% if "!BRANCH!"=="main" ( set "BRANCH_COLOR=" ) else if "!BRANCH!"=="main-fix" ( @@ -266,151 +266,158 @@ if "!BRANCH!"=="main" ( @REM endlocal & set "BRANCH_COLOR=%BRANCH_COLOR%" :check_is_venv -echo ڼ⻷״̬... +echo 正在检查虚拟环境状态... if exist "%_root%\config\no_venv" ( - echo ⵽no_venv,⻷ + echo 检测到no_venv,跳过虚拟环境检查 goto menu ) -set "ENV_STATUS=δ" -set "ENV_TYPE=ϵͳ" - -:: +:: 环境检测 if defined VIRTUAL_ENV ( goto menu ) echo ===================================== -echo ⻷⾯棺 -echo ǰʹϵͳPython·!PYTHON_HOME! -echo δ⵽⻷ +echo 虚拟环境检测警告: +echo 当前使用系统Python路径:!PYTHON_HOME! +echo 未检测到激活的虚拟环境! :env_interaction echo ===================================== -echo ѡ -echo 1 - Venv⻷ -echo 2 - /Conda⻷ -echo 3 - ʱμ -echo 4 - ⻷ -choice /c 1234 /n /m "ѡ(1-4): " +echo 请选择操作: +echo 1 - 创建并激活Venv虚拟环境 +echo 2 - 创建/激活Conda虚拟环境 +echo 3 - 临时跳过本次检查 +echo 4 - 永久跳过虚拟环境检查 +set /p choice="请输入选项(1-4): " -if errorlevel 4 ( - echo Ҫ⻷ - set /p no_venv_confirm="(Y/N): ....." +if "!choice!" = "4" ( + echo 要永久跳过虚拟环境检查吗? + set /p no_venv_confirm="继续?(Y/N): ....." if /i "!no_venv_confirm!"=="Y" ( echo 1 > "%_root%\config\no_venv" - echo Ѵno_venvļ + echo 已创建no_venv文件 pause >nul goto menu ) else ( - echo ȡ⻷飬... + echo 取消跳过虚拟环境检查,按任意键返回... + pause >nul goto env_interaction ) ) -if errorlevel 3 ( - echo 棺ʹϵͳܵͻ +if "!choice!" = "3"( + echo 警告:使用系统环境可能导致依赖冲突! timeout /t 2 >nul goto menu ) -if errorlevel 2 goto handle_conda -if errorlevel 1 goto handle_venv +if "!choice!" = "2" goto handle_conda +if "!choice!" = "1" goto handle_venv + +echo 无效的输入,请输入1-4之间的数字 +timeout /t 2 >nul +goto env_interaction :handle_venv -echo ڳʼVenv... -echo ⻷venv +python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple +echo 正在初始化Venv环境... +python -m pip install virtualenv || ( + echo 安装环境失败,错误码:!errorlevel! + pause + goto env_interaction +) +echo 创建虚拟环境到:venv python -m virtualenv venv || ( - echo ʧܣ룺!errorlevel! + echo 环境创建失败,错误码:!errorlevel! pause goto env_interaction ) call venv\Scripts\activate.bat -echo ѼVenv -goto install_dependencies +echo 已激活Venv环境 +echo 要安装依赖吗? +set /p install_confirm="继续?(Y/N): " +if /i "!install_confirm!"=="Y" ( + goto update_dependencies +) +goto menu :handle_conda where conda >nul 2>&1 || ( - echo δ⵽condaǷװMiniconda - choice /c YN /n /m "ѡ(Y/N): " - if errorlevel 2 goto env_interaction - echo ڰװMiniconda... + echo 未检测到conda,是否安装Miniconda? + set /p conda_confirm="安装?(Y/N): " + if /i "!conda_confirm!"=="N" ( + goto env_interaction + ) + + echo 正在安装Miniconda... winget install --id Anaconda.Miniconda3 -e || ( - echo װʧܣ룺!errorlevel! + echo 安装失败,错误码:!errorlevel! pause goto env_interaction ) if exist "%UserProfile%\Miniconda3\Scripts\conda.exe" ( call "%UserProfile%\Miniconda3\Scripts\conda.exe" init cmd.exe - echo װɺű + echo 安装完成后请重启脚本 timeout /t 10 >nul exit /b ) ) :conda_menu -echo ѡConda -echo 1 - » -echo 2 - л -echo 3 - ϼ˵ -choice /c 123 /n /m "ѡ(1-3): " +echo 请选择Conda操作: +echo 1 - 创建新环境 +echo 2 - 激活已有环境 +echo 3 - 返回上级菜单 +set /p choice="请输入选项(1-3): " -if errorlevel 3 goto env_interaction -if errorlevel 2 goto activate_conda -if errorlevel 1 goto create_conda +if "!choice!"=="3" goto env_interaction +if "!choice!"=="2" goto activate_conda +if "!choice!"=="1" goto create_conda :create_conda -set /p "CONDA_ENV=»ƣ" +set /p "CONDA_ENV=请输入新环境名称:" if "!CONDA_ENV!"=="" ( - echo ƲΪգ + echo 环境名称不能为空! goto create_conda ) conda create -n !CONDA_ENV! python=3.13 -y || ( - echo ʧܣ룺!errorlevel! + echo 环境创建失败,错误码:!errorlevel! pause goto conda_menu ) goto activate_conda :activate_conda -set /p "CONDA_ENV=ҪĻƣ" -call conda activate !CONDA_ENV! || ( - echo ʧܣԭ - echo 1. - echo 2. conda쳣 - timeout /t >nul +set /p "CONDA_ENV=请输入要激活的环境名称:" +conda activate !CONDA_ENV! || ( + echo 激活失败,可能原因: + echo 1. 环境不存在 + echo 2. conda配置异常 pause goto conda_menu ) -echo ɹconda!CONDA_ENV! -timeout /t 2 >nul - -:install_dependencies -echo ǷҪװĿ -choice /c YN /n /m "ѡ(Y/N): " -if errorlevel 2 goto menu -echo ڰװ... -python -m pip install -r "%_root%\requirements.txt" || ( - echo װʧܣ룺!errorlevel! - pause +echo 成功激活conda环境:!CONDA_ENV! +echo 要安装依赖吗? +set /p install_confirm="继续?(Y/N): " +if /i "!install_confirm!"=="Y" ( + goto update_dependencies ) -goto menu - :menu @chcp 936 cls -echo Bot̨ v%VERSION% ǰ֧: %BRANCH_COLOR%%BRANCH% -echo ǰPython: !PYTHON_HOME! +echo 麦麦Bot控制台 v%VERSION% 当前分支: %BRANCH_COLOR%%BRANCH% +echo 当前Python环境: !PYTHON_HOME! echo ====================== -echo 1. ²Bot (Ĭ) -echo 2. ֱBot -echo 3. ý -echo 4. 湤 -echo 5. ˳ +echo 1. 更新并启动麦麦Bot (默认) +echo 2. 直接启动麦麦Bot +echo 3. 启动麦麦配置界面 +echo 4. 打开麦麦神奇工具箱 +echo 5. 退出 echo ====================== -set /p choice="ѡ (1-5)»سѡ: " +set /p choice="请输入选项数字 (1-5)并按下回车以选择: " if "!choice!"=="" set choice=1 @@ -420,7 +427,7 @@ if "!choice!"=="3" goto config_menu if "!choice!"=="4" goto tools_menu if "!choice!"=="5" exit /b -echo Ч룬1-5֮ +echo 无效的输入,请输入1-5之间的数字 timeout /t 2 >nul goto menu @@ -432,7 +439,7 @@ if not exist config/bot_config.toml ( ) if not exist .env.prod ( - copy /Y "template.env" ".env.prod" + copy /Y "template\.env.prod" ".env.prod" ) start python webui.py @@ -443,18 +450,18 @@ goto menu :tools_menu @chcp 936 cls -echo ʱй ǰ֧: %BRANCH_COLOR%%BRANCH% +echo 麦麦时尚工具箱 当前分支: %BRANCH_COLOR%%BRANCH% echo ====================== -echo 1. -echo 2. л֧ -echo 3. õǰ֧ -echo 4. ļ -echo 5. ѧϰµ֪ʶ -echo 6. ֪ʶļ -echo 7. ˵ +echo 1. 更新依赖 +echo 2. 切换分支 +echo 3. 重置当前分支 +echo 4. 更新配置文件 +echo 5. 学习新的知识库 +echo 6. 打开知识库文件夹 +echo 7. 返回主菜单 echo ====================== -set /p choice="ѡ: " +set /p choice="请输入选项数字: " if "!choice!"=="1" goto update_dependencies if "!choice!"=="2" goto switch_branch if "!choice!"=="3" goto reset_branch @@ -463,29 +470,29 @@ if "!choice!"=="5" goto learn_new_knowledge if "!choice!"=="6" goto open_knowledge_folder if "!choice!"=="7" goto menu -echo Ч룬1-6֮ +echo 无效的输入,请输入1-6之间的数字 timeout /t 2 >nul goto tools_menu :update_dependencies cls -echo ڸ... +echo 正在更新依赖... python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python.exe -m pip install -r requirements.txt -echo ɣع˵... +echo 依赖更新完成,按任意键返回工具箱菜单... pause goto tools_menu :switch_branch cls -echo л֧... -echo ǰ֧: %BRANCH% -@REM echo ÷֧: main, debug, stable-dev -echo 1. лmain -echo 2. лmain-fix -echo Ҫлķ֧: -set /p branch_name="֧: " +echo 正在切换分支... +echo 当前分支: %BRANCH% +@REM echo 可用分支: main, debug, stable-dev +echo 1. 切换到main +echo 2. 切换到main-fix +echo 请输入要切换到的分支: +set /p branch_name="分支名: " if "%branch_name%"=="" set branch_name=main if "%branch_name%"=="main" ( set "BRANCH_COLOR=" @@ -500,32 +507,32 @@ if "%branch_name%"=="main" ( set "BRANCH_COLOR=" set "branch_name=main-fix" ) else ( - echo Чķ֧, + echo 无效的分支名, 请重新输入 timeout /t 2 >nul goto switch_branch ) -echo л֧ %branch_name%... +echo 正在切换到分支 %branch_name%... git checkout %branch_name% -echo ֧лɣǰ֧: %BRANCH_COLOR%%branch_name% +echo 分支切换完成,当前分支: %BRANCH_COLOR%%branch_name% set "BRANCH=%branch_name%" -echo ع˵... +echo 按任意键返回工具箱菜单... pause >nul goto tools_menu :reset_branch cls -echo õǰ֧... -echo ǰ֧: !BRANCH! -echo ȷҪõǰ֧ -set /p confirm="(Y/N): " +echo 正在重置当前分支... +echo 当前分支: !BRANCH! +echo 确认要重置当前分支吗? +set /p confirm="继续?(Y/N): " if /i "!confirm!"=="Y" ( - echo õǰ֧... + echo 正在重置当前分支... git reset --hard !BRANCH! - echo ֧ɣع˵... + echo 分支重置完成,按任意键返回工具箱菜单... ) else ( - echo ȡõǰ֧ع˵... + echo 取消重置当前分支,按任意键返回工具箱菜单... ) pause >nul goto tools_menu @@ -533,44 +540,44 @@ goto tools_menu :update_config cls -echo ڸļ... -echo ȷѱҪݣ޸ĵǰļ -echo 밴Yȡ밴... -set /p confirm="(Y/N): " +echo 正在更新配置文件... +echo 请确保已备份重要数据,继续将修改当前配置文件。 +echo 继续请按Y,取消请按任意键... +set /p confirm="继续?(Y/N): " if /i "!confirm!"=="Y" ( - echo ڸļ... + echo 正在更新配置文件... python.exe config\auto_update.py - echo ļɣع˵... + echo 配置文件更新完成,按任意键返回工具箱菜单... ) else ( - echo ȡļع˵... + echo 取消更新配置文件,按任意键返回工具箱菜单... ) pause >nul goto tools_menu :learn_new_knowledge cls -echo ѧϰµ֪ʶ... -echo ȷѱҪݣ޸ĵǰ֪ʶ⡣ -echo 밴Yȡ밴... -set /p confirm="(Y/N): " +echo 正在学习新的知识库... +echo 请确保已备份重要数据,继续将修改当前知识库。 +echo 继续请按Y,取消请按任意键... +set /p confirm="继续?(Y/N): " if /i "!confirm!"=="Y" ( - echo ѧϰµ֪ʶ... + echo 正在学习新的知识库... python.exe src\plugins\zhishi\knowledge_library.py - echo ѧϰɣع˵... + echo 学习完成,按任意键返回工具箱菜单... ) else ( - echo ȡѧϰµ֪ʶ⣬ع˵... + echo 取消学习新的知识库,按任意键返回工具箱菜单... ) pause >nul goto tools_menu :open_knowledge_folder cls -echo ڴ֪ʶļ... +echo 正在打开知识库文件夹... if exist data\raw_info ( start explorer data\raw_info ) else ( - echo ֪ʶļвڣ - echo ڴļ... + echo 知识库文件夹不存在! + echo 正在创建文件夹... mkdir data\raw_info timeout /t 2 >nul ) @@ -583,18 +590,18 @@ cls git pull > temp.log 2>&1 findstr /C:"detected dubious ownership" temp.log >nul if %errorlevel% equ 0 ( - echo ⵽ֿȨ⣬Զ޸... + echo 检测到仓库权限问题,正在自动修复... git config --global --add safe.directory "%cd%" - echo ⣬git pull... + echo 已添加例外,正在重试git pull... del temp.log goto retry_git_pull ) del temp.log -echo ڸ... +echo 正在更新依赖... python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip install -r requirements.txt && cls -echo ǰ: +echo 当前代理设置: echo HTTP_PROXY=%HTTP_PROXY% echo HTTPS_PROXY=%HTTPS_PROXY% @@ -606,17 +613,17 @@ set no_proxy=0.0.0.0/32 REM chcp 65001 python bot.py echo. -echo BotֹͣУ˵... +echo Bot已停止运行,按任意键返回主菜单... pause >nul goto menu :start_bot cls -echo ڸ... +echo 正在更新依赖... python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple python -m pip install -r requirements.txt && cls -echo ǰ: +echo 当前代理设置: echo HTTP_PROXY=%HTTP_PROXY% echo HTTPS_PROXY=%HTTPS_PROXY% @@ -628,7 +635,7 @@ set no_proxy=0.0.0.0/32 REM chcp 65001 python bot.py echo. -echo BotֹͣУ˵... +echo Bot已停止运行,按任意键返回主菜单... pause >nul goto menu From 57197db76a39838fb18291f255e663dffe40e846 Mon Sep 17 00:00:00 2001 From: Tianmoy <95174435+Tianmoy@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:30:08 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9conda?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=20=E5=88=A0=E9=99=A4=E6=97=A0=E6=95=88?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MaiLauncher.bat | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/MaiLauncher.bat b/MaiLauncher.bat index 3e1c6065c..7d33946b3 100644 --- a/MaiLauncher.bat +++ b/MaiLauncher.bat @@ -200,7 +200,7 @@ if !errorlevel! neq 0 ( ) ) ) else ( - call :RED_WARNING "警告:MongoDB服务未运行,将导致应用程序无法访问数据库!" + echo "警告:MongoDB服务未运行,将导致MaiMBot无法访问数据库!" ) ) else ( echo MongoDB服务已运行 @@ -345,24 +345,11 @@ goto menu :handle_conda where conda >nul 2>&1 || ( - echo 未检测到conda,是否安装Miniconda? - set /p conda_confirm="安装?(Y/N): " - if /i "!conda_confirm!"=="N" ( - goto env_interaction - ) - - echo 正在安装Miniconda... - winget install --id Anaconda.Miniconda3 -e || ( - echo 安装失败,错误码:!errorlevel! - pause - goto env_interaction - ) - if exist "%UserProfile%\Miniconda3\Scripts\conda.exe" ( - call "%UserProfile%\Miniconda3\Scripts\conda.exe" init cmd.exe - echo 安装完成后请重启脚本 - timeout /t 10 >nul - exit /b - ) + echo 未检测到conda,可能原因: + echo 1. 未安装Miniconda + echo 2. conda配置异常 + timeout /t 10 >nul + goto env_interaction ) :conda_menu