mirror of
https://github.com/daimyomizukagebay61/SteamPanel.git
synced 2026-07-25 11:44:28 +00:00
84 lines
2.7 KiB
Batchfile
84 lines
2.7 KiB
Batchfile
@echo off
|
|
cd /d "%~dp0"
|
|
title SteamPanel
|
|
|
|
rem === Check Python ===
|
|
python --version >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo Python not found. Install Python 3.10+ from https://python.org
|
|
goto :keepopen
|
|
)
|
|
|
|
rem === Virtual environment ===
|
|
rem If venv python.exe can't run, it means venv is stale (project was moved). Recreate it.
|
|
if exist "venv\Scripts\python.exe" (
|
|
venv\Scripts\python.exe --version >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo Stale venv detected. Recreating...
|
|
rmdir /s /q venv
|
|
)
|
|
)
|
|
|
|
if not exist "venv\Scripts\activate.bat" (
|
|
echo Creating virtual environment...
|
|
python -m venv venv
|
|
if errorlevel 1 goto :err_venv
|
|
echo Virtual environment created.
|
|
)
|
|
|
|
rem === Dependencies ===
|
|
rem Install only when requirements.txt has changed (hash stored in data\.req_hash)
|
|
venv\Scripts\python.exe -c "import hashlib,pathlib; r=pathlib.Path('requirements.txt'); h=hashlib.md5(r.read_bytes()).hexdigest(); hf=pathlib.Path('data/.req_hash'); ok=hf.exists() and hf.read_text().strip()==h; print('OK' if ok else 'CHANGED')" > %TEMP%\req_check.txt 2>nul
|
|
set /p REQ_STATUS=<%TEMP%\req_check.txt
|
|
if /i "%REQ_STATUS%"=="CHANGED" (
|
|
echo Installing dependencies...
|
|
venv\Scripts\pip.exe install -r requirements.txt -q --upgrade-strategy only-if-needed
|
|
if errorlevel 1 goto :err_deps
|
|
echo Dependencies installed.
|
|
rem Save new hash
|
|
venv\Scripts\python.exe -c "import hashlib,pathlib; r=pathlib.Path('requirements.txt'); h=hashlib.md5(r.read_bytes()).hexdigest(); pathlib.Path('data').mkdir(exist_ok=True); pathlib.Path('data/.req_hash').write_text(h)"
|
|
rem === Patch nodriver/cdp/network.py encoding bug (non-UTF-8 byte in comment) ===
|
|
venv\Scripts\python.exe -c "import pathlib; p=pathlib.Path('venv/Lib/site-packages/nodriver/cdp/network.py'); d=p.read_bytes() if p.exists() else b''; p.write_bytes(d.replace(b'\xb1',b'+-')) if p.exists() and b'\xb1' in d else None"
|
|
) else (
|
|
echo Dependencies OK.
|
|
)
|
|
|
|
:launch
|
|
cls
|
|
|
|
rem === Check built frontend ===
|
|
if not exist "app\static\assets\" (
|
|
echo.
|
|
echo [!] Frontend is not built. Static assets not found in app\static\assets\
|
|
echo The browser will show a blank white page without them.
|
|
echo.
|
|
echo To fix: install Node.js from https://nodejs.org, then run:
|
|
echo cd frontend
|
|
echo npm install
|
|
echo npm run build
|
|
echo.
|
|
pause
|
|
goto :keepopen
|
|
)
|
|
|
|
echo.
|
|
|
|
venv\Scripts\python.exe main.py
|
|
|
|
echo.
|
|
echo SteamPanel stopped.
|
|
goto :keepopen
|
|
|
|
:err_venv
|
|
echo Failed to create virtual environment.
|
|
echo Make sure Python 3.14+ is installed: https://python.org
|
|
goto :keepopen
|
|
|
|
:err_deps
|
|
echo Dependency installation failed. See errors above.
|
|
goto :keepopen
|
|
|
|
:keepopen
|
|
echo.
|
|
pause
|