@echo off
chcp 65001 >nul 2>&1
title Установка техподдержки Энергия

REM === 1. Запрос прав администратора ===
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Запрашиваем права администратора...
    powershell -Command "Start-Process '%~f0' -Verb RunAs"
    exit /b
)

REM === 2. Создание временных папок и файлов ===
set "TEMP_DIR=%TEMP%\rustdesk_install_%RANDOM%"
mkdir "%TEMP_DIR%" 2>nul
set "INSTALLER=%TEMP_DIR%\rustdesk.exe"
set "CONFIG_FILE=%TEMP_DIR%\rustdesk.toml"
set "CONFIG_STRING=0nI9gjZ59GOCFHZpRUcZtibJtET0IFellkYWRUQKBlRNZXRvdUSOhFSJVTOyImI6ISeltmIsISdy5iN1k3ZyVmbl5yazVGZv8iOzBHd0hmI6ISawFmIsISdy5iN1k3ZyVmbl5yazVGZiojI5FGblJnIsISdy5iN1k3ZyVmbl5yazVGZiojI0N3boJye"

REM === 3. Определение архитектуры и URL ===
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
    set "URL=https://desk.energy56.ru/rustdesk-1.4.6-x86_64.exe"
) else (
    set "URL=https://desk.energy56.ru/rustdesk-1.4.6-x86-sciter.exe"
)

echo [1/5] Скачивание установщика и конфигурации...
powershell -Command "Invoke-WebRequest -Uri '%URL%' -OutFile '%INSTALLER%' -UseBasicParsing"
echo %CONFIG_STRING% > "%CONFIG_FILE%"

if not exist "%INSTALLER%" (
    echo Ошибка: не удалось скачать установщик
    timeout /t 3 /nobreak >nul
    exit /b
)

echo [2/5] Установка RustDesk (тихая)...
"%INSTALLER%" --silent-install
timeout /t 5 /nobreak >nul

REM === 4. Остановка процессов и службы ===
taskkill /F /IM rustdesk.exe >nul 2>&1
net stop RustDesk >nul 2>&1
timeout /t 2 /nobreak >nul

REM === 5. Определение пути к исполняемому файлу ===
set "EXE_PATH=C:\Program Files\RustDesk\rustdesk.exe"
if not exist "%EXE_PATH%" set "EXE_PATH=C:\Program Files (x86)\RustDesk\rustdesk.exe"
if not exist "%EXE_PATH%" (
    echo Не найден rustdesk.exe после установки
    exit /b
)

echo [3/5] Импорт конфигурации и установка пароля...
"%EXE_PATH%" --import-config "%CONFIG_FILE%"
timeout /t 2 /nobreak >nul
"%EXE_PATH%" --password "Energy2026"
timeout /t 2 /nobreak >nul

REM === 6. Копирование настроек для службы и всех пользователей ===
set "SOURCE_CONFIG=%APPDATA%\RustDesk\config"
if exist "%SOURCE_CONFIG%" (
    mkdir "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config" 2>nul
    xcopy /Y /E "%SOURCE_CONFIG%" "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\" >nul

    for /d %%U in ("C:\Users\*") do (
        if exist "%%U\AppData\Roaming" (
            mkdir "%%U\AppData\Roaming\RustDesk\config" 2>nul
            xcopy /Y /E "%SOURCE_CONFIG%" "%%U\AppData\Roaming\RustDesk\config\" >nul
        )
    )
)

REM === 7. Перезапуск службы и запуск интерфейса ===
net start RustDesk >nul 2>&1
start "" "%EXE_PATH%"
timeout /t 3 /nobreak >nul

REM === 8. Получение ID и отправка в Telegram (без curl, через PowerShell) ===
echo [4/5] Получение ID...
for /f "delims=" %%i in ('"%EXE_PATH%" --get-id') do set "RUSTDESK_ID=%%i"

set "VPS_URL=http://193.39.208.118:56056/telegram_proxy"
set "CHAT_ID=238501210"
set "MSG=✅ Установлен RustDesk! ПК: %COMPUTERNAME%. ID: %RUSTDESK_ID%"

echo [5/5] Отправка отчета...
powershell -Command "Invoke-WebRequest -Uri '%VPS_URL%' -Method POST -Body @{chat_id='%CHAT_ID%'; text='%MSG%'} -UseBasicParsing" >nul 2>&1

REM === 9. Очистка и завершение (автоматическое закрытие) ===
rmdir /S /Q "%TEMP_DIR%" 2>nul

REM Не используем pause или timeout с ожиданием клавиши — окно закроется само
exit