From 6658043fcc74536313affc7ee4972fa03b4a9e1e Mon Sep 17 00:00:00 2001 From: Kelly Thomas Reardon Date: Wed, 6 May 2026 22:50:23 -0500 Subject: [PATCH] first mvp --- .gitignore | 1 + Start-DoneTickNotifier.ps1 | 70 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/.gitignore b/.gitignore index c5b4966..f863632 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .vscode/launch.json .env.ps1 debug.ps1 +.postmate/postmate-history.json diff --git a/Start-DoneTickNotifier.ps1 b/Start-DoneTickNotifier.ps1 index 72f7d28..b14584f 100644 --- a/Start-DoneTickNotifier.ps1 +++ b/Start-DoneTickNotifier.ps1 @@ -4,3 +4,73 @@ [string] $appriseWebhookURL = $ENV:APPRISEWEBHOOKURL [string] $appriseWebhookTag = $ENV:APPRISEWEBHOOKTAG + +function Send-Notification +{ + param( + # Title of the notification + [Parameter(Mandatory=$true)] + [string] + $title, + + # Content of the notification + [Parameter(Mandatory=$true)] + [string] + $content + ) + + $headers = @{ + "Content-Type"="application/json" + } + $body = @{ + title=$title + body=$content + tags="$appriseWebhookTag" + } + $json = $body | ConvertTo-Json + try { + Invoke-WebRequest -URI $appriseWebhookURL -Method post -Body $json -Headers $headers + } + catch { + Write-Host "Notification Error Encountered: $($global:Error[0])" + } +} + +function Get-Chores +{ + try { + $headers = @{ + secretkey = $dtAPIKey + } + $results = Invoke-WebRequest -Uri "https://$dtHost`:$dtPort/eapi/v1/chore" -Method Get -Headers $headers + return ($results.Content | ConvertFrom-Json) + } + catch { + Write-Error "Error fetching chores: $($global:Error[0])" + } +} + +$today = (Get-Date "23:59:59") +$chores = Get-Chores + +foreach($chore in $chores) +{ + if ($chore.nextDueDate) + { + $dueDate = Get-Date $chore.nextDueDate + if (($dueDate - $today).Days -lt 0) #OVERDUE + { + write-host "$($chore.name) $dueDate is overdue!" + Send-Notification -title "OVERDUE TASK" -content "$($chore.Name) is overdue! Due date is $($chore.nextDueDate)" + } + elseif (($dueDate - $today) -lt 1) #due today + { + write-host "$($chore.name) $dueDate is due today!" + Send-Notification -title "TASK DUE TODAY" -content "$($chore.Name) is due today!" + } + else + { + write-host "$($chore.name) $dueDate is due in the future" + } + } +} \ No newline at end of file