mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 18:35:51 +02:00
30 lines
846 B
Go
30 lines
846 B
Go
package notification
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/0xJacky/Nginx-UI/model"
|
|
"github.com/nikoksr/notify/service/bark"
|
|
"github.com/uozi-tech/cosy/map2struct"
|
|
)
|
|
|
|
// @external_notifier(Bark)
|
|
type Bark struct {
|
|
DeviceKey string `json:"device_key" title:"Device Key"`
|
|
ServerURL string `json:"server_url" title:"Server URL"`
|
|
}
|
|
|
|
func init() {
|
|
RegisterExternalNotifier("bark", func(ctx context.Context, n *model.ExternalNotify, msg *ExternalMessage) error {
|
|
barkConfig := &Bark{}
|
|
err := map2struct.WeakDecode(n.Config, barkConfig)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if barkConfig.DeviceKey == "" && barkConfig.ServerURL == "" {
|
|
return ErrInvalidNotifierConfig
|
|
}
|
|
barkService := bark.NewWithServers(barkConfig.DeviceKey, barkConfig.ServerURL)
|
|
return barkService.Send(ctx, msg.GetTitle(n.Language), msg.GetContent(n.Language))
|
|
})
|
|
}
|