@echo off
chcp 65001 >nul 2>&1
setlocal enabledelayedexpansion

set START_TIME=%time%
set REPO_URL=https://github.com/N445/star-citizen-fr/archive/refs/heads/
set LOCALIZATION_PATH=data\Localization
set FILE_PATH=user.cfg
set BRANCH=

cls
echo.
echo ================================================
echo   Telechargement de la traduction Star Citizen
echo ================================================
echo.

for %%d in ("%cd%") do set CURRENT_DIR=%%~nxd
if "%CURRENT_DIR%"=="LIVE" (
    set BRANCH=LIVE
) else if "%CURRENT_DIR%"=="PTU" (
    set BRANCH=PTU
) else (
    echo [ERREUR] Ce script doit etre execute depuis le dossier LIVE ou PTU.
    echo.
    echo Emplacement actuel : %cd%
    echo Veuillez placer ce script dans votre dossier LIVE ou PTU de Star Citizen.
    echo.
    pause
    exit /b 1
)

echo [INFO] Branche detectee : %BRANCH%
echo [INFO] Emplacement : %cd%
echo.

echo Quelle version de la traduction voulez-vous installer ?
echo   1. Originale
echo   2. Alternative
echo.
choice /c 12 /n /m "Votre choix (1 ou 2) : "
if errorlevel 2 goto :choice_alternative
goto :choice_originale

:choice_alternative
set SOURCE_FOLDER=french_(alternative)
set LANG_FOLDER=spanish_(spain)
set LANG_LABEL=Alternative
goto :choice_done

:choice_originale
set SOURCE_FOLDER=french_(france)
set LANG_FOLDER=french_(france)
set LANG_LABEL=Originale

:choice_done
set SOURCE_PATH=%LOCALIZATION_PATH%\%SOURCE_FOLDER%
set FOLDER_PATH=%LOCALIZATION_PATH%\%LANG_FOLDER%

echo.
echo [INFO] Version choisie : %LANG_LABEL% (%LANG_FOLDER%)
echo.

set ZIP_URL=%REPO_URL%%BRANCH%.zip
set ZIP_FILE=repo_%BRANCH%.zip

echo [ETAPE 1/4] Telechargement de l'archive...
echo URL : %ZIP_URL%
echo.

where curl >nul 2>&1
if %ERRORLEVEL% equ 0 (
    curl -L -o %ZIP_FILE% %ZIP_URL%
    set DOWNLOAD_METHOD=curl
) else (
    echo [INFO] Curl non disponible, utilisation de bitsadmin...
    bitsadmin /transfer "DownloadRepo" /download /priority normal %ZIP_URL% "%cd%\%ZIP_FILE%"
    set DOWNLOAD_METHOD=bitsadmin
)

if not exist "%ZIP_FILE%" (
    echo.
    echo [ERREUR] Impossible de telecharger l'archive.
    echo.
    echo Causes possibles :
    echo - Pas de connexion internet
    echo - La branche %BRANCH% n'existe pas sur GitHub
    echo - Le depot n'est pas accessible
    echo.
    echo Methode de telechargement utilisee : !DOWNLOAD_METHOD!
    echo.
    pause
    exit /b 1
)

for %%A in ("%ZIP_FILE%") do set ZIP_SIZE=%%~zA
set /a ZIP_SIZE_MB=!ZIP_SIZE! / 1048576
echo [OK] Archive telechargee : !ZIP_SIZE_MB! MB
echo.

echo [ETAPE 2/4] Extraction de l'archive...

powershell -command "Expand-Archive -Path '%ZIP_FILE%' -DestinationPath 'temp_extract' -Force" 2>nul
if %ERRORLEVEL% neq 0 (
    echo.
    echo [ERREUR] Echec de l'extraction de l'archive.
    echo.
    echo Causes possibles :
    echo - Archive corrompue
    echo - Espace disque insuffisant
    echo - Permissions insuffisantes
    echo.
    del %ZIP_FILE% 2>nul
    pause
    exit /b 1
)

echo [OK] Archive extraite
echo.

echo [ETAPE 3/4] Installation des fichiers...

if not exist "temp_extract\star-citizen-fr-%BRANCH%\%SOURCE_PATH%" (
    echo.
    echo [ERREUR] Le dossier "%SOURCE_PATH%" n'a pas ete trouve dans l'archive.
    echo.
    echo Cette version de traduction n'est peut-etre pas encore disponible sur la branche %BRANCH%.
    echo.
    del %ZIP_FILE% 2>nul
    rmdir /s /q temp_extract 2>nul
    pause
    exit /b 1
)

echo [INFO] Installation du dossier "%FOLDER_PATH%"...
xcopy /E /I /Y "temp_extract\star-citizen-fr-%BRANCH%\%SOURCE_PATH%" "%FOLDER_PATH%" >nul
if %ERRORLEVEL% equ 0 (
    echo [OK] Dossier "%FOLDER_PATH%" installe
) else (
    echo [ERREUR] Echec de la copie du dossier "%FOLDER_PATH%"
)

echo [INFO] Configuration de "%FILE_PATH%" (g_language = %LANG_FOLDER%)...
powershell -NoProfile -Command "$p='%FILE_PATH%'; $newLine='g_language = %LANG_FOLDER%'; if (Test-Path $p) { $lines = @(Get-Content $p); $found = $false; $out = foreach ($l in $lines) { if ($l.TrimStart().StartsWith('g_language')) { $found = $true; $newLine } else { $l } }; if (-not $found) { $out += $newLine }; Set-Content -Path $p -Value $out } else { Set-Content -Path $p -Value $newLine }"
if %ERRORLEVEL% equ 0 (
    echo [OK] Fichier "%FILE_PATH%" configure
) else (
    echo [ERREUR] Echec de la configuration du fichier "%FILE_PATH%"
)

echo.
echo [ETAPE 4/4] Nettoyage...

del %ZIP_FILE% 2>nul
rmdir /s /q temp_extract 2>nul

echo [OK] Fichiers temporaires supprimes
echo.

set END_TIME=%time%
echo ================================================
echo   Installation terminee avec succes !
echo ================================================
echo.
echo Branche : %BRANCH%
echo Version : %LANG_LABEL% (%LANG_FOLDER%)
echo Elements installes :
echo   - Dossier "%FOLDER_PATH%" (fichiers de traduction)
echo   - Fichier "user.cfg" (configuration)
echo.
echo Heure de debut : %START_TIME%
echo Heure de fin   : %END_TIME%
echo.
echo Vous pouvez maintenant lancer Star Citizen.
echo La traduction sera automatiquement appliquee.
echo.
pause