aboutsummaryrefslogtreecommitdiffhomepage
path: root/reader
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-05-08 20:41:24 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-05-08 20:41:24 -0700
commit0c2e5ff0dce3f81235367eb6d9404d3710a0f3e7 (patch)
treedea820794c4ffd52390b27499e2bd80224bc643d /reader
parent39c44521428869620ef97d72e5449c03ddaede8b (diff)
Handle feeds with dates formatted as Unix timestamp
Diffstat (limited to 'reader')
-rw-r--r--reader/date/parser.go6
-rw-r--r--reader/date/parser_test.go1
2 files changed, 7 insertions, 0 deletions
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 {