aboutsummaryrefslogtreecommitdiff
path: root/internal/reader/rss/rss.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/reader/rss/rss.go')
-rw-r--r--internal/reader/rss/rss.go19
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()