From d257a048d7cbb9542ab7b226185f784bd3ea3069 Mon Sep 17 00:00:00 2001 From: Chuan Ding Date: Sun, 22 Dec 2019 23:35:18 +0800 Subject: [PATCH] add custom field to item --- rss/feed.go | 1 + rss/parser.go | 7 +++++-- translator.go | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rss/feed.go b/rss/feed.go index 5366a4ef..5159e866 100644 --- a/rss/feed.go +++ b/rss/feed.go @@ -59,6 +59,7 @@ type Item struct { DublinCoreExt *ext.DublinCoreExtension `json:"dcExt,omitempty"` ITunesExt *ext.ITunesItemExtension `json:"itunesExt,omitempty"` Extensions ext.Extensions `json:"extensions,omitempty"` + Custom map[string]string `json:"custom,omitempty"` } // Image is an image that represents the feed diff --git a/rss/parser.go b/rss/parser.go index 684d160f..7722261c 100644 --- a/rss/parser.go +++ b/rss/parser.go @@ -415,8 +415,11 @@ func (rp *Parser) parseItem(p *xpp.XMLPullParser) (item *Item, err error) { } categories = append(categories, result) } else { - // Skip any elements not part of the item spec - p.Skip() + result, err := shared.ParseText(p) + if err != nil { + continue + } + item.Custom[name] = result } } } diff --git a/translator.go b/translator.go index 4756b4b8..460d0e76 100644 --- a/translator.go +++ b/translator.go @@ -73,6 +73,7 @@ func (t *DefaultRSSTranslator) translateFeedItem(rssItem *rss.Item) (item *Item) item.DublinCoreExt = rssItem.DublinCoreExt item.ITunesExt = rssItem.ITunesExt item.Extensions = rssItem.Extensions + item.Custom = rssItem.Custom return }