@@ -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 )
@@ -316,18 +318,20 @@ func (t *DefaultRSSTranslator) translateItemLinks(rssItem *rss.Item) (links []st
316318}
317319
318320func (t * DefaultRSSTranslator ) translateItemUpdated (rssItem * rss.Item ) (updated string ) {
319- if rssItem .DublinCoreExt != nil && rssItem .DublinCoreExt .Date != nil {
321+ if updatedVal , ok := t .hasAtomExtensionsForKey (rssItem , "updated" ); ok {
322+ updated = t .atomTranslator .translateItemUpdated (updatedVal )
323+ } else if rssItem .DublinCoreExt != nil && rssItem .DublinCoreExt .Date != nil {
320324 updated = t .firstEntry (rssItem .DublinCoreExt .Date )
321325 }
322326 return updated
323327}
324328
325329func (t * DefaultRSSTranslator ) translateItemUpdatedParsed (rssItem * rss.Item ) (updated * time.Time ) {
326- if rssItem .DublinCoreExt != nil && rssItem .DublinCoreExt .Date != nil {
327- updatedText := t .firstEntry (rssItem .DublinCoreExt .Date )
330+ if updatedText := t .translateItemUpdated (rssItem ); updatedText != "" {
328331 updatedDate , err := shared .ParseDate (updatedText )
329332 if err == nil {
330- updated = & updatedDate
333+ utcDate := updatedDate .UTC ()
334+ updated = & utcDate
331335 }
332336 }
333337 return
0 commit comments