mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-11-09 07:50:56 +08:00
32 lines
837 B
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() {}
|