@echo off setlocal REM Always use 'nathan' as NAS username set NASUSER=nathan REM Menu for operation selection echo. echo Select operation: echo 1. Generate thumbnails only echo 2. SSH cleanup only echo 3. Both (generate thumbnails + SSH cleanup) echo 4. Fix OneDrive thumbnail override (NEW!) echo. set /p CHOICE=Enter your choice (1-4): if "%CHOICE%"=="1" goto THUMBS_ONLY if "%CHOICE%"=="2" goto SSH_ONLY if "%CHOICE%"=="3" goto BOTH if "%CHOICE%"=="4" goto FIX_ONEDRIVE echo Invalid choice. Exiting. exit /b :THUMBS_ONLY REM Prompt for Windows path set /p WINPATH=Enter the full Windows path to your NAS directory (e.g., R:\YouTube\Streams\MixerTwitch): if "%WINPATH%"=="" ( echo No path provided. Exiting. exit /b ) REM Convert Windows path to NAS path and pre-seed eaDir_tmp from @eaDir on NAS set "RELPATH=%WINPATH:~3%" set "RELPATH=%RELPATH:\=/%" set "NASPATH=/volume1/Hydra/%RELPATH%" echo Seeding existing thumbnails on NAS (extract_eadir_to_tmp.sh)... ssh Hydra "bash -lc '~/extract_eadir_to_tmp.sh \"%NASPATH%\" || true'" REM Run psthumbgen.py python psthumbgen.py --directory "%WINPATH%" goto END :SSH_ONLY REM Prompt for Windows path set /p WINPATH=Enter the full Windows path to your NAS directory (e.g., R:\YouTube\Streams\MixerTwitch): if "%WINPATH%"=="" ( echo No path provided. Exiting. exit /b ) REM Convert Windows path to NAS path set "RELPATH=%WINPATH:~3%" set "RELPATH=%RELPATH:\=/%" set "NASPATH=/volume1/Hydra/%RELPATH%" echo DEBUG: WINPATH = %WINPATH% echo DEBUG: RELPATH = %RELPATH% echo DEBUG: NASPATH = %NASPATH% echo. REM Ensure nascleanup.sh exists on NAS (upload + fix line endings), then run it echo Uploading nascleanup.sh to NAS and running cleanup... if not exist "%~dp0nascleanup.sh" ( echo ERROR: nascleanup.sh not found next to this batch file. goto END ) ssh Hydra "cat > ~/nascleanup.sh" < "%~dp0nascleanup.sh" ssh Hydra "bash -lc 'if command -v dos2unix >/dev/null 2>&1; then dos2unix -f ~/nascleanup.sh; else tr -d \"\r\" < ~/nascleanup.sh > ~/nascleanup.sh.tmp && mv ~/nascleanup.sh.tmp ~/nascleanup.sh; fi; chmod +x ~/nascleanup.sh; ~/nascleanup.sh \"%NASPATH%\"'" goto END :BOTH REM Prompt for Windows path set /p WINPATH=Enter the full Windows path to your NAS directory (e.g., R:\YouTube\Streams\MixerTwitch): if "%WINPATH%"=="" ( echo No path provided. Exiting. exit /b ) REM Convert Windows path to NAS path set "RELPATH=%WINPATH:~3%" set "RELPATH=%RELPATH:\=/%" set "NASPATH=/volume1/Hydra/%RELPATH%" echo DEBUG: WINPATH = %WINPATH% echo DEBUG: RELPATH = %RELPATH% echo DEBUG: NASPATH = %NASPATH% echo. REM Pre-seed eaDir_tmp from @eaDir on NAS before generation echo Seeding existing thumbnails on NAS (extract_eadir_to_tmp.sh)... ssh Hydra "bash -lc '~/extract_eadir_to_tmp.sh \"%NASPATH%\" || true'" REM Run psthumbgen.py python psthumbgen.py --directory "%WINPATH%" REM SSH cleanup commands (run separately) REM Ensure nascleanup.sh exists on NAS (upload + fix line endings), then run it echo Uploading nascleanup.sh to NAS and running cleanup... if not exist "%~dp0nascleanup.sh" ( echo ERROR: nascleanup.sh not found next to this batch file. goto END ) ssh Hydra "cat > ~/nascleanup.sh" < "%~dp0nascleanup.sh" ssh Hydra "bash -lc 'if command -v dos2unix >/dev/null 2>&1; then dos2unix -f ~/nascleanup.sh; else tr -d \"\r\" < ~/nascleanup.sh > ~/nascleanup.sh.tmp && mv ~/nascleanup.sh.tmp ~/nascleanup.sh; fi; chmod +x ~/nascleanup.sh; ~/nascleanup.sh \"%NASPATH%\"'" goto END :FIX_ONEDRIVE echo. echo ================================================================= echo FIX ONEDRIVE THUMBNAIL OVERRIDE echo ================================================================= echo. echo This will fix OneDrive overriding your custom thumbnails with echo generic file icons for unsupported formats like .blend files. echo. echo What this does: echo - Disables OneDrive cloud thumbnail providers echo - Restores local thumbnail priority echo - Prevents future thumbnail cache deletion echo. set /p CONFIRM=Continue? (y/n): if /i not "%CONFIRM%"=="y" goto END echo. echo Running PowerShell script to fix OneDrive thumbnail override... echo. REM Check if PowerShell script exists if not exist "fix_thumbnail_override.ps1" ( echo ERROR: fix_thumbnail_override.ps1 not found in current directory. echo Please ensure the PowerShell script is in the same folder as this batch file. pause goto END ) REM Run PowerShell script as administrator powershell -ExecutionPolicy Bypass -Command "Start-Process PowerShell -ArgumentList '-ExecutionPolicy Bypass -File \"%~dp0fix_thumbnail_override.ps1\"' -Verb RunAs" echo. echo OneDrive thumbnail override fix initiated. echo Please check the PowerShell window for progress and results. echo. echo After the fix completes: echo 1. Restart your computer echo 2. Re-run your thumbnail generation process echo 3. Your custom thumbnails should now have priority! echo. goto END :END pause