From 0c2e5ff0dce3f81235367eb6d9404d3710a0f3e7 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 8 May 2018 20:41:24 -0700 Subject: Handle feeds with dates formatted as Unix timestamp --- reader/date/parser.go | 6 ++++++ reader/date/parser_test.go | 1 + 2 files changed, 7 insertions(+) (limited to 'reader') diff --git a/reader/date/parser.go b/reader/date/parser.go index d215775..d223ceb 100644 --- a/reader/date/parser.go +++ b/reader/date/parser.go @@ -7,6 +7,7 @@ package date import ( "errors" "fmt" + "strconv" "strings" "time" ) @@ -194,6 +195,11 @@ var dateFormats = []string{ // Parse parses a given date string using a large // list of commonly found feed date formats. func Parse(ds string) (t time.Time, err error) { + timestamp, err := strconv.ParseInt(ds, 10, 64) + if err == nil { + return time.Unix(timestamp, 0), nil + } + ds = replaceNonEnglishWords(ds) d := strings.TrimSpace(ds) if d == "" { diff --git a/reader/date/parser_test.go b/reader/date/parser_test.go index 18341ec..f796b53 100644 --- a/reader/date/parser_test.go +++ b/reader/date/parser_test.go @@ -51,6 +51,7 @@ func TestParseWeirdDateFormat(t *testing.T) { "Di, 23 Jan 2018 00:00:00 +0100", "Do, 29 Mär 2018 00:00:00 +0200", "mer, 9 avr 2018 00:00:00 +0200", + "1520932969", } for _, date := range dates { -- cgit v1.2.3