1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-06 17:41:00 +00:00

feat(integration): prioritize feed-level webhook URL when available when saving entries

This commit is contained in:
Frédéric Guillot 2025-07-31 19:52:24 -07:00
parent 181e1341e1
commit 1f7843e313
2 changed files with 12 additions and 3 deletions

View file

@ -372,20 +372,27 @@ func SendEntry(entry *model.Entry, userIntegrations *model.Integration) {
} }
if userIntegrations.WebhookEnabled { 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.Debug("Sending entry to Webhook",
slog.Int64("user_id", userIntegrations.UserID), slog.Int64("user_id", userIntegrations.UserID),
slog.Int64("entry_id", entry.ID), slog.Int64("entry_id", entry.ID),
slog.String("entry_url", entry.URL), 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 { if err := webhookClient.SendSaveEntryWebhookEvent(entry); err != nil {
slog.Error("Unable to send entry to Webhook", slog.Error("Unable to send entry to Webhook",
slog.Int64("user_id", userIntegrations.UserID), slog.Int64("user_id", userIntegrations.UserID),
slog.Int64("entry_id", entry.ID), slog.Int64("entry_id", entry.ID),
slog.String("entry_url", entry.URL), slog.String("entry_url", entry.URL),
slog.String("webhook_url", userIntegrations.WebhookURL), slog.String("webhook_url", webhookURL),
slog.Any("error", err), slog.Any("error", err),
) )
} }

View file

@ -292,6 +292,7 @@ func (e *EntryQueryBuilder) GetEntries() (model.Entries, error) {
f.cookie, f.cookie,
f.hide_globally, f.hide_globally,
f.no_media_player, f.no_media_player,
f.webhook_url,
fi.icon_id, fi.icon_id,
i.external_id AS icon_external_id, i.external_id AS icon_external_id,
u.timezone u.timezone
@ -364,6 +365,7 @@ func (e *EntryQueryBuilder) GetEntries() (model.Entries, error) {
&entry.Feed.Cookie, &entry.Feed.Cookie,
&entry.Feed.HideGlobally, &entry.Feed.HideGlobally,
&entry.Feed.NoMediaPlayer, &entry.Feed.NoMediaPlayer,
&entry.Feed.WebhookURL,
&iconID, &iconID,
&externalIconID, &externalIconID,
&tz, &tz,