From 80ca9b240b471510c09375d2197c214344bcb49c Mon Sep 17 00:00:00 2001 From: Uziskull Date: Mon, 24 Feb 2025 01:41:51 +0000 Subject: [PATCH] feat(integrations/ntfy): make ntfy topics configurable per feed, with default one as fallback --- internal/database/migrations.go | 7 +++++++ internal/integration/integration.go | 7 ++++++- internal/locale/translations/de_DE.json | 3 ++- internal/locale/translations/el_EL.json | 3 ++- internal/locale/translations/en_US.json | 3 ++- internal/locale/translations/es_ES.json | 3 ++- internal/locale/translations/fi_FI.json | 3 ++- internal/locale/translations/fr_FR.json | 3 ++- internal/locale/translations/hi_IN.json | 3 ++- internal/locale/translations/id_ID.json | 3 ++- internal/locale/translations/it_IT.json | 3 ++- internal/locale/translations/ja_JP.json | 3 ++- internal/locale/translations/nan_Latn_pehoeji.json | 3 ++- internal/locale/translations/nl_NL.json | 3 ++- internal/locale/translations/pl_PL.json | 3 ++- internal/locale/translations/pt_BR.json | 3 ++- internal/locale/translations/ru_RU.json | 3 ++- internal/locale/translations/tr_TR.json | 3 ++- internal/locale/translations/uk_UA.json | 3 ++- internal/locale/translations/zh_CN.json | 3 ++- internal/locale/translations/zh_TW.json | 3 ++- internal/model/feed.go | 1 + internal/storage/feed.go | 8 +++++--- internal/storage/feed_query_builder.go | 2 ++ internal/template/templates/views/edit_feed.html | 6 ++++++ internal/ui/feed_edit.go | 1 + internal/ui/form/feed.go | 3 +++ 27 files changed, 69 insertions(+), 23 deletions(-) diff --git a/internal/database/migrations.go b/internal/database/migrations.go index a37db28a8bf..2580c1c4923 100644 --- a/internal/database/migrations.go +++ b/internal/database/migrations.go @@ -1008,4 +1008,11 @@ var migrations = []func(tx *sql.Tx, driver string) error{ _, err = tx.Exec(sql) return err }, + func(tx *sql.Tx, _ string) (err error) { + sql := ` + ALTER TABLE feeds ADD COLUMN ntfy_topic text default ''; + ` + _, err = tx.Exec(sql) + return err + }, } diff --git a/internal/integration/integration.go b/internal/integration/integration.go index b1011f4d9f1..fc4c7c64a9b 100644 --- a/internal/integration/integration.go +++ b/internal/integration/integration.go @@ -502,15 +502,20 @@ func PushEntries(feed *model.Feed, entries model.Entries, userIntegrations *mode } if userIntegrations.NtfyEnabled && feed.NtfyEnabled { + ntfyTopic := feed.NtfyTopic + if ntfyTopic == "" { + ntfyTopic = userIntegrations.NtfyTopic + } slog.Debug("Sending new entries to Ntfy", slog.Int64("user_id", userIntegrations.UserID), slog.Int("nb_entries", len(entries)), slog.Int64("feed_id", feed.ID), + slog.String("topic", ntfyTopic), ) client := ntfy.NewClient( userIntegrations.NtfyURL, - userIntegrations.NtfyTopic, + ntfyTopic, userIntegrations.NtfyAPIToken, userIntegrations.NtfyUsername, userIntegrations.NtfyPassword, diff --git a/internal/locale/translations/de_DE.json b/internal/locale/translations/de_DE.json index 79be3e598e6..7940fbffe04 100644 --- a/internal/locale/translations/de_DE.json +++ b/internal/locale/translations/de_DE.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Höchste Ntfy-Priorität", "form.feed.label.ntfy_min_priority": "Niedrigste Ntfy-Priorität", "form.feed.label.ntfy_priority": "Ntfy-Priorität", + "form.feed.label.ntfy_topic": "Ntfy-Thema (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy-Symbol-URL (optional)", "form.integration.ntfy_internal_links": "Interne Links beim Klicken verwenden (optional)", "form.integration.ntfy_password": "Ntfy-Passwort (optional)", - "form.integration.ntfy_topic": "Ntfy-Thema", + "form.integration.ntfy_topic": "Ntfy-Thema (Standard, wenn nicht im Feed eingestellt)", "form.integration.ntfy_url": "Ntfy-URL (optional, Standard ist ntfy.sh)", "form.integration.ntfy_username": "Ntfy-Benutzername (optional)", "form.integration.nunux_keeper_activate": "Artikel in Nunux Keeper speichern", diff --git a/internal/locale/translations/el_EL.json b/internal/locale/translations/el_EL.json index 2ec8a49e8a2..2dddc71d49b 100644 --- a/internal/locale/translations/el_EL.json +++ b/internal/locale/translations/el_EL.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Αποθήκευση άρθρων στο Nunux Keeper", diff --git a/internal/locale/translations/en_US.json b/internal/locale/translations/en_US.json index 9bbcc3412ed..e5d2145954f 100644 --- a/internal/locale/translations/en_US.json +++ b/internal/locale/translations/en_US.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to Pushover", "form.feed.label.pushover_default_priority": "Default priority", "form.feed.label.pushover_high_priority": "High priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Save entries to Nunux Keeper", diff --git a/internal/locale/translations/es_ES.json b/internal/locale/translations/es_ES.json index 83caffc86f9..dd968a6ce6c 100644 --- a/internal/locale/translations/es_ES.json +++ b/internal/locale/translations/es_ES.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Prioridad máxima a Ntfy", "form.feed.label.ntfy_min_priority": "Prioridad mínima a Ntfy", "form.feed.label.ntfy_priority": "Prioridad Ntfy", + "form.feed.label.ntfy_topic": "Tema Ntfy (opcional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "URL del icono de Ntfy (opcional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Contraseña de Ntfy (opcional)", - "form.integration.ntfy_topic": "Tema Ntfy", + "form.integration.ntfy_topic": "Tema Ntfy (por defecto, si no se establece en el feed)", "form.integration.ntfy_url": "URL de Ntfy (opcional, la predeterminada es ntfy.sh)", "form.integration.ntfy_username": "Nombre de usuario de Ntfy (opcional)", "form.integration.nunux_keeper_activate": "Enviar artículos a Nunux Keeper", diff --git a/internal/locale/translations/fi_FI.json b/internal/locale/translations/fi_FI.json index f729d678e3a..44ec8e5ca71 100644 --- a/internal/locale/translations/fi_FI.json +++ b/internal/locale/translations/fi_FI.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Tallenna artikkelit Nunux Keeperiin", diff --git a/internal/locale/translations/fr_FR.json b/internal/locale/translations/fr_FR.json index 67b223dec63..f75b876a0bf 100644 --- a/internal/locale/translations/fr_FR.json +++ b/internal/locale/translations/fr_FR.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Priorité maximale de notification", "form.feed.label.ntfy_min_priority": "Priorité minimale de notification", "form.feed.label.ntfy_priority": "Priorité de notification", + "form.feed.label.ntfy_topic": "Sujet Ntfy (facultatif)", "form.feed.label.pushover_activate": "Activer les notifications vers Pushover", "form.feed.label.pushover_default_priority": "Priorité par défaut", "form.feed.label.pushover_high_priority": "Priorité élevée", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "URL de l'icône Ntfy (facultatif)", "form.integration.ntfy_internal_links": "Utiliser les liens internes vers Miniflux (facultatif)", "form.integration.ntfy_password": "Mot de passe Ntfy (facultatif)", - "form.integration.ntfy_topic": "Sujet Ntfy", + "form.integration.ntfy_topic": "Sujet Ntfy (défaut s'il n'est pas défini dans le flux)", "form.integration.ntfy_url": "URL de Ntfy (optionnel, ntfy.sh par défaut)", "form.integration.ntfy_username": "Nom d'utilisateur Ntfy (optionnel)", "form.integration.nunux_keeper_activate": "Sauvegarder les articles vers Nunux Keeper", diff --git a/internal/locale/translations/hi_IN.json b/internal/locale/translations/hi_IN.json index 84dd7328a5b..21276e628d8 100644 --- a/internal/locale/translations/hi_IN.json +++ b/internal/locale/translations/hi_IN.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "विषय-वस्तु को ननक्स कीपर में सहेजें", diff --git a/internal/locale/translations/id_ID.json b/internal/locale/translations/id_ID.json index e8b6d163ecf..4b884157410 100644 --- a/internal/locale/translations/id_ID.json +++ b/internal/locale/translations/id_ID.json @@ -184,6 +184,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -252,7 +253,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Simpan artikel ke Nunux Keeper", diff --git a/internal/locale/translations/it_IT.json b/internal/locale/translations/it_IT.json index be21ece70ff..637ef890593 100644 --- a/internal/locale/translations/it_IT.json +++ b/internal/locale/translations/it_IT.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Salva gli articoli su Nunux Keeper", diff --git a/internal/locale/translations/ja_JP.json b/internal/locale/translations/ja_JP.json index 39116bf5018..301ac7f8f14 100644 --- a/internal/locale/translations/ja_JP.json +++ b/internal/locale/translations/ja_JP.json @@ -184,6 +184,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -252,7 +253,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default used if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Nunux Keeper に記事を保存する", diff --git a/internal/locale/translations/nan_Latn_pehoeji.json b/internal/locale/translations/nan_Latn_pehoeji.json index 97ba04363c9..606add4594c 100644 --- a/internal/locale/translations/nan_Latn_pehoeji.json +++ b/internal/locale/translations/nan_Latn_pehoeji.json @@ -184,6 +184,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy siōng koân iu-sian sūn-sū", "form.feed.label.ntfy_min_priority": "Ntfy siōng kē iu-sian sūn-sū", "form.feed.label.ntfy_priority": "Ntfy iu-sian sūn-sū", + "form.feed.label.ntfy_topic": "Ntfy topic (soán thiⁿ)", "form.feed.label.pushover_activate": "Push entries to Pushover", "form.feed.label.pushover_default_priority": "Default priority", "form.feed.label.pushover_high_priority": "High priority", @@ -252,7 +253,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon bāng-chí (soán thiⁿ)", "form.integration.ntfy_internal_links": "Tiám ê sî-chūn iōng lāi-pō͘ liân-kiat (soán thiⁿ)", "form.integration.ntfy_password": "Ntfy bi̍t-bé (soán thiⁿ)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (chhī-liāu nā bô siat-tēng, tiō iōng ī-siat-ti̍t)", "form.integration.ntfy_url": "Ntfy bāng-chí (soán thiⁿ, ū-siat sī ntfy.sh)", "form.integration.ntfy_username": "Ntfy kháu-chō miâ (soán thiⁿ)", "form.integration.nunux_keeper_activate": "Pó-chûn siau-sit kàu Nunux Keeper", diff --git a/internal/locale/translations/nl_NL.json b/internal/locale/translations/nl_NL.json index ec180a60649..ede9619682e 100644 --- a/internal/locale/translations/nl_NL.json +++ b/internal/locale/translations/nl_NL.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy maximale prioriteit", "form.feed.label.ntfy_min_priority": "Ntfy minimale prioriteit", "form.feed.label.ntfy_priority": "Ntfy prioriteit", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optioneel)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy wachtwoord (optioneel)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (standaard gebruikt als deze niet is ingesteld in feed)", "form.integration.ntfy_url": "Ntfy URL (optioneel, standaard is ntfy.sh)", "form.integration.ntfy_username": "Ntfy gebruikersnaam (optioneel)", "form.integration.nunux_keeper_activate": "Artikelen opslaan in Nunux Keeper", diff --git a/internal/locale/translations/pl_PL.json b/internal/locale/translations/pl_PL.json index 7a9f4a3018e..9013dbb24c8 100644 --- a/internal/locale/translations/pl_PL.json +++ b/internal/locale/translations/pl_PL.json @@ -188,6 +188,7 @@ "form.feed.label.ntfy_max_priority": "Maksymalny priorytet ntfy", "form.feed.label.ntfy_min_priority": "Minimalny priorytet ntfy", "form.feed.label.ntfy_priority": "Priorytet ntfy", + "form.feed.label.ntfy_topic": "Temay ntfy (opcjonalne)", "form.feed.label.pushover_activate": "Prześlij wpisy do pushover.net", "form.feed.label.pushover_default_priority": "Domyślny priorytet Pushover", "form.feed.label.pushover_high_priority": "Wysoki priorytet Pushover", @@ -256,7 +257,7 @@ "form.integration.ntfy_icon_url": "Adres URL ikony ntfy (opcjonalny)", "form.integration.ntfy_internal_links": "Używaj łączy wewnętrznych po kliknięciu (opcjonalnie)", "form.integration.ntfy_password": "Hasło do ntfy (opcjonalne)", - "form.integration.ntfy_topic": "Temay ntfy", + "form.integration.ntfy_topic": "Temay ntfy (domyślny, jeśli nie został ustawiony w kanale)", "form.integration.ntfy_url": "Adres URL ntfy (opcjonalny, domyślny to ntfy.sh)", "form.integration.ntfy_username": "Login do ntfy (opcjonalny)", "form.integration.nunux_keeper_activate": "Zapisuj wpisy w Nunux Keeper", diff --git a/internal/locale/translations/pt_BR.json b/internal/locale/translations/pt_BR.json index 47bb76fdb52..dd983a394c6 100644 --- a/internal/locale/translations/pt_BR.json +++ b/internal/locale/translations/pt_BR.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Salvar itens no Nunux Keeper", diff --git a/internal/locale/translations/ru_RU.json b/internal/locale/translations/ru_RU.json index 4692ce3bee4..728799bb8c9 100644 --- a/internal/locale/translations/ru_RU.json +++ b/internal/locale/translations/ru_RU.json @@ -188,6 +188,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -256,7 +257,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Сохранять статьи в Nunux Keeper", diff --git a/internal/locale/translations/tr_TR.json b/internal/locale/translations/tr_TR.json index 1b649a030af..852bbd89685 100644 --- a/internal/locale/translations/tr_TR.json +++ b/internal/locale/translations/tr_TR.json @@ -186,6 +186,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -254,7 +255,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Makaleleri Nunux Keeper'a kaydet", diff --git a/internal/locale/translations/uk_UA.json b/internal/locale/translations/uk_UA.json index 0f9d26eb1f0..6468a780e8b 100644 --- a/internal/locale/translations/uk_UA.json +++ b/internal/locale/translations/uk_UA.json @@ -188,6 +188,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_min_priority": "Ntfy min priority", "form.feed.label.ntfy_priority": "Ntfy priority", + "form.feed.label.ntfy_topic": "Ntfy topic (optional)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -256,7 +257,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (default if not set in feed)", "form.integration.ntfy_url": "Ntfy URL (optional, default is ntfy.sh)", "form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.nunux_keeper_activate": "Зберігати статті до Nunux Keeper", diff --git a/internal/locale/translations/zh_CN.json b/internal/locale/translations/zh_CN.json index 1324de9e805..1a7e2d3bdb7 100644 --- a/internal/locale/translations/zh_CN.json +++ b/internal/locale/translations/zh_CN.json @@ -184,6 +184,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy最高优先级", "form.feed.label.ntfy_min_priority": "Ntfy最低优先级", "form.feed.label.ntfy_priority": "Ntfy优先级", + "form.feed.label.ntfy_topic": "Ntfy主题(可选)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -252,7 +253,7 @@ "form.integration.ntfy_icon_url": "Ntfy图标URL(可选)", "form.integration.ntfy_internal_links": "Use internal links on click (optional)", "form.integration.ntfy_password": "Ntfy密码(可选)", - "form.integration.ntfy_topic": "Ntfy主题", + "form.integration.ntfy_topic": "Ntfy主题(預設,如果未在此源中定義)", "form.integration.ntfy_url": "Ntfy URL(可选,默认为ntfy.sh)", "form.integration.ntfy_username": "Ntfy用户名(可选)", "form.integration.nunux_keeper_activate": "保存文章到 Nunux Keeper", diff --git a/internal/locale/translations/zh_TW.json b/internal/locale/translations/zh_TW.json index c9be77bda9a..860fcff24c0 100644 --- a/internal/locale/translations/zh_TW.json +++ b/internal/locale/translations/zh_TW.json @@ -184,6 +184,7 @@ "form.feed.label.ntfy_max_priority": "Ntfy 最高優先順序", "form.feed.label.ntfy_min_priority": "Ntfy 最低優先順序", "form.feed.label.ntfy_priority": "Ntfy 優先順序", + "form.feed.label.ntfy_topic": "Ntfy topic (選填)", "form.feed.label.pushover_activate": "Push entries to pushover.net", "form.feed.label.pushover_default_priority": "Pushover default priority", "form.feed.label.pushover_high_priority": "Pushover high priority", @@ -252,7 +253,7 @@ "form.integration.ntfy_icon_url": "Ntfy Icon 網址 (選填)", "form.integration.ntfy_internal_links": "點選時使用內部連結 (選填)", "form.integration.ntfy_password": "Ntfy 密碼 (選填)", - "form.integration.ntfy_topic": "Ntfy topic", + "form.integration.ntfy_topic": "Ntfy topic (飼料若無設定,則使用預設值)", "form.integration.ntfy_url": "Ntfy 網址 (選填,預設為 ntfy.sh)", "form.integration.ntfy_username": "Ntfy 使用者名稱 (選填)", "form.integration.nunux_keeper_activate": "儲存文章到 Nunux Keeper", diff --git a/internal/model/feed.go b/internal/model/feed.go index f5d0f4248f1..585365d377b 100644 --- a/internal/model/feed.go +++ b/internal/model/feed.go @@ -56,6 +56,7 @@ type Feed struct { WebhookURL string `json:"webhook_url"` NtfyEnabled bool `json:"ntfy_enabled"` NtfyPriority int `json:"ntfy_priority"` + NtfyTopic string `json:"ntfy_topic"` PushoverEnabled bool `json:"pushover_enabled,omitempty"` PushoverPriority int `json:"pushover_priority,omitempty"` diff --git a/internal/storage/feed.go b/internal/storage/feed.go index 4480e177e91..835bcd3f9c5 100644 --- a/internal/storage/feed.go +++ b/internal/storage/feed.go @@ -361,10 +361,11 @@ func (s *Storage) UpdateFeed(feed *model.Feed) (err error) { description=$30, ntfy_enabled=$31, ntfy_priority=$32, - pushover_enabled=$33, - pushover_priority=$34 + ntfy_topic=$33, + pushover_enabled=$34, + pushover_priority=$35 WHERE - id=$35 AND user_id=$36 + id=$36 AND user_id=$37 ` _, err = s.db.Exec(query, feed.FeedURL, @@ -399,6 +400,7 @@ func (s *Storage) UpdateFeed(feed *model.Feed) (err error) { feed.Description, feed.NtfyEnabled, feed.NtfyPriority, + feed.NtfyTopic, feed.PushoverEnabled, feed.PushoverPriority, feed.ID, diff --git a/internal/storage/feed_query_builder.go b/internal/storage/feed_query_builder.go index e7982031782..e421535f54e 100644 --- a/internal/storage/feed_query_builder.go +++ b/internal/storage/feed_query_builder.go @@ -169,6 +169,7 @@ func (f *FeedQueryBuilder) GetFeeds() (model.Feeds, error) { f.disable_http2, f.ntfy_enabled, f.ntfy_priority, + f.ntfy_topic, f.pushover_enabled, f.pushover_priority FROM @@ -242,6 +243,7 @@ func (f *FeedQueryBuilder) GetFeeds() (model.Feeds, error) { &feed.DisableHTTP2, &feed.NtfyEnabled, &feed.NtfyPriority, + &feed.NtfyTopic, &feed.PushoverEnabled, &feed.PushoverPriority, ) diff --git a/internal/template/templates/views/edit_feed.html b/internal/template/templates/views/edit_feed.html index c9179e3e9db..8daa9f3b7aa 100644 --- a/internal/template/templates/views/edit_feed.html +++ b/internal/template/templates/views/edit_feed.html @@ -191,6 +191,12 @@

{{ t "page.edit_feed.last_parsing_error" }}

Ntfy +
+ +
+