diff --git a/modules/feedreader/widget.go b/modules/feedreader/widget.go index 87388db6..678c8566 100644 --- a/modules/feedreader/widget.go +++ b/modules/feedreader/widget.go @@ -3,12 +3,17 @@ package feedreader import ( "fmt" "sort" + "time" "github.com/mmcdole/gofeed" "github.com/rivo/tview" "github.com/wtfutil/wtf/wtf" ) +const ( + publishedDateLayout = "Mon, 02 2006 15:04:05" +) + // FeedItem represents an item returned from an RSS or Atom feed type FeedItem struct { item *gofeed.Item @@ -147,7 +152,10 @@ func (widget *Widget) contentFrom(data []*FeedItem) string { // feedItems are sorted by published date func (widget *Widget) sort(feedItems []*FeedItem) []*FeedItem { sort.Slice(feedItems, func(i, j int) bool { - return feedItems[i].item.Published > feedItems[j].item.Published + iTime, _ := time.Parse(publishedDateLayout, feedItems[i].item.Published) + jTime, _ := time.Parse(publishedDateLayout, feedItems[j].item.Published) + + return iTime.After(jTime) }) return feedItems