diff --git a/main.go b/main.go index 59f1093..aa9faad 100644 --- a/main.go +++ b/main.go @@ -146,8 +146,20 @@ func (src *FeedSource) update(ctx context.Context) { } items := feed.Items - sort.Slice(items, func(i, j int) bool { - return items[i].Updated >= items[j].Updated + sort.SliceStable(items, func(i, j int) bool { + var d1, d2 time.Time + if items[i].PublishedParsed != nil { + d1 = *items[i].PublishedParsed + } else if items[i].UpdatedParsed != nil { + d1 = *items[i].UpdatedParsed + } + + if items[j].PublishedParsed != nil { + d2 = *items[j].PublishedParsed + } else if items[j].UpdatedParsed != nil { + d2 = *items[j].UpdatedParsed + } + return !d1.Before(d2) }) src.Title = feed.Title src.Items = items