broke apprise notification function into its own module to be used by multiple scripts
Security / security (push) Successful in 58s

This commit is contained in:
2026-05-31 20:23:49 -05:00
parent d0ac1d8e4c
commit 76052a87e4
4 changed files with 40 additions and 39 deletions
+33
View File
@@ -0,0 +1,33 @@
[string] $appriseWebhookURL = $ENV:APPRISEWEBHOOKURL
[string] $appriseWebhookTag = $ENV:APPRISEWEBHOOKTAG
function Send-AppriseNotification
{
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])"
}
}
+1 -1
View File
@@ -16,7 +16,7 @@ USER 1000:1000
WORKDIR /data WORKDIR /data
COPY ["crontab", "/data/"] COPY ["crontab", "/data/"]
COPY --chmod=755 ["main.sh", "/data/"] COPY --chmod=755 ["main.sh", "/data/"]
COPY ["Start-DoneTickNotifier.ps1", "Start-DoneTickConsumer.ps1", "/data/"] COPY ["Start-DoneTickNotifier.ps1", "Start-DoneTickConsumer.ps1", "AppriseNotification.psm1", "/data/"]
ENTRYPOINT ["/data/main.sh"] ENTRYPOINT ["/data/main.sh"]
+3 -2
View File
@@ -1,5 +1,7 @@
[string] $ListenUrl = "http://+:8080/" [string] $ListenUrl = "http://+:8080/"
Import-Module ./AppriseNotification.psm1
function Write-JsonResponse function Write-JsonResponse
{ {
param( param(
@@ -91,8 +93,7 @@ function Receive-Webhook
Write-Host "Payload: <empty>" Write-Host "Payload: <empty>"
} }
# Add your real webhook handling here. Send-AppriseNotification -title "Donetick Webhook Received" -content ($payload | ConvertTo-Json -Depth 20)
# Example: inspect $payload.event, save data, or call another API.
Write-JsonResponse -Response $response -StatusCode 200 -Body @{ Write-JsonResponse -Response $response -StatusCode 200 -Body @{
ok = $true ok = $true
+3 -36
View File
@@ -1,40 +1,8 @@
[string] $dtHost = $ENV:DONETICKHOST [string] $dtHost = $ENV:DONETICKHOST
[string] $dtPort = $ENV:DONETICKPORT [string] $dtPort = $ENV:DONETICKPORT
[string] $dtAPIKey = $ENV:DONETICKAPIKEY [string] $dtAPIKey = $ENV:DONETICKAPIKEY
[string] $appriseWebhookURL = $ENV:APPRISEWEBHOOKURL
[string] $appriseWebhookTag = $ENV:APPRISEWEBHOOKTAG
Import-Module ./AppriseNotification.psm1
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 function Get-Chores
{ {
@@ -70,7 +38,6 @@ foreach($chore in $chores)
{ {
write-host "$($chore.name) $dueDate is due today!" write-host "$($chore.name) $dueDate is due today!"
$todaysTasks += $chore $todaysTasks += $chore
# Send-Notification -title "TASK DUE TODAY" -content "$($chore.Name) is due today!"
} }
else else
{ {
@@ -88,7 +55,7 @@ if ($overdueTasks.Count -ne 0)
{ {
$content += "$($overdueTask.Name) was due $((Get-Date $overdueTask.nextDueDate).ToLocalTime())`n" $content += "$($overdueTask.Name) was due $((Get-Date $overdueTask.nextDueDate).ToLocalTime())`n"
} }
Send-Notification -title "OVERDUE TASKS" -content $content Send-AppriseNotification -title "OVERDUE TASKS" -content $content
} }
if ($todaysTasks.Count -ne 0) if ($todaysTasks.Count -ne 0)
@@ -99,5 +66,5 @@ if ($todaysTasks.Count -ne 0)
{ {
$content += "$($task.Name) is due $((Get-Date $task.nextDueDate).ToLocalTime())`n" $content += "$($task.Name) is due $((Get-Date $task.nextDueDate).ToLocalTime())`n"
} }
Send-Notification -title "TODAY'S TASKS" -content $content Send-AppriseNotification -title "TODAY'S TASKS" -content $content
} }