tmwgsicp-wechat-download-api/start.bat

218 lines
6.2 KiB
Batchfile

@echo off
chcp 65001 > nul
:: 强制在持久cmd窗口中运行
if "%1"=="" (
cmd /k "%~f0" run
exit /b
)
title WeChat Article API Service
echo.
echo ========================================
echo WeChat Article API Service v1.0.0
echo FastAPI Edition - One-Click Startup
echo ========================================
echo.
:: Configuration variables
set PROJECT_NAME=wechat-article-api
set SERVICE_PORT=5000
set PYTHON_VERSION=3.8
set VENV_NAME=venv
:: Step 1: Check Python environment
echo [94m[1/6] Checking Python environment...[0m
python --version >nul 2>&1
if errorlevel 1 (
echo [91mX Python is not installed or not in PATH[0m
echo Please install Python %PYTHON_VERSION%+ and add to PATH
echo Download from: https://www.python.org/downloads/
pause
exit /b 1
)
for /f "tokens=2" %%i in ('python --version') do set INSTALLED_PYTHON=%%i
echo [92m+ Python version: %INSTALLED_PYTHON%[0m
:: Check pip
pip --version >nul 2>&1
if errorlevel 1 (
echo [91mX pip is not installed[0m
echo Please install pip
pause
exit /b 1
)
echo [92m+ pip is installed[0m
:: Step 2: Create virtual environment
echo.
echo [94m[2/6] Creating Python virtual environment...[0m
if exist "%VENV_NAME%" (
echo [93m! Virtual environment already exists, skipping creation[0m
) else (
python -m venv %VENV_NAME%
if errorlevel 1 (
echo [91mX Virtual environment creation failed[0m
pause
exit /b 1
)
echo [92m+ Virtual environment created successfully[0m
)
:: Activate virtual environment
call %VENV_NAME%\Scripts\activate.bat
if errorlevel 1 (
echo [91mX Virtual environment activation failed[0m
pause
exit /b 1
)
echo [92m+ Virtual environment activated[0m
:: Step 3: Install dependencies
echo.
echo [94m[3/6] Installing Python dependencies...[0m
if exist "requirements.txt" (
pip install -r requirements.txt
if errorlevel 1 (
echo [91mX Dependencies installation failed[0m
pause
exit /b 1
)
echo [92m+ Dependencies installed successfully[0m
) else (
echo [93m! requirements.txt not found, installing core dependencies manually[0m
pip install fastapi uvicorn httpx python-dotenv
if errorlevel 1 (
echo [91mX Core dependencies installation failed[0m
pause
exit /b 1
)
echo [92m+ Core dependencies installed successfully[0m
)
:: Step 4: Check .env configuration
echo.
echo [94m[4/6] Checking configuration file...[0m
if not exist ".env" (
echo [93m! .env file not found, creating from template...[0m
if exist "env.example" (
copy env.example .env >nul
echo [92m+ .env file created from env.example[0m
) else (
echo [93m! env.example not found, creating basic .env file...[0m
(
echo # WeChat Article API Configuration
echo # Auto-generated by start.bat
echo.
echo # Authentication Info ^(Auto-filled after login^)
echo WECHAT_TOKEN=
echo WECHAT_COOKIE=
echo WECHAT_FAKEID=
echo WECHAT_NICKNAME=
echo WECHAT_EXPIRE_TIME=
echo.
echo # Service Configuration
echo PORT=5000
echo HOST=0.0.0.0
echo DEBUG=false
echo.
echo # Rate Limiting
echo RATE_LIMIT_GLOBAL=10
echo RATE_LIMIT_PER_IP=5
echo RATE_LIMIT_ARTICLE_INTERVAL=3
) > .env
echo [92m+ Basic .env file created[0m
)
echo.
echo [93m========================================[0m
echo [93m First-time Setup[0m
echo [93m========================================[0m
echo.
echo [92mNext Steps:[0m
echo 1. Service will start in a moment
echo 2. Visit: http://localhost:5000/login.html
echo 3. Scan QR code with WeChat
echo 4. Login credentials will be saved automatically
echo.
echo [93m========================================[0m
echo.
) else (
echo [92m+ .env configuration file found[0m
:: Check required configuration items
findstr /C:"WECHAT_TOKEN=" .env | findstr /V "WECHAT_TOKEN=$" | findstr /V "WECHAT_TOKEN= *$" >nul 2>nul
if errorlevel 1 (
echo [93m! WeChat credentials not configured yet[0m
echo [93m Please visit http://localhost:5000/login.html to login[0m
) else (
echo [92m+ WeChat login credentials configured[0m
)
)
echo.
:: Step 5: Detect system configuration
echo [94m[5/6] Detecting system configuration...[0m
:: Get CPU cores
for /f "tokens=2 delims==" %%a in ('wmic cpu get NumberOfLogicalProcessors /value ^| find "="') do set CPU_CORES=%%a
if not defined CPU_CORES set CPU_CORES=4
:: Get memory size (GB)
for /f "tokens=2 delims==" %%a in ('wmic computersystem get TotalPhysicalMemory /value ^| find "="') do set MEMORY_BYTES=%%a
if defined MEMORY_BYTES (
set /a MEMORY_GB=MEMORY_BYTES/1073741824
) else (
set MEMORY_GB=8
)
echo [92m+ System configuration:[0m
echo CPU cores: %CPU_CORES%
echo Memory: %MEMORY_GB%GB
echo.
:: Step 6: Start service
echo [94m[6/6] Starting FastAPI service...[0m
echo.
echo ========================================
echo [92mService Startup Information[0m
echo ========================================
echo.
echo [94mAccess URLs:[0m
echo - Admin Panel: http://localhost:%SERVICE_PORT%/admin.html
echo - Login Page: http://localhost:%SERVICE_PORT%/login.html
echo - API Docs: http://localhost:%SERVICE_PORT%/api/docs
echo - ReDoc: http://localhost:%SERVICE_PORT%/api/redoc
echo - Health: http://localhost:%SERVICE_PORT%/api/health
echo.
echo [94mCore Features:[0m
echo + Article Retrieval - POST /api/article
echo + Article List - GET /api/public/articles
echo + Article Search - GET /api/public/articles/search
echo + Account Search - GET /api/public/searchbiz
echo + Image Proxy - GET /api/image
echo + Auto Rate Limiting
echo + Webhook Notifications
echo.
echo [94mSystem Info:[0m
echo CPU: %CPU_CORES% cores
echo Memory: %MEMORY_GB%GB
echo.
echo ========================================
echo.
echo [93mFirst time? Please visit login page to scan QR code:[0m
echo =^> http://localhost:%SERVICE_PORT%/login.html
echo.
echo [93mTip: Press Ctrl+C to stop service[0m
echo.
:: Start service
python app.py
echo.
echo [92mService stopped[0m
pause