浏览代码

Handle feeds with dates formatted as Unix timestamp

Frédéric Guillot 8 年之前
父节点
当前提交
0c2e5ff0dc
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 6 0
      reader/date/parser.go
  2. 1 0
      reader/date/parser_test.go

+ 6 - 0
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 == "" {

+ 1 - 0
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 {