diff --git a/internal/integration/integration.go b/internal/integration/integration.go index 77a2e00a..9981aeb5 100644 --- a/internal/integration/integration.go +++ b/internal/integration/integration.go @@ -372,20 +372,27 @@ func SendEntry(entry *model.Entry, userIntegrations *model.Integration) { } if userIntegrations.WebhookEnabled { + var webhookURL string + if entry.Feed != nil && entry.Feed.WebhookURL != "" { + webhookURL = entry.Feed.WebhookURL + } else { + webhookURL = userIntegrations.WebhookURL + } + slog.Debug("Sending entry to Webhook", slog.Int64("user_id", userIntegrations.UserID), slog.Int64("entry_id", entry.ID), slog.String("entry_url", entry.URL), - slog.String("webhook_url", userIntegrations.WebhookURL), + slog.String("webhook_url", webhookURL), ) - webhookClient := webhook.NewClient(userIntegrations.WebhookURL, userIntegrations.WebhookSecret) + webhookClient := webhook.NewClient(webhookURL, userIntegrations.WebhookSecret) if err := webhookClient.SendSaveEntryWebhookEvent(entry); err != nil { slog.Error("Unable to send entry to Webhook", slog.Int64("user_id", userIntegrations.UserID), slog.Int64("entry_id", entry.ID), slog.String("entry_url", entry.URL), - slog.String("webhook_url", userIntegrations.WebhookURL), + slog.String("webhook_url", webhookURL), slog.Any("error", err), ) } diff --git a/internal/storage/entry_query_builder.go b/internal/storage/entry_query_builder.go index af9b6b1b..cc3a03df 100644 --- a/internal/storage/entry_query_builder.go +++ b/internal/storage/entry_query_builder.go @@ -292,6 +292,7 @@ func (e *EntryQueryBuilder) GetEntries() (model.Entries, error) { f.cookie, f.hide_globally, f.no_media_player, + f.webhook_url, fi.icon_id, i.external_id AS icon_external_id, u.timezone @@ -364,6 +365,7 @@ func (e *EntryQueryBuilder) GetEntries() (model.Entries, error) { &entry.Feed.Cookie, &entry.Feed.HideGlobally, &entry.Feed.NoMediaPlayer, + &entry.Feed.WebhookURL, &iconID, &externalIconID, &tz,