@echo off
setlocal EnableExtensions
REM GreenTV Broadcasting Kit — fully non-interactive launcher (v2.0.2)
set "KIT_URL=https://greentv.media/download/kit.zip"
set "BANNER_URL=https://greentv.media/installer/banner.ps1"
set "VERSION_URL=https://greentv.media/download/version.txt"
set "INSTALLER_VERSION=2.0.2"
set "OUT_DIR=%TEMP%\GREENTV_BROADCASTING_KIT"
set "ZIP_FILE=%OUT_DIR%\GREENTV_BROADCASTING_KIT.zip"
set "EXTRACT_DIR=%OUT_DIR%\extract"
set "LOG_FILE=%OUT_DIR%\launcher-log.txt"

if not exist "%OUT_DIR%" mkdir "%OUT_DIR%" >nul 2>nul
echo ==================================================
echo   GREENTV BROADCASTING KIT - SILENT INSTALLER
echo ==================================================
echo Log: %LOG_FILE%
echo.

> "%LOG_FILE%" echo [%DATE% %TIME%] launcher start version=%INSTALLER_VERSION%

echo [1/3] Banner (non-fatal)...
powershell -NoProfile -ExecutionPolicy Bypass -Command "try { $ErrorActionPreference='Stop'; $banner = (Invoke-WebRequest -Uri $env:BANNER_URL -UseBasicParsing).Content; Invoke-Expression $banner } catch { Write-Host ('Banner skipped: ' + $_.Exception.Message) -ForegroundColor Yellow }" >> "%LOG_FILE%" 2>&1

echo [2/3] Version check (non-fatal if offline)...
powershell -NoProfile -ExecutionPolicy Bypass -Command "try { $ErrorActionPreference='Stop'; $remote = (Invoke-WebRequest -Uri $env:VERSION_URL -UseBasicParsing).Content.Trim(); if ($remote -and $remote -ne $env:INSTALLER_VERSION) { Write-Host ('NOTE: launcher=' + $env:INSTALLER_VERSION + ' server=' + $remote + ' (continuing with downloaded kit)') -ForegroundColor Yellow } else { Write-Host ('Installer version OK: ' + $env:INSTALLER_VERSION) -ForegroundColor Green } } catch { Write-Host ('Version check skipped: ' + $_.Exception.Message) -ForegroundColor Yellow }"

echo [3/3] Download kit + silent install (no questions)...
echo Source: %KIT_URL%
echo.

powershell -NoProfile -ExecutionPolicy Bypass -Command "$ErrorActionPreference='Stop'; $ProgressPreference='SilentlyContinue'; $out=$env:ZIP_FILE; $extract=$env:EXTRACT_DIR; $log=$env:LOG_FILE; function L($m){ Add-Content -LiteralPath $log -Value ('[{0}] {1}' -f (Get-Date -Format o), $m); Write-Host $m }; L 'Downloading kit...'; Invoke-WebRequest -Uri $env:KIT_URL -OutFile $out -UseBasicParsing; if (Test-Path -LiteralPath $extract) { Remove-Item -LiteralPath $extract -Recurse -Force }; New-Item -ItemType Directory -Force -Path $extract | Out-Null; L 'Extracting kit...'; Expand-Archive -LiteralPath $out -DestinationPath $extract -Force; $root = Get-ChildItem -Path $extract -Recurse -Filter install.ps1 -File | Select-Object -First 1; if (-not $root) { throw 'install.ps1 not found after extraction' }; L ('Running ' + $root.FullName); & $root.FullName -InstallRoot 'C:\Users\Public\Documents\GREENTV BROADCASTING KIT' -SkipPlugins; if ($LASTEXITCODE -ne 0) { throw ('install.ps1 exit code ' + $LASTEXITCODE) }; L 'Launcher finished OK'"
set "ERR=%ERRORLEVEL%"
if not "%ERR%"=="0" (
  echo.
  echo INSTALL FAILED. Exit code %ERR%
  echo See log: %LOG_FILE%
  echo Also: %%TEMP%%\GREENTV_BROADCASTING_KIT\install-log.txt
  exit /b %ERR%
)

echo.
echo ==================================================
echo   INSTALL COMPLETE — no prompts required
echo ==================================================
echo Kit:  C:\Users\Public\Documents\GREENTV BROADCASTING KIT
echo OBS:  Open OBS manually → Profile "GreenTV" → Collection "GREENTV BROADCASTING KIT"
echo Log:  %LOG_FILE%
echo.
exit /b 0
