diff options
Diffstat (limited to 'internal/reader/rss/rss.go')
-rw-r--r-- | internal/reader/rss/rss.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/reader/rss/rss.go b/internal/reader/rss/rss.go index a62dabd7..52488840 100644 --- a/internal/reader/rss/rss.go +++ b/internal/reader/rss/rss.go @@ -33,10 +33,28 @@ type rssFeed struct { PubDate string `xml:"channel>pubDate"` ManagingEditor string `xml:"channel>managingEditor"` Webmaster string `xml:"channel>webMaster"` + TimeToLive rssTTL `xml:"channel>ttl"` Items []rssItem `xml:"channel>item"` PodcastFeedElement } +type rssTTL struct { + Data string `xml:",chardata"` +} + +func (r *rssTTL) Value() int { + if r.Data == "" { + return 0 + } + + value, err := strconv.Atoi(r.Data) + if err != nil { + return 0 + } + + return value +} + func (r *rssFeed) Transform(baseURL string) *model.Feed { var err error @@ -60,6 +78,7 @@ func (r *rssFeed) Transform(baseURL string) *model.Feed { } feed.IconURL = strings.TrimSpace(r.ImageURL) + feed.TTL = r.TimeToLive.Value() for _, item := range r.Items { entry := item.Transform() |