dnscontrol/pkg/notifications/shoutrrr.go

32 lines
837 B
Go

package notifications
import (
"fmt"
"github.com/containrrr/shoutrrr"
)
func init() {
initers = append(initers, func(cfg map[string]string) Notifier {
if url, ok := cfg["shoutrrr_url"]; ok {
return shoutrrrNotifier(url)
}
return nil
})
}
type shoutrrrNotifier string
func (b shoutrrrNotifier) Notify(domain, provider, msg string, err error, preview bool) error {
var payload string
if preview {
payload = fmt.Sprintf("DNSControl preview: %s[%s]:\n%s", domain, provider, msg)
} else if err != nil {
payload = fmt.Sprintf("DNSControl ERROR running correction on %s[%s]:\n%s\nError: %s", domain, provider, msg, err)
} else {
payload = fmt.Sprintf("DNSControl successfully ran correction for %s[%s]:\n%s", domain, provider, msg)
}
return shoutrrr.Send(string(b), payload)
}
func (b shoutrrrNotifier) Done() {}