From d3e3667405738218f4ea86557bea654c23585ecc Mon Sep 17 00:00:00 2001 From: ssrtw Date: Wed, 12 Jun 2024 03:28:43 +0000 Subject: [PATCH] fix: add detailed mode flag to fix RSS logic conflict --- internal/feed/rss.go | 49 ++++++++++++++++++++++-------------------- internal/widget/rss.go | 5 ++--- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/internal/feed/rss.go b/internal/feed/rss.go index 4d22af6..8260876 100644 --- a/internal/feed/rss.go +++ b/internal/feed/rss.go @@ -49,6 +49,7 @@ type RSSFeedRequest struct { HideCategories bool `yaml:"hide-categories"` HideDescription bool `yaml:"hide-description"` ItemLinkPrefix string `yaml:"item-link-prefix"` + IsDetailed bool } type RSSFeedItems []RSSFeedItem @@ -107,34 +108,36 @@ func getItemsFromRSSFeedTask(request RSSFeedRequest) ([]RSSFeedItem, error) { } } - if !request.HideDescription && item.Description != "" { - description, _ := limitStringLength(item.Description, 1000) - description = sanitizeFeedDescription(description) - description, limited := limitStringLength(description, 200) + if request.IsDetailed { + if !request.HideDescription && item.Description != "" { + description, _ := limitStringLength(item.Description, 1000) + description = sanitizeFeedDescription(description) + description, limited := limitStringLength(description, 200) - if limited { - description += "…" - } - - rssItem.Description = description - } - - if !request.HideCategories { - var categories = make([]string, 0, 6) - - for _, category := range item.Categories { - if len(categories) == 6 { - break + if limited { + description += "…" } - if len(category) == 0 || len(category) > 30 { - continue - } - - categories = append(categories, category) + rssItem.Description = description } - rssItem.Categories = categories + if !request.HideCategories { + var categories = make([]string, 0, 6) + + for _, category := range item.Categories { + if len(categories) == 6 { + break + } + + if len(category) == 0 || len(category) > 30 { + continue + } + + categories = append(categories, category) + } + + rssItem.Categories = categories + } } if request.Title != "" { diff --git a/internal/widget/rss.go b/internal/widget/rss.go index 1d8ce9e..de89ec3 100644 --- a/internal/widget/rss.go +++ b/internal/widget/rss.go @@ -39,10 +39,9 @@ func (widget *RSS) Initialize() error { widget.CardHeight = 0 } - if widget.Style != "detailed-list" { + if widget.Style == "detailed-list" { for i := range widget.FeedRequests { - widget.FeedRequests[i].HideCategories = true - widget.FeedRequests[i].HideDescription = true + widget.FeedRequests[i].IsDetailed = true } }