aboutsummaryrefslogtreecommitdiff
path: root/internal/reader/date/parser.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <f@miniflux.net> 2023-11-01 19:26:16 +0000
committerGravatar Frédéric Guillot <f@miniflux.net> 2023-11-01 20:55:35 +0100
commite3eaaea15a533030b2193cbfa032bcb036e736d6 (patch)
tree0bc995340f801ac95343b4545809fb82556a94a1 /internal/reader/date/parser.go
parent500c60b807f9c9ba2a206e6d3615f8a18f8e0c7e (diff)
downloadv2-e3eaaea15a533030b2193cbfa032bcb036e736d6.tar.gz
v2-e3eaaea15a533030b2193cbfa032bcb036e736d6.tar.zst
v2-e3eaaea15a533030b2193cbfa032bcb036e736d6.zip
Update date parser to parse more invalid date formats
Diffstat (limited to 'internal/reader/date/parser.go')
-rw-r--r--internal/reader/date/parser.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/internal/reader/date/parser.go b/internal/reader/date/parser.go
index 850bc20d..c1f0b1e8 100644
--- a/internal/reader/date/parser.go
+++ b/internal/reader/date/parser.go
@@ -219,6 +219,10 @@ var dateFormats = []string{
"Mon, 2rd Jan 2006 15:04:05 MST",
"Mon, 2nd Jan 2006 15:04:05 MST",
"Mon, 2st Jan 2006 15:04:05 MST",
+ "Mon, Jan 02 2006 03:04:05 PM",
+ "Monday, January 2, 2006 - 15:04",
+ "01/02/06 15:04:05",
+ "02.01.06",
}
var invalidTimezoneReplacer = strings.NewReplacer(
@@ -309,6 +313,7 @@ var invalidLocalizedDateReplacer = strings.NewReplacer(
// Parse parses a given date string using a large
// list of commonly found feed date formats.
func Parse(rawInput string) (t time.Time, err error) {
+ rawInput = strings.TrimSpace(rawInput)
timestamp, err := strconv.ParseInt(rawInput, 10, 64)
if err == nil {
return time.Unix(timestamp, 0), nil
@@ -316,7 +321,6 @@ func Parse(rawInput string) (t time.Time, err error) {
processedInput := invalidLocalizedDateReplacer.Replace(rawInput)
processedInput = invalidTimezoneReplacer.Replace(processedInput)
- processedInput = strings.TrimSpace(processedInput)
if processedInput == "" {
return t, errors.New(`date parser: empty value`)
}