@echo off
:: ============================================================
:: AUTOELEVAÇÃO PARA EXECUTAR COMO ADMINISTRADOR
:: ============================================================
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (
    echo Solicitando permissao de administrador...
    powershell -Command "Start-Process '%~f0' -Verb runAs"
    exit /b
)

:: Continua normalmente após elevar
title Instalador Tesseract + Poppler (Servidor CREA) - Completo
color 0A

echo ============================================
echo   Instalando Tesseract OCR + Portugues e Poppler
echo ============================================
echo.

:: -------------------------------
:: URLs DO SEU SERVIDOR
:: -------------------------------
set "TESSERACT_URL=https://saturno.crea-rs.org.br/download/CDA/tesseract-ocr-w64-setup-5.5.0.20241111.exe"
set "POPLER_URL=https://saturno.crea-rs.org.br/download/CDA/Poppler.zip"

:: -------------------------------
:: Diretórios
:: -------------------------------
set "POPLER_DIR=C:\Poppler"
set "POPLER_BIN=C:\Poppler\Library\bin"
set "TESSERACT_DIR=C:\Program Files\Tesseract-OCR"

echo Baixando Tesseract...
curl -L "%TESSERACT_URL%" -o "%TEMP%\tesseract_installer.exe"

if not exist "%TEMP%\tesseract_installer.exe" (
    echo ERRO: Falha ao baixar o instalador do Tesseract.
    pause
    exit /b
)

echo Instalando Tesseract + idioma Portugues...
"%TEMP%\tesseract_installer.exe" /S

:: ============================================================
:: INSTALAR IDIOMA PORTUGUES MANUALMENTE
:: ============================================================
echo Baixando idioma Portugues...
curl -L "https://saturno.crea-rs.org.br/download/CDA/por.traineddata" -o "%TEMP%\por.traineddata"

echo Criando pasta tessdata se nao existir...
mkdir "%TESSERACT_DIR%\tessdata" >nul 2>&1

echo Copiando idioma Portugues para a pasta correta...
copy "%TEMP%\por.traineddata" "%TESSERACT_DIR%\tessdata\por.traineddata" /Y

echo Configurando TESSDATA_PREFIX...
setx TESSDATA_PREFIX "%TESSERACT_DIR%\tessdata" /M

echo Baixando Poppler...
curl -L "%POPLER_URL%" -o "%TEMP%\poppler.zip"

if not exist "%TEMP%\poppler.zip" (
    echo ERRO: Falha ao baixar o Poppler.
    pause
    exit /b
)

echo Verificando tamanho do ZIP...
for %%A in ("%TEMP%\poppler.zip") do set SIZE=%%~zA

if %SIZE% LSS 10000000 (
    echo ERRO: O arquivo Poppler.zip esta corrompido ou incompleto.
    echo Tamanho baixado: %SIZE% bytes
    pause
    exit /b
)

echo Extraindo Poppler...
powershell -Command "Expand-Archive -Path '%TEMP%\poppler.zip' -DestinationPath '%POPLER_DIR%' -Force"

echo Verificando estrutura do Poppler...

for /d %%i in ("%POPLER_DIR%\*") do (
    if exist "%%i\bin" (
        echo Estrutura OK.
        goto skipmove
    )
)

echo Ajustando estrutura de pastas...
for /d %%i in ("%POPLER_DIR%\*") do (
    move "%%i\*" "%POPLER_DIR%" >nul 2>&1
    rmdir "%%i" /s /q
)

:skipmove

echo Conferindo se a pasta bin existe...
if not exist "%POPLER_DIR%\Library\bin" (
    if exist "%POPLER_DIR%\bin" (
        echo Encontrado bin em local alternativo. Ajustando...
        mkdir "%POPLER_DIR%\Library"
        mkdir "%POPLER_DIR%\Library\bin"
        move "%POPLER_DIR%\bin\*" "%POPLER_DIR%\Library\bin" >nul
        rmdir "%POPLER_DIR%\bin" /s /q
    ) else (
        echo ERRO: A pasta bin nao foi encontrada apos a extracao.
        pause
        exit /b
    )
)

echo Configurando variaveis de ambiente...

echo %PATH% | find /i "%POPLER_BIN%" >nul
if errorlevel 1 (
    setx PATH "%PATH%;%POPLER_BIN%" /M
)

echo %PATH% | find /i "%TESSERACT_DIR%" >nul
if errorlevel 1 (
    setx PATH "%PATH%;%TESSERACT_DIR%" /M
)

echo.
echo ============================================
echo Instalacao concluida com sucesso!
echo Tesseract + Portugues e Poppler instalados.
echo Reinicie o computador para aplicar o PATH.
echo ============================================
pause
