diff --git a/config.go b/config.go index fbec92f..9e821c8 100644 --- a/config.go +++ b/config.go @@ -66,7 +66,7 @@ func LoadConfig() *Config { if prefix != "nsec" { log.Fatalf("not an nsec, got %s", prefix) } - + pk := nostr.GetPublicKey(sk) npub := nip19.EncodeNpub(pk) log.Printf("Loading private key from file %s. Will send alerts from %s", nsecfile, npub) diff --git a/parser.go b/parser.go index a32545c..1a7caec 100644 --- a/parser.go +++ b/parser.go @@ -1,9 +1,8 @@ package main import ( + "strings" "encoding/json" - "fmt" - "os" ) type Alert struct { @@ -26,30 +25,30 @@ type Payload struct { Receiver string `json:"receiver"` Status string `json:"firing"` ExternalURL string `json:"externalURL"` - Version string `json:"version"` + Version string `json:"version"` GroupKey string `json:"groupKey"` TruncatedAlerts int `json:"truncatedAlerts"` OrgID int `json:"orgId"` Title string `json:"title"` State string `json"state"` Message string `json:"message"` - Alerts []Alert `json:"alerts"` + Alerts []Alert `json:"alerts"` GroupLabels map[string]any `json:"groupLabels"` CommonLabels map[string]any `json:"groupLabels"` CommonAnnotations map[string]any `json:"commonAnnotations"` } -func check(e error) { - if e != nil { - panic(e) - } -} -func main() { - data, err := os.ReadFile("./alert.json") - check(err) - var payload Payload - p1 := json.Unmarshal([]byte(data), &payload) +func ParseAlert(payload []byte) (string) { + var data Payload + p1 := json.Unmarshal(payload, &data) check(p1) - fmt.Printf("Full payload: %+v\n", payload) + + var o strings.Builder + + o.WriteString(data.Title) + o.WriteString("status: " + data.Status) + o.WriteString("state: " + data.State) + o.WriteString(data.Message) + return o.String() }