feat(notifications): Telegram set sender (#1723)

feat(notifications): add conditional sender payload for telegram
This commit is contained in:
martylukyy 2024-09-14 11:03:42 +02:00 committed by GitHub
parent 51265b6702
commit e56bf1f8fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 6 additions and 0 deletions

View file

@ -64,6 +64,7 @@ type NotificationPayload struct {
Protocol ReleaseProtocol // torrent, usenet
Implementation ReleaseImplementation // irc, rss, api
Timestamp time.Time
Sender string
}
type NotificationType string

View file

@ -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 != "", "<b>%v</b>\n", []interface{}{html.EscapeString(payload.Sender)}},
{payload.Subject != "" && payload.Message != "", "<b>%v</b> %v\n", []interface{}{html.EscapeString(payload.Subject), html.EscapeString(payload.Message)}},
{payload.ReleaseName != "", "<b>New release:</b> %v\n", []interface{}{html.EscapeString(payload.ReleaseName)}},
{payload.Size > 0, "<b>Size:</b> %v\n", []interface{}{humanize.Bytes(payload.Size)}},

View file

@ -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,