From 375c296f56059c96723cb23823b0da01f5d37f96 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Fri, 12 Jul 2019 08:00:54 -0700 Subject: [PATCH] Fix a date-sorting bug in FeedReader --- modules/feedreader/widget.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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