@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title NodeLoc Cookie Tool

echo ================================================
echo    NodeLoc 登录 Cookie 获取工具
echo ================================================
echo.

rem ===== 1. 定位 Node.js =====
set "NODE_EXE="

if exist "%~dp0nodejs\node.exe" set "NODE_EXE=%~dp0nodejs\node.exe"

if not defined NODE_EXE (
    for /f "delims=" %%i in ('where node 2^>nul') do (
        if not defined NODE_EXE set "NODE_EXE=%%i"
    )
)

if defined NODE_EXE (
    echo [OK] 检测到 Node.js
    goto :ensure_script
)

rem ===== 2. 没有 Node，自动下载便携版 =====
echo [提示] 未检测到 Node.js，正在自动下载便携版（约 34 MB，仅首次需要）...
echo.

set "NODE_VER=22.22.2"
set "NODE_DIR=node-v%NODE_VER%-win-x64"
set "NODE_ZIP=%~dp0node-v%NODE_VER%-win-x64.zip"

echo 正在下载 Node.js v%NODE_VER% ...
curl -fL --connect-timeout 30 --retry 3 -o "%NODE_ZIP%" "https://npmmirror.com/mirrors/node/v%NODE_VER%/node-v%NODE_VER%-win-x64.zip"
if not exist "%NODE_ZIP%" (
    echo [重试] 换用官方源下载...
    curl -fL --connect-timeout 30 --retry 3 -o "%NODE_ZIP%" "https://nodejs.org/dist/v%NODE_VER%/node-v%NODE_VER%-win-x64.zip"
)
if not exist "%NODE_ZIP%" goto :dl_fail

echo 正在解压...
tar -xf "%NODE_ZIP%" -C "%~dp0"
if errorlevel 1 goto :extract_fail

if exist "%~dp0%NODE_DIR%" (
    if exist "%~dp0nodejs" rmdir /s /q "%~dp0nodejs"
    ren "%~dp0%NODE_DIR%" "nodejs"
)
if not exist "%~dp0nodejs\node.exe" goto :extract_fail

del "%NODE_ZIP%" >nul 2>nul
set "NODE_EXE=%~dp0nodejs\node.exe"
echo [OK] Node.js 便携版就绪
echo.

:ensure_script
rem ===== 3. 确保取 Cookie 脚本存在 =====
if not exist "%~dp0get-cookie.js" (
    echo [提示] 正在下载取 Cookie 脚本...
    curl -fL --connect-timeout 20 -o "%~dp0get-cookie.js" "https://user.nodeloc.nl/docs/get-cookie.js"
)
if not exist "%~dp0get-cookie.js" goto :script_fail

rem ===== 4. 运行 =====
echo 正在启动...
echo.
set "NO_PAUSE=1"
"!NODE_EXE!" "%~dp0get-cookie.js"
set "EXIT_CODE=%errorlevel%"

echo.
echo ================================================
echo   程序结束
echo ================================================
pause
exit /b %EXIT_CODE%

:dl_fail
echo.
echo [错误] Node.js 下载失败，请检查网络后重试。
echo 也可手动安装：https://nodejs.org
echo.
pause
exit /b 1

:extract_fail
echo.
echo [错误] 解压失败，请手动安装 Node.js 后重试。
echo.
pause
exit /b 1

:script_fail
echo.
echo [错误] 脚本下载失败，请检查网络后重试。
echo.
pause
exit /b 1
