﻿@echo off
setlocal EnableExtensions
chcp 65001 >nul
title HarclikGo Windows Kurulum
color 0A
set "VER=2.9.48"
set "EXPECT_SHA=743015932f0fdcefbdcd1e00313f1c008234530a51cf8382036810f540e97ead"
set "EXPECT_MIN=1000000"
set "BASE=http://harclikgo.com/downloads"
set "ZIP1=%BASE%/HarclikGo-%VER%-Windows.zip?v=%VER%"
set "ZIP2=%BASE%/harclikgo-windows.zip?v=%VER%"
set "OUT=%USERPROFILE%\Downloads\HarclikGo-%VER%-Windows.zip"
set "DIR=%USERPROFILE%\Downloads\HarclikGo-%VER%"
set "EXE=%DIR%\HarclikGo\HarclikGo.exe"

echo.
echo  ============================================
echo   HarclikGo v%VER% kurulum
echo  ============================================
echo.

call :download "%ZIP1%"
if not exist "%OUT%" call :download "%ZIP2%"
if not exist "%OUT%" (
  echo HATA: Indirme basarisiz.
  echo Elle: %ZIP1%
  pause
  exit /b 1
)

for %%A in ("%OUT%") do set "SZ=%%~zA"
if %SZ% LSS %EXPECT_MIN% (
  echo HATA: Dosya cok kucuk (%SZ% byte)
  del /f /q "%OUT%" >nul 2>&1
  pause
  exit /b 1
)

echo  [%SZ% byte] indirildi. Aciliyor...
if exist "%DIR%" rd /s /q "%DIR%"
mkdir "%DIR%" >nul 2>&1
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "Expand-Archive -LiteralPath '%OUT%' -DestinationPath '%DIR%' -Force; Get-ChildItem -LiteralPath '%DIR%' -Recurse -Include *.dll,*.exe,*.pyd -ErrorAction SilentlyContinue | ForEach-Object { Unblock-File -LiteralPath $_.FullName -ErrorAction SilentlyContinue; Remove-Item ($_.FullName + ':Zone.Identifier') -Force -ErrorAction SilentlyContinue }"

if not exist "%EXE%" (
  for /r "%DIR%" %%F in (HarclikGo.exe) do set "EXE=%%~fF"
)
if not exist "%EXE%" (
  echo HATA: HarclikGo.exe bulunamadi.
  explorer "%DIR%"
  pause
  exit /b 1
)

echo.
echo  TAMAM. Uygulama aciliyor...
echo  %EXE%
start "" "%EXE%"
timeout /t 4 >nul
exit /b 0

:download
set "U=%~1"
echo  Indiriliyor...
echo  %U%
del /f /q "%OUT%" >nul 2>&1
where curl.exe >nul 2>&1
if %ERRORLEVEL%==0 (
  curl.exe -4 -L --fail --retry 5 --retry-delay 2 --connect-timeout 20 --max-time 600 -o "%OUT%" "%U%"
) else (
  powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "try { [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%U%' -OutFile '%OUT%' -UseBasicParsing } catch { exit 1 }"
)
exit /b 0