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

feat(ntfy): Add option to use internal links

This commit is contained in:
Brieuc Dubois 2025-01-13 09:58:24 +01:00 committed by Frédéric Guillot
parent e9520f5d1c
commit a702bf0342
26 changed files with 57 additions and 8 deletions

View file

@ -977,4 +977,9 @@ var migrations = []func(tx *sql.Tx, driver string) error{
_, err = tx.Exec(sql) _, err = tx.Exec(sql)
return err return err
}, },
func(tx *sql.Tx, _ string) (err error) {
sql := `ALTER TABLE integrations ADD COLUMN ntfy_internal_links bool default 'f';`
_, err = tx.Exec(sql)
return err
},
} }

View file

@ -506,6 +506,7 @@ func PushEntries(feed *model.Feed, entries model.Entries, userIntegrations *mode
userIntegrations.NtfyUsername, userIntegrations.NtfyUsername,
userIntegrations.NtfyPassword, userIntegrations.NtfyPassword,
userIntegrations.NtfyIconURL, userIntegrations.NtfyIconURL,
userIntegrations.NtfyInternalLinks,
feed.NtfyPriority, feed.NtfyPriority,
) )

View file

@ -9,8 +9,10 @@ import (
"fmt" "fmt"
"log/slog" "log/slog"
"net/http" "net/http"
"net/url"
"time" "time"
"miniflux.app/v2/internal/config"
"miniflux.app/v2/internal/model" "miniflux.app/v2/internal/model"
"miniflux.app/v2/internal/version" "miniflux.app/v2/internal/version"
) )
@ -22,14 +24,15 @@ const (
type Client struct { type Client struct {
ntfyURL, ntfyTopic, ntfyApiToken, ntfyUsername, ntfyPassword, ntfyIconURL string ntfyURL, ntfyTopic, ntfyApiToken, ntfyUsername, ntfyPassword, ntfyIconURL string
ntfyInternalLinks bool
ntfyPriority int ntfyPriority int
} }
func NewClient(ntfyURL, ntfyTopic, ntfyApiToken, ntfyUsername, ntfyPassword, ntfyIconURL string, ntfyPriority int) *Client { func NewClient(ntfyURL, ntfyTopic, ntfyApiToken, ntfyUsername, ntfyPassword, ntfyIconURL string, ntfyInternalLinks bool, ntfyPriority int) *Client {
if ntfyURL == "" { if ntfyURL == "" {
ntfyURL = defaultNtfyURL ntfyURL = defaultNtfyURL
} }
return &Client{ntfyURL, ntfyTopic, ntfyApiToken, ntfyUsername, ntfyPassword, ntfyIconURL, ntfyPriority} return &Client{ntfyURL, ntfyTopic, ntfyApiToken, ntfyUsername, ntfyPassword, ntfyIconURL, ntfyInternalLinks, ntfyPriority}
} }
func (c *Client) SendMessages(feed *model.Feed, entries model.Entries) error { func (c *Client) SendMessages(feed *model.Feed, entries model.Entries) error {
@ -46,12 +49,21 @@ func (c *Client) SendMessages(feed *model.Feed, entries model.Entries) error {
ntfyMessage.Icon = c.ntfyIconURL ntfyMessage.Icon = c.ntfyIconURL
} }
if c.ntfyInternalLinks {
url, err := url.Parse(config.Opts.BaseURL())
if err != nil {
slog.Error("Unable to parse base URL", slog.Any("error", err))
} else {
ntfyMessage.Click = fmt.Sprintf("%s%s%d", url, "/unread/entry/", entry.ID)
}
}
slog.Debug("Sending Ntfy message", slog.Debug("Sending Ntfy message",
slog.String("url", c.ntfyURL), slog.String("url", c.ntfyURL),
slog.String("topic", c.ntfyTopic), slog.String("topic", c.ntfyTopic),
slog.Int("priority", ntfyMessage.Priority), slog.Int("priority", ntfyMessage.Priority),
slog.String("message", ntfyMessage.Message), slog.String("message", ntfyMessage.Message),
slog.String("entry_url", entry.URL), slog.String("entry_url", ntfyMessage.Click),
) )
if err := c.makeRequest(ntfyMessage); err != nil { if err := c.makeRequest(ntfyMessage); err != nil {

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Ntfy-Benutzername (optional)", "form.integration.ntfy_username": "Ntfy-Benutzername (optional)",
"form.integration.ntfy_password": "Ntfy-Passwort (optional)", "form.integration.ntfy_password": "Ntfy-Passwort (optional)",
"form.integration.ntfy_icon_url": "Ntfy-Symbol-URL (optional)", "form.integration.ntfy_icon_url": "Ntfy-Symbol-URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Einträge zu Discord pushen", "form.integration.discord_activate": "Einträge zu Discord pushen",
"form.integration.discord_webhook_link": "Discord-Webhook-URL", "form.integration.discord_webhook_link": "Discord-Webhook-URL",
"form.api_key.label.description": "API-Schlüsselbezeichnung", "form.api_key.label.description": "API-Schlüsselbezeichnung",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "Ετικέτα κλειδιού API", "form.api_key.label.description": "Ετικέτα κλειδιού API",

View file

@ -511,6 +511,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.cubox_activate": "Save entries to Cubox", "form.integration.cubox_activate": "Save entries to Cubox",
"form.integration.cubox_api_link": "Cubox API link", "form.integration.cubox_api_link": "Cubox API link",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Nombre de usuario de Ntfy (opcional)", "form.integration.ntfy_username": "Nombre de usuario de Ntfy (opcional)",
"form.integration.ntfy_password": "Contraseña de Ntfy (opcional)", "form.integration.ntfy_password": "Contraseña de Ntfy (opcional)",
"form.integration.ntfy_icon_url": "URL del icono de Ntfy (opcional)", "form.integration.ntfy_icon_url": "URL del icono de Ntfy (opcional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Enviar artículos a Discord", "form.integration.discord_activate": "Enviar artículos a Discord",
"form.integration.discord_webhook_link": "URL de la Webhook de Discord", "form.integration.discord_webhook_link": "URL de la Webhook de Discord",
"form.api_key.label.description": "Etiqueta de clave API", "form.api_key.label.description": "Etiqueta de clave API",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "API Key Label", "form.api_key.label.description": "API Key Label",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Nom d'utilisateur Ntfy (optionnel)", "form.integration.ntfy_username": "Nom d'utilisateur Ntfy (optionnel)",
"form.integration.ntfy_password": "Mot de passe Ntfy (facultatif)", "form.integration.ntfy_password": "Mot de passe Ntfy (facultatif)",
"form.integration.ntfy_icon_url": "URL de l'icône Ntfy (facultatif)", "form.integration.ntfy_icon_url": "URL de l'icône Ntfy (facultatif)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Envoyer les articles vers Discord", "form.integration.discord_activate": "Envoyer les articles vers Discord",
"form.integration.discord_webhook_link": "URL du Webhook Discord", "form.integration.discord_webhook_link": "URL du Webhook Discord",
"form.api_key.label.description": "Libellé de la clé d'API", "form.api_key.label.description": "Libellé de la clé d'API",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "एपीआई कुंजी लेबल", "form.api_key.label.description": "एपीआई कुंजी लेबल",

View file

@ -503,6 +503,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "Label Kunci API", "form.api_key.label.description": "Label Kunci API",

View file

@ -514,6 +514,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.submit.loading": "Caricamento in corso...", "form.submit.loading": "Caricamento in corso...",

View file

@ -503,6 +503,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "API キーラベル", "form.api_key.label.description": "API キーラベル",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Ntfy gebruikersnaam (optioneel)", "form.integration.ntfy_username": "Ntfy gebruikersnaam (optioneel)",
"form.integration.ntfy_password": "Ntfy wachtwoord (optioneel)", "form.integration.ntfy_password": "Ntfy wachtwoord (optioneel)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optioneel)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optioneel)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Artikelen opslaan in Discord", "form.integration.discord_activate": "Artikelen opslaan in Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "API-sleutel omschrijving", "form.api_key.label.description": "API-sleutel omschrijving",

View file

@ -523,6 +523,7 @@
"form.integration.ntfy_username": "Login do ntfy (opcjonalny)", "form.integration.ntfy_username": "Login do ntfy (opcjonalny)",
"form.integration.ntfy_password": "Hasło do ntfy (opcjonalne)", "form.integration.ntfy_password": "Hasło do ntfy (opcjonalne)",
"form.integration.ntfy_icon_url": "Adres URL ikony ntfy (opcjonalny)", "form.integration.ntfy_icon_url": "Adres URL ikony ntfy (opcjonalny)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Przesyłaj wpisy do Discord", "form.integration.discord_activate": "Przesyłaj wpisy do Discord",
"form.integration.discord_webhook_link": "Adres URL Webhook Discord", "form.integration.discord_webhook_link": "Adres URL Webhook Discord",
"form.api_key.label.description": "Etykieta klucza API", "form.api_key.label.description": "Etykieta klucza API",

View file

@ -513,6 +513,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "Etiqueta da chave de API", "form.api_key.label.description": "Etiqueta da chave de API",

View file

@ -523,6 +523,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Отправить статьи в Discord", "form.integration.discord_activate": "Отправить статьи в Discord",
"form.integration.discord_webhook_link": "Ссылка на Discord Webhook", "form.integration.discord_webhook_link": "Ссылка на Discord Webhook",
"form.api_key.label.description": "Описание API-ключа", "form.api_key.label.description": "Описание API-ключа",

View file

@ -279,6 +279,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.feed.label.ntfy_activate": "Push entries to ntfy", "form.feed.label.ntfy_activate": "Push entries to ntfy",
"form.feed.label.ntfy_priority": "Ntfy priority", "form.feed.label.ntfy_priority": "Ntfy priority",
"form.feed.label.ntfy_max_priority": "Ntfy max priority", "form.feed.label.ntfy_max_priority": "Ntfy max priority",

View file

@ -523,6 +523,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "Push entries to Discord", "form.integration.discord_activate": "Push entries to Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "Назва ключа API", "form.api_key.label.description": "Назва ключа API",

View file

@ -503,6 +503,7 @@
"form.integration.ntfy_username": "Ntfy用户名可选", "form.integration.ntfy_username": "Ntfy用户名可选",
"form.integration.ntfy_password": "Ntfy密码可选", "form.integration.ntfy_password": "Ntfy密码可选",
"form.integration.ntfy_icon_url": "Ntfy图标URL可选", "form.integration.ntfy_icon_url": "Ntfy图标URL可选",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "将新文章推送到 Discord", "form.integration.discord_activate": "将新文章推送到 Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "API密钥标签", "form.api_key.label.description": "API密钥标签",

View file

@ -503,6 +503,7 @@
"form.integration.ntfy_username": "Ntfy Username (optional)", "form.integration.ntfy_username": "Ntfy Username (optional)",
"form.integration.ntfy_password": "Ntfy Password (optional)", "form.integration.ntfy_password": "Ntfy Password (optional)",
"form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)", "form.integration.ntfy_icon_url": "Ntfy Icon URL (optional)",
"form.integration.ntfy_internal_links": "Use internal links on click (optional)",
"form.integration.discord_activate": "推送文章到 Discord", "form.integration.discord_activate": "推送文章到 Discord",
"form.integration.discord_webhook_link": "Discord Webhook link", "form.integration.discord_webhook_link": "Discord Webhook link",
"form.api_key.label.description": "API金鑰標籤", "form.api_key.label.description": "API金鑰標籤",

View file

@ -104,6 +104,7 @@ type Integration struct {
NtfyUsername string NtfyUsername string
NtfyPassword string NtfyPassword string
NtfyIconURL string NtfyIconURL string
NtfyInternalLinks bool
CuboxEnabled bool CuboxEnabled bool
CuboxAPILink string CuboxAPILink string
DiscordEnabled bool DiscordEnabled bool

View file

@ -208,6 +208,7 @@ func (s *Storage) Integration(userID int64) (*model.Integration, error) {
ntfy_username, ntfy_username,
ntfy_password, ntfy_password,
ntfy_icon_url, ntfy_icon_url,
ntfy_internal_links,
cubox_enabled, cubox_enabled,
cubox_api_link, cubox_api_link,
discord_enabled, discord_enabled,
@ -318,6 +319,7 @@ func (s *Storage) Integration(userID int64) (*model.Integration, error) {
&integration.NtfyUsername, &integration.NtfyUsername,
&integration.NtfyPassword, &integration.NtfyPassword,
&integration.NtfyIconURL, &integration.NtfyIconURL,
&integration.NtfyInternalLinks,
&integration.CuboxEnabled, &integration.CuboxEnabled,
&integration.CuboxAPILink, &integration.CuboxAPILink,
&integration.DiscordEnabled, &integration.DiscordEnabled,
@ -437,12 +439,13 @@ func (s *Storage) UpdateIntegration(integration *model.Integration) error {
ntfy_username=$96, ntfy_username=$96,
ntfy_password=$97, ntfy_password=$97,
ntfy_icon_url=$98, ntfy_icon_url=$98,
cubox_enabled=$99, ntfy_internal_links=$99,
cubox_api_link=$100, cubox_enabled=$100,
discord_enabled=$101, cubox_api_link=$101,
discord_webhook_link=$102 discord_enabled=$102,
discord_webhook_link=$103
WHERE WHERE
user_id=$103 user_id=$104
` `
_, err := s.db.Exec( _, err := s.db.Exec(
query, query,
@ -544,6 +547,7 @@ func (s *Storage) UpdateIntegration(integration *model.Integration) error {
integration.NtfyUsername, integration.NtfyUsername,
integration.NtfyPassword, integration.NtfyPassword,
integration.NtfyIconURL, integration.NtfyIconURL,
integration.NtfyInternalLinks,
integration.CuboxEnabled, integration.CuboxEnabled,
integration.CuboxAPILink, integration.CuboxAPILink,
integration.DiscordEnabled, integration.DiscordEnabled,

View file

@ -316,6 +316,10 @@
<label for="form-ntfy-icon-url">{{ t "form.integration.ntfy_icon_url" }}</label> <label for="form-ntfy-icon-url">{{ t "form.integration.ntfy_icon_url" }}</label>
<input type="url" name="ntfy_icon_url" id="form-ntfy-icon-url" value="{{ .form.NtfyIconURL }}" spellcheck="false"> <input type="url" name="ntfy_icon_url" id="form-ntfy-icon-url" value="{{ .form.NtfyIconURL }}" spellcheck="false">
<label>
<input type="checkbox" name="ntfy_internal_links" value="1" {{ if .form.NtfyInternalLinks }}checked{{ end }}> {{ t "form.integration.ntfy_internal_links" }}
</label>
<div class="buttons"> <div class="buttons">
<button type="submit" class="button button-primary" data-label-loading="{{ t "form.submit.saving" }}">{{ t "action.update" }}</button> <button type="submit" class="button button-primary" data-label-loading="{{ t "form.submit.saving" }}">{{ t "action.update" }}</button>
</div> </div>

View file

@ -110,6 +110,7 @@ type IntegrationForm struct {
NtfyUsername string NtfyUsername string
NtfyPassword string NtfyPassword string
NtfyIconURL string NtfyIconURL string
NtfyInternalLinks bool
CuboxEnabled bool CuboxEnabled bool
CuboxAPILink string CuboxAPILink string
DiscordEnabled bool DiscordEnabled bool
@ -213,6 +214,7 @@ func (i IntegrationForm) Merge(integration *model.Integration) {
integration.NtfyUsername = i.NtfyUsername integration.NtfyUsername = i.NtfyUsername
integration.NtfyPassword = i.NtfyPassword integration.NtfyPassword = i.NtfyPassword
integration.NtfyIconURL = i.NtfyIconURL integration.NtfyIconURL = i.NtfyIconURL
integration.NtfyInternalLinks = i.NtfyInternalLinks
integration.CuboxEnabled = i.CuboxEnabled integration.CuboxEnabled = i.CuboxEnabled
integration.CuboxAPILink = i.CuboxAPILink integration.CuboxAPILink = i.CuboxAPILink
integration.DiscordEnabled = i.DiscordEnabled integration.DiscordEnabled = i.DiscordEnabled
@ -319,6 +321,7 @@ func NewIntegrationForm(r *http.Request) *IntegrationForm {
NtfyUsername: r.FormValue("ntfy_username"), NtfyUsername: r.FormValue("ntfy_username"),
NtfyPassword: r.FormValue("ntfy_password"), NtfyPassword: r.FormValue("ntfy_password"),
NtfyIconURL: r.FormValue("ntfy_icon_url"), NtfyIconURL: r.FormValue("ntfy_icon_url"),
NtfyInternalLinks: r.FormValue("ntfy_internal_links") == "1",
CuboxEnabled: r.FormValue("cubox_enabled") == "1", CuboxEnabled: r.FormValue("cubox_enabled") == "1",
CuboxAPILink: r.FormValue("cubox_api_link"), CuboxAPILink: r.FormValue("cubox_api_link"),
DiscordEnabled: r.FormValue("discord_enabled") == "1", DiscordEnabled: r.FormValue("discord_enabled") == "1",

View file

@ -124,6 +124,7 @@ func (h *handler) showIntegrationPage(w http.ResponseWriter, r *http.Request) {
NtfyUsername: integration.NtfyUsername, NtfyUsername: integration.NtfyUsername,
NtfyPassword: integration.NtfyPassword, NtfyPassword: integration.NtfyPassword,
NtfyIconURL: integration.NtfyIconURL, NtfyIconURL: integration.NtfyIconURL,
NtfyInternalLinks: integration.NtfyInternalLinks,
CuboxEnabled: integration.CuboxEnabled, CuboxEnabled: integration.CuboxEnabled,
CuboxAPILink: integration.CuboxAPILink, CuboxAPILink: integration.CuboxAPILink,
DiscordEnabled: integration.DiscordEnabled, DiscordEnabled: integration.DiscordEnabled,