@echo off
chcp 65001 >nul
title Installation RustDesk Quick Support
color 0A

echo.
echo ========================================================
echo    RustDesk Quick Support - Support ODI
echo ========================================================
echo.
echo Recherche de la derniere version disponible...
echo.

REM Recuperer la derniere version depuis l'API GitHub
powershell -Command "& {$release = Invoke-RestMethod -Uri 'https://api.github.com/repos/rustdesk/rustdesk/releases/latest'; $version = $release.tag_name; $asset = $release.assets | Where-Object { $_.name -like '*x86_64.exe' -and $_.name -notlike '*sciter*' } | Select-Object -First 1; Write-Output ($version + '|' + $asset.name + '|' + $asset.browser_download_url)}" > "%TEMP%\rustdesk_info.txt"

REM Lire les informations
set /p RUSTDESK_INFO=<"%TEMP%\rustdesk_info.txt"
for /f "tokens=1,2,3 delims=|" %%a in ("%RUSTDESK_INFO%") do (
    set VERSION=%%a
    set FILENAME=%%b
    set DOWNLOAD_URL=%%c
)

echo Version detectee : %VERSION%
echo Fichier : %FILENAME%
echo.

REM Dossier Documents pour la copie permanente
set "DOCS_DIR=%USERPROFILE%\Documents"
set "RUSTDESK_FILE=%DOCS_DIR%\%FILENAME%"

REM Verifier si RustDesk existe deja dans Documents
if exist "%RUSTDESK_FILE%" (
    echo RustDesk %VERSION% trouve dans vos Documents.
    echo Utilisation de la copie existante...
    echo.
    goto :configure
)

REM Verifier si une ancienne version existe
for %%F in ("%DOCS_DIR%\rustdesk-*.exe") do (
    echo Ancienne version trouvee : %%~nxF
    echo Telechargement de la nouvelle version %VERSION%...
    echo.
)

echo Installation en cours, veuillez patienter...
echo.

REM Creer le dossier temporaire
set "TEMP_DIR=%TEMP%\RustDeskSetup"
if not exist "%TEMP_DIR%" mkdir "%TEMP_DIR%"

REM Telecharger RustDesk Quick Support
echo [1/4] Telechargement de RustDesk %VERSION%...
curl -L -o "%TEMP_DIR%\%FILENAME%" "%DOWNLOAD_URL%" 2>nul

if not exist "%TEMP_DIR%\%FILENAME%" (
    echo.
    echo Erreur de telechargement. Verification de votre connexion internet.
    pause
    exit /b 1
)

REM Copier RustDesk dans Documents avec le nom d'origine
echo [2/4] Sauvegarde de RustDesk dans vos Documents...
copy "%TEMP_DIR%\%FILENAME%" "%RUSTDESK_FILE%" >nul

:configure

REM Creer le dossier de configuration
set "CONFIG_DIR=%APPDATA%\RustDesk\config"
if not exist "%CONFIG_DIR%" mkdir "%CONFIG_DIR%"

REM Creer le fichier de configuration
echo [3/4] Configuration du serveur ODI...
(
echo rendezvous_server = 'rustdesk.odi.i234.me:21116'
echo nat_type = 1
echo serial = 0
echo.
echo [options]
echo relay-server = 'rustdesk.odi.i234.me:21117'
echo api-server = 'http://rustdesk.odi.i234.me:21114'
echo key = 'J2QiAk3mDJaO7kduQsse00+2gQI8ytxiI57RRuYdFZM='
echo custom-rendezvous-server = 'rustdesk.odi.i234.me:21116'
) > "%CONFIG_DIR%\RustDesk2.toml"

REM Creer le raccourci sur le bureau
echo [4/4] Creation du raccourci sur le bureau...
set "DESKTOP=%USERPROFILE%\Desktop"
set "SHORTCUT=%DESKTOP%\RustDesk - Assistance a distance ODI.lnk"

REM Utiliser PowerShell pour creer le raccourci
powershell -Command "& {$WS = New-Object -ComObject WScript.Shell; $SC = $WS.CreateShortcut('%SHORTCUT%'); $SC.TargetPath = '%RUSTDESK_FILE%'; $SC.WorkingDirectory = '%DOCS_DIR%'; $SC.Description = 'Assistance a distance ODI'; $SC.Save()}"

REM Lancer RustDesk
start "" "%RUSTDESK_FILE%"

echo.
echo OK - Installation terminee !
echo.
echo Version installee : %VERSION%
echo RustDesk va s'ouvrir dans quelques secondes.
echo Communiquez l'ID et le mot de passe affiches a ODI.
echo.
echo Un raccourci a ete cree sur votre bureau :
echo "RustDesk - Assistance a distance ODI"
echo.
echo Fichier sauvegarde : %RUSTDESK_FILE%
echo.
echo Vous pouvez fermer cette fenetre.
REM timeout /t 5 >nul
REM exit