@@ -71,6 +71,8 @@ func (t *DefaultRSSTranslator) translateFeedItem(rssItem *rss.Item) (item *Item)
7171 item .Links = t .translateItemLinks (rssItem )
7272 item .Published = t .translateItemPublished (rssItem )
7373 item .PublishedParsed = t .translateItemPublishedParsed (rssItem )
74+ item .Updated = t .translateItemUpdated (rssItem )
75+ item .UpdatedParsed = t .translateItemUpdatedParsed (rssItem )
7476 item .Author = t .translateItemAuthor (rssItem )
7577 item .Authors = t .translateItemAuthors (rssItem )
7678 item .GUID = t .translateItemGUID (rssItem )
@@ -318,18 +320,20 @@ func (t *DefaultRSSTranslator) translateItemLinks(rssItem *rss.Item) (links []st
318320}
319321
320322func (t * DefaultRSSTranslator ) translateItemUpdated (rssItem * rss.Item ) (updated string ) {
321- if rssItem .DublinCoreExt != nil && rssItem .DublinCoreExt .Date != nil {
323+ if updatedVal , ok := t .hasAtomExtensionsForKey (rssItem , "updated" ); ok {
324+ updated = t .atomTranslator .translateItemUpdated (updatedVal )
325+ } else if rssItem .DublinCoreExt != nil && rssItem .DublinCoreExt .Date != nil {
322326 updated = t .firstEntry (rssItem .DublinCoreExt .Date )
323327 }
324328 return updated
325329}
326330
327331func (t * DefaultRSSTranslator ) translateItemUpdatedParsed (rssItem * rss.Item ) (updated * time.Time ) {
328- if rssItem .DublinCoreExt != nil && rssItem .DublinCoreExt .Date != nil {
329- updatedText := t .firstEntry (rssItem .DublinCoreExt .Date )
332+ if updatedText := t .translateItemUpdated (rssItem ); updatedText != "" {
330333 updatedDate , err := shared .ParseDate (updatedText )
331334 if err == nil {
332- updated = & updatedDate
335+ utcDate := updatedDate .UTC ()
336+ updated = & utcDate
333337 }
334338 }
335339 return
0 commit comments