diff --git a/internal/domain/notification.go b/internal/domain/notification.go index 56b2dff..d282412 100644 --- a/internal/domain/notification.go +++ b/internal/domain/notification.go @@ -64,6 +64,7 @@ type NotificationPayload struct { Protocol ReleaseProtocol // torrent, usenet Implementation ReleaseImplementation // irc, rss, api Timestamp time.Time + Sender string } type NotificationType string diff --git a/internal/notification/message_builder.go b/internal/notification/message_builder.go index 5f87c56..6b899ce 100644 --- a/internal/notification/message_builder.go +++ b/internal/notification/message_builder.go @@ -26,6 +26,7 @@ type MessageBuilderPlainText struct{} // BuildBody constructs the body of the notification message. func (b *MessageBuilderPlainText) BuildBody(payload domain.NotificationPayload) string { messageParts := []ConditionMessagePart{ + {payload.Sender != "", "%v\n", []interface{}{payload.Sender}}, {payload.Subject != "" && payload.Message != "", "%v\n%v", []interface{}{payload.Subject, payload.Message}}, {payload.ReleaseName != "", "New release: %v\n", []interface{}{payload.ReleaseName}}, {payload.Size > 0, "Size: %v\n", []interface{}{humanize.Bytes(payload.Size)}}, @@ -45,6 +46,7 @@ type MessageBuilderHTML struct{} func (b *MessageBuilderHTML) BuildBody(payload domain.NotificationPayload) string { messageParts := []ConditionMessagePart{ + {payload.Sender != "", "%v\n", []interface{}{html.EscapeString(payload.Sender)}}, {payload.Subject != "" && payload.Message != "", "%v %v\n", []interface{}{html.EscapeString(payload.Subject), html.EscapeString(payload.Message)}}, {payload.ReleaseName != "", "New release: %v\n", []interface{}{html.EscapeString(payload.ReleaseName)}}, {payload.Size > 0, "Size: %v\n", []interface{}{humanize.Bytes(payload.Size)}}, diff --git a/internal/notification/telegram.go b/internal/notification/telegram.go index 7d5a50d..f60958a 100644 --- a/internal/notification/telegram.go +++ b/internal/notification/telegram.go @@ -63,6 +63,9 @@ func NewTelegramSender(log zerolog.Logger, settings domain.Notification) domain. } func (s *telegramSender) Send(event domain.NotificationEvent, payload domain.NotificationPayload) error { + + payload.Sender = "autobrr" + message := s.builder.BuildBody(payload) m := TelegramMessage{ ChatID: s.Settings.Channel,