diff options
Diffstat (limited to 'internal/ui')
-rw-r--r-- | internal/ui/form/integration.go | 260 | ||||
-rw-r--r-- | internal/ui/integration_show.go | 121 |
2 files changed, 201 insertions, 180 deletions
diff --git a/internal/ui/form/integration.go b/internal/ui/form/integration.go index de7b1630..9484f122 100644 --- a/internal/ui/form/integration.go +++ b/internal/ui/form/integration.go @@ -5,73 +5,77 @@ package form // import "miniflux.app/v2/internal/ui/form" import ( "net/http" + "strconv" "miniflux.app/v2/internal/model" ) // IntegrationForm represents user integration settings form. type IntegrationForm struct { - PinboardEnabled bool - PinboardToken string - PinboardTags string - PinboardMarkAsUnread bool - InstapaperEnabled bool - InstapaperUsername string - InstapaperPassword string - FeverEnabled bool - FeverUsername string - FeverPassword string - GoogleReaderEnabled bool - GoogleReaderUsername string - GoogleReaderPassword string - WallabagEnabled bool - WallabagOnlyURL bool - WallabagURL string - WallabagClientID string - WallabagClientSecret string - WallabagUsername string - WallabagPassword string - NotionEnabled bool - NotionPageID string - NotionToken string - NunuxKeeperEnabled bool - NunuxKeeperURL string - NunuxKeeperAPIKey string - EspialEnabled bool - EspialURL string - EspialAPIKey string - EspialTags string - ReadwiseEnabled bool - ReadwiseAPIKey string - PocketEnabled bool - PocketAccessToken string - PocketConsumerKey string - TelegramBotEnabled bool - TelegramBotToken string - TelegramBotChatID string - LinkdingEnabled bool - LinkdingURL string - LinkdingAPIKey string - LinkdingTags string - LinkdingMarkAsUnread bool - MatrixBotEnabled bool - MatrixBotUser string - MatrixBotPassword string - MatrixBotURL string - MatrixBotChatID string - AppriseEnabled bool - AppriseURL string - AppriseServicesURL string - ShioriEnabled bool - ShioriURL string - ShioriUsername string - ShioriPassword string - ShaarliEnabled bool - ShaarliURL string - ShaarliAPISecret string - WebhookEnabled bool - WebhookURL string - WebhookSecret string + PinboardEnabled bool + PinboardToken string + PinboardTags string + PinboardMarkAsUnread bool + InstapaperEnabled bool + InstapaperUsername string + InstapaperPassword string + FeverEnabled bool + FeverUsername string + FeverPassword string + GoogleReaderEnabled bool + GoogleReaderUsername string + GoogleReaderPassword string + WallabagEnabled bool + WallabagOnlyURL bool + WallabagURL string + WallabagClientID string + WallabagClientSecret string + WallabagUsername string + WallabagPassword string + NotionEnabled bool + NotionPageID string + NotionToken string + NunuxKeeperEnabled bool + NunuxKeeperURL string + NunuxKeeperAPIKey string + EspialEnabled bool + EspialURL string + EspialAPIKey string + EspialTags string + ReadwiseEnabled bool + ReadwiseAPIKey string + PocketEnabled bool + PocketAccessToken string + PocketConsumerKey string + TelegramBotEnabled bool + TelegramBotToken string + TelegramBotChatID string + TelegramBotTopicID *int64 + TelegramBotDisableWebPagePreview bool + TelegramBotDisableNotification bool + LinkdingEnabled bool + LinkdingURL string + LinkdingAPIKey string + LinkdingTags string + LinkdingMarkAsUnread bool + MatrixBotEnabled bool + MatrixBotUser string + MatrixBotPassword string + MatrixBotURL string + MatrixBotChatID string + AppriseEnabled bool + AppriseURL string + AppriseServicesURL string + ShioriEnabled bool + ShioriURL string + ShioriUsername string + ShioriPassword string + ShaarliEnabled bool + ShaarliURL string + ShaarliAPISecret string + WebhookEnabled bool + WebhookURL string + WebhookSecret string } // Merge copy form values to the model. @@ -112,6 +116,9 @@ func (i IntegrationForm) Merge(integration *model.Integration) { integration.TelegramBotEnabled = i.TelegramBotEnabled integration.TelegramBotToken = i.TelegramBotToken integration.TelegramBotChatID = i.TelegramBotChatID + integration.TelegramBotTopicID = i.TelegramBotTopicID + integration.TelegramBotDisableWebPagePreview = i.TelegramBotDisableWebPagePreview + integration.TelegramBotDisableNotification = i.TelegramBotDisableNotification integration.LinkdingEnabled = i.LinkdingEnabled integration.LinkdingURL = i.LinkdingURL integration.LinkdingAPIKey = i.LinkdingAPIKey @@ -139,65 +146,76 @@ func (i IntegrationForm) Merge(integration *model.Integration) { // NewIntegrationForm returns a new IntegrationForm. func NewIntegrationForm(r *http.Request) *IntegrationForm { return &IntegrationForm{ - PinboardEnabled: r.FormValue("pinboard_enabled") == "1", - PinboardToken: r.FormValue("pinboard_token"), - PinboardTags: r.FormValue("pinboard_tags"), - PinboardMarkAsUnread: r.FormValue("pinboard_mark_as_unread") == "1", - InstapaperEnabled: r.FormValue("instapaper_enabled") == "1", - InstapaperUsername: r.FormValue("instapaper_username"), - InstapaperPassword: r.FormValue("instapaper_password"), - FeverEnabled: r.FormValue("fever_enabled") == "1", - FeverUsername: r.FormValue("fever_username"), - FeverPassword: r.FormValue("fever_password"), - GoogleReaderEnabled: r.FormValue("googlereader_enabled") == "1", - GoogleReaderUsername: r.FormValue("googlereader_username"), - GoogleReaderPassword: r.FormValue("googlereader_password"), - WallabagEnabled: r.FormValue("wallabag_enabled") == "1", - WallabagOnlyURL: r.FormValue("wallabag_only_url") == "1", - WallabagURL: r.FormValue("wallabag_url"), - WallabagClientID: r.FormValue("wallabag_client_id"), - WallabagClientSecret: r.FormValue("wallabag_client_secret"), - WallabagUsername: r.FormValue("wallabag_username"), - WallabagPassword: r.FormValue("wallabag_password"), - NotionEnabled: r.FormValue("notion_enabled") == "1", - NotionPageID: r.FormValue("notion_page_id"), - NotionToken: r.FormValue("notion_token"), - NunuxKeeperEnabled: r.FormValue("nunux_keeper_enabled") == "1", - NunuxKeeperURL: r.FormValue("nunux_keeper_url"), - NunuxKeeperAPIKey: r.FormValue("nunux_keeper_api_key"), - EspialEnabled: r.FormValue("espial_enabled") == "1", - EspialURL: r.FormValue("espial_url"), - EspialAPIKey: r.FormValue("espial_api_key"), - EspialTags: r.FormValue("espial_tags"), - ReadwiseEnabled: r.FormValue("readwise_enabled") == "1", - ReadwiseAPIKey: r.FormValue("readwise_api_key"), - PocketEnabled: r.FormValue("pocket_enabled") == "1", - PocketAccessToken: r.FormValue("pocket_access_token"), - PocketConsumerKey: r.FormValue("pocket_consumer_key"), - TelegramBotEnabled: r.FormValue("telegram_bot_enabled") == "1", - TelegramBotToken: r.FormValue("telegram_bot_token"), - TelegramBotChatID: r.FormValue("telegram_bot_chat_id"), - LinkdingEnabled: r.FormValue("linkding_enabled") == "1", - LinkdingURL: r.FormValue("linkding_url"), - LinkdingAPIKey: r.FormValue("linkding_api_key"), - LinkdingTags: r.FormValue("linkding_tags"), - LinkdingMarkAsUnread: r.FormValue("linkding_mark_as_unread") == "1", - MatrixBotEnabled: r.FormValue("matrix_bot_enabled") == "1", - MatrixBotUser: r.FormValue("matrix_bot_user"), - MatrixBotPassword: r.FormValue("matrix_bot_password"), - MatrixBotURL: r.FormValue("matrix_bot_url"), - MatrixBotChatID: r.FormValue("matrix_bot_chat_id"), - AppriseEnabled: r.FormValue("apprise_enabled") == "1", - AppriseURL: r.FormValue("apprise_url"), - AppriseServicesURL: r.FormValue("apprise_services_url"), - ShioriEnabled: r.FormValue("shiori_enabled") == "1", - ShioriURL: r.FormValue("shiori_url"), - ShioriUsername: r.FormValue("shiori_username"), - ShioriPassword: r.FormValue("shiori_password"), - ShaarliEnabled: r.FormValue("shaarli_enabled") == "1", - ShaarliURL: r.FormValue("shaarli_url"), - ShaarliAPISecret: r.FormValue("shaarli_api_secret"), - WebhookEnabled: r.FormValue("webhook_enabled") == "1", - WebhookURL: r.FormValue("webhook_url"), + PinboardEnabled: r.FormValue("pinboard_enabled") == "1", + PinboardToken: r.FormValue("pinboard_token"), + PinboardTags: r.FormValue("pinboard_tags"), + PinboardMarkAsUnread: r.FormValue("pinboard_mark_as_unread") == "1", + InstapaperEnabled: r.FormValue("instapaper_enabled") == "1", + InstapaperUsername: r.FormValue("instapaper_username"), + InstapaperPassword: r.FormValue("instapaper_password"), + FeverEnabled: r.FormValue("fever_enabled") == "1", + FeverUsername: r.FormValue("fever_username"), + FeverPassword: r.FormValue("fever_password"), + GoogleReaderEnabled: r.FormValue("googlereader_enabled") == "1", + GoogleReaderUsername: r.FormValue("googlereader_username"), + GoogleReaderPassword: r.FormValue("googlereader_password"), + WallabagEnabled: r.FormValue("wallabag_enabled") == "1", + WallabagOnlyURL: r.FormValue("wallabag_only_url") == "1", + WallabagURL: r.FormValue("wallabag_url"), + WallabagClientID: r.FormValue("wallabag_client_id"), + WallabagClientSecret: r.FormValue("wallabag_client_secret"), + WallabagUsername: r.FormValue("wallabag_username"), + WallabagPassword: r.FormValue("wallabag_password"), + NotionEnabled: r.FormValue("notion_enabled") == "1", + NotionPageID: r.FormValue("notion_page_id"), + NotionToken: r.FormValue("notion_token"), + NunuxKeeperEnabled: r.FormValue("nunux_keeper_enabled") == "1", + NunuxKeeperURL: r.FormValue("nunux_keeper_url"), + NunuxKeeperAPIKey: r.FormValue("nunux_keeper_api_key"), + EspialEnabled: r.FormValue("espial_enabled") == "1", + EspialURL: r.FormValue("espial_url"), + EspialAPIKey: r.FormValue("espial_api_key"), + EspialTags: r.FormValue("espial_tags"), + ReadwiseEnabled: r.FormValue("readwise_enabled") == "1", + ReadwiseAPIKey: r.FormValue("readwise_api_key"), + PocketEnabled: r.FormValue("pocket_enabled") == "1", + PocketAccessToken: r.FormValue("pocket_access_token"), + PocketConsumerKey: r.FormValue("pocket_consumer_key"), + TelegramBotEnabled: r.FormValue("telegram_bot_enabled") == "1", + TelegramBotToken: r.FormValue("telegram_bot_token"), + TelegramBotChatID: r.FormValue("telegram_bot_chat_id"), + TelegramBotTopicID: optionalInt64Field(r.FormValue("telegram_bot_topic_id")), + TelegramBotDisableWebPagePreview: r.FormValue("telegram_bot_disable_web_page_preview") == "1", + TelegramBotDisableNotification: r.FormValue("telegram_bot_disable_notification") == "1", + LinkdingEnabled: r.FormValue("linkding_enabled") == "1", + LinkdingURL: r.FormValue("linkding_url"), + LinkdingAPIKey: r.FormValue("linkding_api_key"), + LinkdingTags: r.FormValue("linkding_tags"), + LinkdingMarkAsUnread: r.FormValue("linkding_mark_as_unread") == "1", + MatrixBotEnabled: r.FormValue("matrix_bot_enabled") == "1", + MatrixBotUser: r.FormValue("matrix_bot_user"), + MatrixBotPassword: r.FormValue("matrix_bot_password"), + MatrixBotURL: r.FormValue("matrix_bot_url"), + MatrixBotChatID: r.FormValue("matrix_bot_chat_id"), + AppriseEnabled: r.FormValue("apprise_enabled") == "1", + AppriseURL: r.FormValue("apprise_url"), + AppriseServicesURL: r.FormValue("apprise_services_url"), + ShioriEnabled: r.FormValue("shiori_enabled") == "1", + ShioriURL: r.FormValue("shiori_url"), + ShioriUsername: r.FormValue("shiori_username"), + ShioriPassword: r.FormValue("shiori_password"), + ShaarliEnabled: r.FormValue("shaarli_enabled") == "1", + ShaarliURL: r.FormValue("shaarli_url"), + ShaarliAPISecret: r.FormValue("shaarli_api_secret"), + WebhookEnabled: r.FormValue("webhook_enabled") == "1", + WebhookURL: r.FormValue("webhook_url"), } } + +func optionalInt64Field(formValue string) *int64 { + if formValue == "" { + return nil + } + value, _ := strconv.ParseInt(formValue, 10, 64) + return &value +} diff --git a/internal/ui/integration_show.go b/internal/ui/integration_show.go index abde5348..9f091774 100644 --- a/internal/ui/integration_show.go +++ b/internal/ui/integration_show.go @@ -28,65 +28,68 @@ func (h *handler) showIntegrationPage(w http.ResponseWriter, r *http.Request) { } integrationForm := form.IntegrationForm{ - PinboardEnabled: integration.PinboardEnabled, - PinboardToken: integration.PinboardToken, - PinboardTags: integration.PinboardTags, - PinboardMarkAsUnread: integration.PinboardMarkAsUnread, - InstapaperEnabled: integration.InstapaperEnabled, - InstapaperUsername: integration.InstapaperUsername, - InstapaperPassword: integration.InstapaperPassword, - FeverEnabled: integration.FeverEnabled, - FeverUsername: integration.FeverUsername, - GoogleReaderEnabled: integration.GoogleReaderEnabled, - GoogleReaderUsername: integration.GoogleReaderUsername, - WallabagEnabled: integration.WallabagEnabled, - WallabagOnlyURL: integration.WallabagOnlyURL, - WallabagURL: integration.WallabagURL, - WallabagClientID: integration.WallabagClientID, - WallabagClientSecret: integration.WallabagClientSecret, - WallabagUsername: integration.WallabagUsername, - WallabagPassword: integration.WallabagPassword, - NotionEnabled: integration.NotionEnabled, - NotionPageID: integration.NotionPageID, - NotionToken: integration.NotionToken, - NunuxKeeperEnabled: integration.NunuxKeeperEnabled, - NunuxKeeperURL: integration.NunuxKeeperURL, - NunuxKeeperAPIKey: integration.NunuxKeeperAPIKey, - EspialEnabled: integration.EspialEnabled, - EspialURL: integration.EspialURL, - EspialAPIKey: integration.EspialAPIKey, - EspialTags: integration.EspialTags, - ReadwiseEnabled: integration.ReadwiseEnabled, - ReadwiseAPIKey: integration.ReadwiseAPIKey, - PocketEnabled: integration.PocketEnabled, - PocketAccessToken: integration.PocketAccessToken, - PocketConsumerKey: integration.PocketConsumerKey, - TelegramBotEnabled: integration.TelegramBotEnabled, - TelegramBotToken: integration.TelegramBotToken, - TelegramBotChatID: integration.TelegramBotChatID, - LinkdingEnabled: integration.LinkdingEnabled, - LinkdingURL: integration.LinkdingURL, - LinkdingAPIKey: integration.LinkdingAPIKey, - LinkdingTags: integration.LinkdingTags, - LinkdingMarkAsUnread: integration.LinkdingMarkAsUnread, - MatrixBotEnabled: integration.MatrixBotEnabled, - MatrixBotUser: integration.MatrixBotUser, - MatrixBotPassword: integration.MatrixBotPassword, - MatrixBotURL: integration.MatrixBotURL, - MatrixBotChatID: integration.MatrixBotChatID, - AppriseEnabled: integration.AppriseEnabled, - AppriseURL: integration.AppriseURL, - AppriseServicesURL: integration.AppriseServicesURL, - ShioriEnabled: integration.ShioriEnabled, - ShioriURL: integration.ShioriURL, - ShioriUsername: integration.ShioriUsername, - ShioriPassword: integration.ShioriPassword, - ShaarliEnabled: integration.ShaarliEnabled, - ShaarliURL: integration.ShaarliURL, - ShaarliAPISecret: integration.ShaarliAPISecret, - WebhookEnabled: integration.WebhookEnabled, - WebhookURL: integration.WebhookURL, - WebhookSecret: integration.WebhookSecret, + PinboardEnabled: integration.PinboardEnabled, + PinboardToken: integration.PinboardToken, + PinboardTags: integration.PinboardTags, + PinboardMarkAsUnread: integration.PinboardMarkAsUnread, + InstapaperEnabled: integration.InstapaperEnabled, + InstapaperUsername: integration.InstapaperUsername, + InstapaperPassword: integration.InstapaperPassword, + FeverEnabled: integration.FeverEnabled, + FeverUsername: integration.FeverUsername, + GoogleReaderEnabled: integration.GoogleReaderEnabled, + GoogleReaderUsername: integration.GoogleReaderUsername, + WallabagEnabled: integration.WallabagEnabled, + WallabagOnlyURL: integration.WallabagOnlyURL, + WallabagURL: integration.WallabagURL, + WallabagClientID: integration.WallabagClientID, + WallabagClientSecret: integration.WallabagClientSecret, + WallabagUsername: integration.WallabagUsername, + WallabagPassword: integration.WallabagPassword, + NotionEnabled: integration.NotionEnabled, + NotionPageID: integration.NotionPageID, + NotionToken: integration.NotionToken, + NunuxKeeperEnabled: integration.NunuxKeeperEnabled, + NunuxKeeperURL: integration.NunuxKeeperURL, + NunuxKeeperAPIKey: integration.NunuxKeeperAPIKey, + EspialEnabled: integration.EspialEnabled, + EspialURL: integration.EspialURL, + EspialAPIKey: integration.EspialAPIKey, + EspialTags: integration.EspialTags, + ReadwiseEnabled: integration.ReadwiseEnabled, + ReadwiseAPIKey: integration.ReadwiseAPIKey, + PocketEnabled: integration.PocketEnabled, + PocketAccessToken: integration.PocketAccessToken, + PocketConsumerKey: integration.PocketConsumerKey, + TelegramBotEnabled: integration.TelegramBotEnabled, + TelegramBotToken: integration.TelegramBotToken, + TelegramBotChatID: integration.TelegramBotChatID, + TelegramBotTopicID: integration.TelegramBotTopicID, + TelegramBotDisableWebPagePreview: integration.TelegramBotDisableWebPagePreview, + TelegramBotDisableNotification: integration.TelegramBotDisableNotification, + LinkdingEnabled: integration.LinkdingEnabled, + LinkdingURL: integration.LinkdingURL, + LinkdingAPIKey: integration.LinkdingAPIKey, + LinkdingTags: integration.LinkdingTags, + LinkdingMarkAsUnread: integration.LinkdingMarkAsUnread, + MatrixBotEnabled: integration.MatrixBotEnabled, + MatrixBotUser: integration.MatrixBotUser, + MatrixBotPassword: integration.MatrixBotPassword, + MatrixBotURL: integration.MatrixBotURL, + MatrixBotChatID: integration.MatrixBotChatID, + AppriseEnabled: integration.AppriseEnabled, + AppriseURL: integration.AppriseURL, + AppriseServicesURL: integration.AppriseServicesURL, + ShioriEnabled: integration.ShioriEnabled, + ShioriURL: integration.ShioriURL, + ShioriUsername: integration.ShioriUsername, + ShioriPassword: integration.ShioriPassword, + ShaarliEnabled: integration.ShaarliEnabled, + ShaarliURL: integration.ShaarliURL, + ShaarliAPISecret: integration.ShaarliAPISecret, + WebhookEnabled: integration.WebhookEnabled, + WebhookURL: integration.WebhookURL, + WebhookSecret: integration.WebhookSecret, } sess := session.New(h.store, request.SessionID(r)) |