more time zone corrections and removing the loop in the notifier script as it now runs via a cron schedule
Security / security (push) Successful in 1m1s
Security / security (push) Successful in 1m1s
This commit is contained in:
+14
-48
@@ -3,7 +3,6 @@
|
||||
[string] $dtAPIKey = $ENV:DONETICKAPIKEY
|
||||
[string] $appriseWebhookURL = $ENV:APPRISEWEBHOOKURL
|
||||
[string] $appriseWebhookTag = $ENV:APPRISEWEBHOOKTAG
|
||||
[int[]] $notificationTimes = $ENV:NOTIFICATIONTIMES -split ","
|
||||
|
||||
|
||||
function Send-Notification
|
||||
@@ -51,19 +50,14 @@ function Get-Chores
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $notificationTimes) { $notificationTimes = @(8) }
|
||||
else { $notificationTimes = $notificationTimes | Sort-Object }
|
||||
Write-Host "Notification times: $notificationTimes"
|
||||
$today = (Get-Date "23:59:59")
|
||||
$chores = Get-Chores
|
||||
|
||||
while ($true) {
|
||||
$today = (Get-Date "23:59:59")
|
||||
$chores = Get-Chores
|
||||
$overdueTasks = @()
|
||||
$todaysTasks = @()
|
||||
|
||||
$overdueTasks = @()
|
||||
$todaysTasks = @()
|
||||
|
||||
foreach($chore in $chores)
|
||||
{
|
||||
foreach($chore in $chores)
|
||||
{
|
||||
if ($chore.nextDueDate)
|
||||
{
|
||||
$dueDate = (Get-Date $chore.nextDueDate).ToLocalTime()
|
||||
@@ -84,54 +78,26 @@ while ($true) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if ($overdueTasks.Count -ne 0)
|
||||
{
|
||||
if ($overdueTasks.Count -ne 0)
|
||||
{
|
||||
Write-Host "Sending a notification for $($overdueTasks.Count) overdue tasks"
|
||||
$content = "The following tasks are overdue!`n"
|
||||
foreach($overdueTask in $overdueTasks)
|
||||
{
|
||||
$content += "$($overdueTask.Name) was due $(Get-Date $overdueTask.nextDueDate -Format "MM/dd/yyyy HH:mm")`n"
|
||||
$content += "$($overdueTask.Name) was due $((Get-Date $overdueTask.nextDueDate -Format "MM/dd/yyyy HH:mm").ToLocalTime())`n"
|
||||
}
|
||||
Send-Notification -title "OVERDUE TASKS" -content $content
|
||||
}
|
||||
}
|
||||
|
||||
if ($todaysTasks.Count -ne 0)
|
||||
{
|
||||
if ($todaysTasks.Count -ne 0)
|
||||
{
|
||||
Write-Host "Sending a notification for $($todaysTasks.Count) tasks due today"
|
||||
$content = "The following tasks are due today!`n"
|
||||
foreach($task in $todaysTasks)
|
||||
{
|
||||
$content += "$($task.Name) is due $(Get-Date $task.nextDueDate -Format "MM/dd/yyyy HH:mm")`n"
|
||||
$content += "$($task.Name) is due $((Get-Date $task.nextDueDate -Format "MM/dd/yyyy HH:mm").ToLocalTime())`n"
|
||||
}
|
||||
Send-Notification -title "TODAY'S TASKS" -content $content
|
||||
}
|
||||
|
||||
Write-Host "Finding next notification time..."
|
||||
Write-Host "Current time: $(Get-Date)"
|
||||
$nextNotificationTomorrow = $true
|
||||
foreach($time in $notificationTimes)
|
||||
{
|
||||
$now = Get-Date
|
||||
$diff = $now.Hour - $time
|
||||
if ($diff -lt 0) # next notification time
|
||||
{
|
||||
$nextNotificationTomorrow = $false
|
||||
Write-Host "Next notification time is $time`:00"
|
||||
$sleepTime = ($diff * -1) * 60 * 60 # hours * mins * seconds
|
||||
Write-Host "Sleeping for $sleepTime seconds"
|
||||
Start-Sleep -Seconds $sleepTime
|
||||
continue # leave loop
|
||||
}
|
||||
}
|
||||
if ($nextNotificationTomorrow)
|
||||
{
|
||||
$time = $notificationTimes[0]
|
||||
Write-Host "Next notification time is $time`:00"
|
||||
$diff = 24 - $now.Hour + $time
|
||||
$sleepTime = $diff * 60 * 60 # hours * mins * seconds
|
||||
Write-Host "Sleeping for $sleepTime seconds"
|
||||
Start-Sleep -Seconds $sleepTime
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -12,6 +12,5 @@ services:
|
||||
- DONETICKAPIKEY=adminpass # donetick API key
|
||||
- APPRISEWEBHOOKURL=https://apprisehost/notify/config # apprise notification url
|
||||
- APPRISEWEBHOOKTAG=all # apprise notification tag
|
||||
- NOTIFICATIONTIMES=8,12,17 # hours when notifications will be sent
|
||||
- TZ=America/Chicago # set timezone from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
- JOB_SCHEDULE=0 * * * *
|
||||
- JOB_SCHEDULE=0 8,17 * * * # when to notify about overdue tasks or tasks due today
|
||||
Reference in New Issue
Block a user