@echo off
chcp 65001 >/dev/null
title 抖音评论采集客户端 - 安装启动
echo ========================================
echo   抖音评论采集客户端
echo   自动安装 + 启动
echo ========================================
echo.

cd /d "%~dp0"

:: ========== 检查 Node.js ==========
where node >/dev/null 2>/dev/null
if %errorlevel% equ 0 (
    for /f "tokens=*" %%i in ('node -v') do echo [OK] Node.js %%i 已安装
    goto :start
)

echo [!] 未检测到 Node.js，开始自动安装...
echo.

:: 检查本目录是否自带 node.exe
if exist "%~dp0node.exe" (
    echo [OK] 发现本地 node.exe，跳过安装
    goto :start
)

:: 检查是否已下载过安装包
if not exist "%~dp0node-installer.msi" (
    echo [1/2] 正在下载 Node.js v22.22.1 ...
    echo.
    curl -sL "https://nodejs.org/dist/v22.22.1/node-v22.22.1-x64.msi" -o "%~dp0node-installer.msi"
    if not exist "%~dp0node-installer.msi" (
        echo.
        echo [错误] 下载失败，请检查网络连接
        echo.
        echo 手动下载地址：
        echo   https://nodejs.org/dist/v22.22.1/node-v22.22.1-x64.msi
        echo.
        pause
        exit /b 1
    )
)

echo [2/2] 正在安装 Node.js（请按提示完成安装）...
echo.
msiexec /i "%~dp0node-installer.msi" /passive ADDLOCAL=ALL

if %errorlevel% neq 0 (
    echo.
    echo [错误] 自动安装失败，尝试手动安装...
    start "" "%~dp0node-installer.msi"
    echo.
    echo 请完成安装后，重新双击本脚本。
    pause
    exit /b 1
)

echo.
echo [OK] Node.js 安装完成

:: 刷新 PATH（不需要重启终端）
set "PATH=%ProgramFiles%\nodejs;%PATH%"

:: 再次验证
where node >/dev/null 2>/dev/null
if %errorlevel% neq 0 (
    echo.
    echo [!] 安装完成但未生效，请关闭当前窗口，重新双击本脚本。
    pause
    exit /b 1
)

:start
echo.
echo ========================================
echo   正在启动客户端...
echo ========================================
echo.

:: 如果有本地 node.exe 用本地的
if exist "%~dp0node.exe" (
    "%~dp0node.exe" "%~dp0app-bundle.js"
) else (
    node "%~dp0app-bundle.js"
)

echo.
echo [%date% %time%] 客户端已退出
pause
