From 5f33d8bd5d0b8be01237efc1862a7030b30e3e42 Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Sat, 15 Nov 2025 08:48:39 -0500 Subject: [PATCH] Updated setup_scheduler.ps1 --- setup_scheduler.ps1 | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/setup_scheduler.ps1 b/setup_scheduler.ps1 index ea6818a..8f07454 100644 --- a/setup_scheduler.ps1 +++ b/setup_scheduler.ps1 @@ -1,26 +1,30 @@ # Setup Task Scheduler for Journey FM Playlist Updater # Run this script as Administrator to create scheduled tasks +param( + [string]$Type = "Both", # Interval, Startup, Both + [int]$Interval = 15, + [string]$Unit = "Minutes" # Minutes, Hours, Days +) + $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path $psScript = "$scriptDir\run_journey_playlist.ps1" -# Task 1: Run every 15 minutes -$action1 = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$psScript`"" -$trigger1 = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -Minutes 15) -$settings1 = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable +if ($Type -eq "Interval" -or $Type -eq "Both") { + $action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$psScript`"" + $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -$Unit $Interval) + $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable + Register-ScheduledTask -TaskName "Journey FM Playlist Updater - Every $Interval $Unit" -Action $action -Trigger $trigger -Settings $settings -Description "Updates Plex playlist with recently played songs every $Interval $Unit" + Write-Host "Created task: Every $Interval $Unit" -ForegroundColor Green +} -Register-ScheduledTask -TaskName "Journey FM Playlist Updater - Every 15 Minutes" -Action $action1 -Trigger $trigger1 -Settings $settings1 -Description "Updates Plex playlist with recently played songs from Journey FM every 15 minutes" -Force - -# Task 2: Run at startup -$action2 = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$psScript`"" -$trigger2 = New-ScheduledTaskTrigger -AtStartup -$trigger2.Delay = "PT1M" # 1 minute delay after startup -$settings2 = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable - -Register-ScheduledTask -TaskName "Journey FM Playlist Updater - At Startup" -Action $action2 -Trigger $trigger2 -Settings $settings2 -Description "Updates Plex playlist with recently played songs from Journey FM at computer startup" -Force +if ($Type -eq "Startup" -or $Type -eq "Both") { + $action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File `"$psScript`"" + $trigger = New-ScheduledTaskTrigger -AtStartup + $trigger.Delay = "PT1M" # 1 minute delay + $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable + Register-ScheduledTask -TaskName "Journey FM Playlist Updater - At Startup" -Action $action -Trigger $trigger -Settings $settings -Description "Updates Plex playlist with recently played songs at startup" + Write-Host "Created task: At Startup" -ForegroundColor Green +} Write-Host "Scheduled tasks created successfully!" -ForegroundColor Green -Write-Host "Task 1: Runs every 15 minutes" -ForegroundColor Cyan -Write-Host "Task 2: Runs at computer startup (with 60 second delay)" -ForegroundColor Cyan -Write-Host "" -Write-Host "You can view and manage these tasks in Task Scheduler." -ForegroundColor Yellow