From 9d96d1a9422b30dd6caa42cca2a561970735f160 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 21 Apr 2024 21:14:58 -0700 Subject: notify when we don't receive a thing in the last 24 hours --- ntfy/publisher.go | 16 ++++++++++++++++ ntfy/watcher.go | 6 +++--- 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 ntfy/publisher.go (limited to 'ntfy') diff --git a/ntfy/publisher.go b/ntfy/publisher.go new file mode 100644 index 0000000..68f8e49 --- /dev/null +++ b/ntfy/publisher.go @@ -0,0 +1,16 @@ +package ntfy + +import ( + "net/http" + "strings" +) + +func SendMessage(message string, endpoint string, topics []string) error { + for _, topic := range topics { + _, err := http.Post(endpoint+"/"+topic, "text/plain", strings.NewReader(message)) + if err != nil { + return err + } + } + return nil +} diff --git a/ntfy/watcher.go b/ntfy/watcher.go index af4dd55..759c35b 100644 --- a/ntfy/watcher.go +++ b/ntfy/watcher.go @@ -30,7 +30,7 @@ func (w *NtfyWatcher) Watch() chan Message { retryTime := 5 * time.Second retries := retryCount - retry := func() { + sleepAndDecrementRetry := func() { log.Println("waiting 5 seconds before reconnecting. retries left:", retries, "topic:", topic, "endpoint:", w.Endpoint) time.Sleep(retryTime) retries-- @@ -45,7 +45,7 @@ func (w *NtfyWatcher) Watch() chan Message { resp, err := http.Get(endpoint) if err != nil { log.Println("error connecting to endpoint:", err) - retry() + sleepAndDecrementRetry() continue } @@ -60,7 +60,7 @@ func (w *NtfyWatcher) Watch() chan Message { if err := scanner.Err(); err != nil { log.Println("error reading response body:", err) - retry() + sleepAndDecrementRetry() } } }() -- cgit v1.2.3-70-g09d2