mirror of
https://github.com/glanceapp/glance.git
synced 2025-06-22 02:41:23 +02:00
commit
9bda88edbd
@ -44,12 +44,25 @@ func sanitizeFeedDescription(description string) string {
|
|||||||
return description
|
return description
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func shortenFeedDescriptionLen(description string, maxLen int) string {
|
||||||
|
description, _ = limitStringLength(description, 1000)
|
||||||
|
description = sanitizeFeedDescription(description)
|
||||||
|
description, limited := limitStringLength(description, maxLen)
|
||||||
|
|
||||||
|
if limited {
|
||||||
|
description += "…"
|
||||||
|
}
|
||||||
|
|
||||||
|
return description
|
||||||
|
}
|
||||||
|
|
||||||
type RSSFeedRequest struct {
|
type RSSFeedRequest struct {
|
||||||
Url string `yaml:"url"`
|
Url string `yaml:"url"`
|
||||||
Title string `yaml:"title"`
|
Title string `yaml:"title"`
|
||||||
HideCategories bool `yaml:"hide-categories"`
|
HideCategories bool `yaml:"hide-categories"`
|
||||||
HideDescription bool `yaml:"hide-description"`
|
HideDescription bool `yaml:"hide-description"`
|
||||||
ItemLinkPrefix string `yaml:"item-link-prefix"`
|
ItemLinkPrefix string `yaml:"item-link-prefix"`
|
||||||
|
IsDetailed bool `yaml:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type RSSFeedItems []RSSFeedItem
|
type RSSFeedItems []RSSFeedItem
|
||||||
@ -81,7 +94,6 @@ func getItemsFromRSSFeedTask(request RSSFeedRequest) ([]RSSFeedItem, error) {
|
|||||||
|
|
||||||
rssItem := RSSFeedItem{
|
rssItem := RSSFeedItem{
|
||||||
ChannelURL: feed.Link,
|
ChannelURL: feed.Link,
|
||||||
Title: item.Title,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if request.ItemLinkPrefix != "" {
|
if request.ItemLinkPrefix != "" {
|
||||||
@ -108,16 +120,15 @@ func getItemsFromRSSFeedTask(request RSSFeedRequest) ([]RSSFeedItem, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !request.HideDescription && item.Description != "" {
|
if item.Title != "" {
|
||||||
description, _ := limitStringLength(item.Description, 1000)
|
rssItem.Title = item.Title
|
||||||
description = sanitizeFeedDescription(description)
|
} else {
|
||||||
description, limited := limitStringLength(description, 200)
|
rssItem.Title = shortenFeedDescriptionLen(item.Description, 100)
|
||||||
|
|
||||||
if limited {
|
|
||||||
description += "…"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rssItem.Description = description
|
if request.IsDetailed {
|
||||||
|
if !request.HideDescription && item.Description != "" && item.Title != "" {
|
||||||
|
rssItem.Description = shortenFeedDescriptionLen(item.Description, 200)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !request.HideCategories {
|
if !request.HideCategories {
|
||||||
@ -137,6 +148,7 @@ func getItemsFromRSSFeedTask(request RSSFeedRequest) ([]RSSFeedItem, error) {
|
|||||||
|
|
||||||
rssItem.Categories = categories
|
rssItem.Categories = categories
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if request.Title != "" {
|
if request.Title != "" {
|
||||||
rssItem.ChannelName = request.Title
|
rssItem.ChannelName = request.Title
|
||||||
|
@ -39,10 +39,9 @@ func (widget *RSS) Initialize() error {
|
|||||||
widget.CardHeight = 0
|
widget.CardHeight = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
if widget.Style != "detailed-list" {
|
if widget.Style == "detailed-list" {
|
||||||
for i := range widget.FeedRequests {
|
for i := range widget.FeedRequests {
|
||||||
widget.FeedRequests[i].HideCategories = true
|
widget.FeedRequests[i].IsDetailed = true
|
||||||
widget.FeedRequests[i].HideDescription = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user