@echo off
setlocal EnableExtensions EnableDelayedExpansion
chcp 65001 >nul
title Talksyne Helper セットアップ
echo.
echo  Talksyne Helper をインストール／更新します。Python は不要です。
echo  保存先はこのPCの標準の場所です。管理者として実行する必要はありません。
echo.
set "BASE=https://talksyne.top"
set "DEST=%LOCALAPPDATA%\Talksyne\Helper"
echo  保存先: %DEST%
if not exist "%DEST%" mkdir "%DEST%"
if exist "%DEST%\TalksyneHelper.exe" (
  echo  起動中の補助アプリを終了して更新します...
  taskkill /IM TalksyneHelper.exe /F >nul 2>&1
  timeout /t 2 /nobreak >nul
)
echo  ファイルを取得しています...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "$base='https://talksyne.top'; $dest=$env:LOCALAPPDATA+'\Talksyne\Helper';" ^
  "New-Item -ItemType Directory -Force -Path $dest | Out-Null;" ^
  "Invoke-WebRequest -UseBasicParsing -Uri ($base+'/helper/files/TalksyneHelper.cs') -OutFile ($dest+'\TalksyneHelper.cs');" ^
  "Invoke-WebRequest -UseBasicParsing -Uri ($base+'/helper/files/VERSION.txt') -OutFile ($dest+'\VERSION.txt');"
if errorlevel 1 (
  echo  ダウンロードに失敗しました。ブラウザで https://talksyne.top/helper/ を開いてください。
  pause
  exit /b 1
)
set "CSC="
for %%P in (
  "%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe"
  "%WINDIR%\Microsoft.NET\Framework\v4.0.30319\csc.exe"
) do if exist %%P set "CSC=%%~P"
if "%CSC%"=="" (
  echo  Windows の .NET コンパイラが見つかりません。Windows を最新にしてから再実行してください。
  pause
  exit /b 1
)
echo  インストールしています...
"%CSC%" /nologo /t:winexe /optimize+ /out:"%DEST%\TalksyneHelper.exe" /r:System.dll /r:System.Windows.Forms.dll /r:System.Drawing.dll /r:System.Web.Extensions.dll "%DEST%\TalksyneHelper.cs"
if errorlevel 1 (
  echo  ビルドに失敗しました。補助アプリが起動中なら終了して再実行してください。
  pause
  exit /b 1
)
set "START=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Talksyne"
if not exist "%START%" mkdir "%START%"
powershell -NoProfile -Command ^
  "$dest=$env:LOCALAPPDATA+'\Talksyne\Helper'; $exe=Join-Path $dest 'TalksyneHelper.exe';" ^
  "$s=(New-Object -ComObject WScript.Shell).CreateShortcut($env:APPDATA+'\Microsoft\Windows\Start Menu\Programs\Talksyne\Talksyne Helper.lnk');" ^
  "$s.TargetPath=$exe; $s.WorkingDirectory=$dest; $s.Save();" ^
  "$d=(New-Object -ComObject WScript.Shell).CreateShortcut($env:USERPROFILE+'\Desktop\Talksyne Helper.lnk');" ^
  "$d.TargetPath=$exe; $d.WorkingDirectory=$dest; $d.Save()"
echo.
echo  完了しました。Talksyne Helper を起動します。
echo  開いている音声入力／オーバーレイ設定ページは、開き直さず自動で接続します。
echo  両方のページを閉じると補助アプリは終了します。
start "" "%DEST%\TalksyneHelper.exe"
exit /b 0
