From 95654695594202e17b65deed248cf8aa11541a22 Mon Sep 17 00:00:00 2001 From: Diego Heras Date: Thu, 9 Jan 2020 03:19:37 +0100 Subject: [PATCH] core: fix fuzzytime parser regression #6845. resolves #6861 (#6871) --- src/Jackett.Common/Definitions/demonoid.yml | 14 ------------ src/Jackett.Common/Definitions/hachede.yml | 24 +++++++++++---------- src/Jackett.Common/Definitions/vizuk.yml | 24 +++++++++++---------- src/Jackett.Common/Utils/DateTimeUtil.cs | 6 +++--- 4 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/Jackett.Common/Definitions/demonoid.yml b/src/Jackett.Common/Definitions/demonoid.yml index 50c2228ca..50499bbe6 100644 --- a/src/Jackett.Common/Definitions/demonoid.yml +++ b/src/Jackett.Common/Definitions/demonoid.yml @@ -314,20 +314,6 @@ args: ["Added ", ""] - name: replace args: ["on ", ""] - - name: replace - args: ["Monday", "Mon"] - - name: replace - args: ["Tuesday", "Tue"] - - name: replace - args: ["Wesnesday", "Wed"] - - name: replace - args: ["Thursday", "Thu"] - - name: replace - args: ["Friday", "Fri"] - - name: replace - args: ["Saturday", "Sat"] - - name: replace - args: ["Sunday", "Sun"] fields: title: diff --git a/src/Jackett.Common/Definitions/hachede.yml b/src/Jackett.Common/Definitions/hachede.yml index 936b210cc..9af677b30 100644 --- a/src/Jackett.Common/Definitions/hachede.yml +++ b/src/Jackett.Common/Definitions/hachede.yml @@ -159,22 +159,22 @@ - name: replace args: ["Hoy en", "Today"] - name: replace - args: ["Lunes a", "Monday"] + args: ["Lunes a", "Monday at"] - name: replace - args: ["Martes a", "Tuesday"] + args: ["Martes a", "Tuesday at"] - name: replace - args: ["Miércoles a", "Wednesday"] + args: ["Miércoles a", "Wednesday at"] - name: replace - args: ["Jueves a", "Thursday"] + args: ["Jueves a", "Thursday at"] - name: replace - args: ["Viernes a", "Friday"] + args: ["Viernes a", "Friday at"] - name: replace # WTF? - args: ["Friday a", "Friday"] + args: ["Friday a", "Friday at"] - name: replace - args: ["Sábado a", "Saturday"] + args: ["Sábado a", "Saturday at"] - name: replace - args: ["Domingo a", "Sunday"] - - name: fuzzytime + args: ["Domingo a", "Sunday at"] + - name: fuzzytime # eg: Yesterday 14:22 or Monday at 14:22 date: selector: td.torrent_name:contains("Uploaded"):contains("-"), .torrentOwner:contains("Uploaded"):contains("-") optional: true @@ -190,8 +190,10 @@ - name: regexp args: "(?<=Uploaded )(.*)(?= by)" - name: replace - args: [" at ", " "] - - name: fuzzytime + args: ["Yesterday at", "Yesterday"] + - name: replace + args: ["Today at", "Today"] + - name: fuzzytime # eg: Yesterday 14:22 or Monday at 14:22 size: selector: td.size a, .torrentInfo a[rel="torrent_size"] grabs: diff --git a/src/Jackett.Common/Definitions/vizuk.yml b/src/Jackett.Common/Definitions/vizuk.yml index 05232525b..008d0f95e 100644 --- a/src/Jackett.Common/Definitions/vizuk.yml +++ b/src/Jackett.Common/Definitions/vizuk.yml @@ -185,22 +185,22 @@ - name: replace args: ["Hoy en", "Today"] - name: replace - args: ["Lunes a", "Monday"] + args: ["Lunes a", "Monday at"] - name: replace - args: ["Martes a", "Tuesday"] + args: ["Martes a", "Tuesday at"] - name: replace - args: ["Miércoles a", "Wednesday"] + args: ["Miércoles a", "Wednesday at"] - name: replace - args: ["Jueves a", "Thursday"] + args: ["Jueves a", "Thursday at"] - name: replace - args: ["Viernes a", "Friday"] + args: ["Viernes a", "Friday at"] - name: replace # WTF? - args: ["Friday a", "Friday"] + args: ["Friday a", "Friday at"] - name: replace - args: ["Sábado a", "Saturday"] + args: ["Sábado a", "Saturday at"] - name: replace - args: ["Domingo a", "Sunday"] - - name: fuzzytime + args: ["Domingo a", "Sunday at"] + - name: fuzzytime # eg: Yesterday 14:22 or Monday at 14:22 date: selector: td.torrent_name:contains("Uploaded"):contains("-"), .torrentOwner:contains("Uploaded"):contains("-") optional: true @@ -216,8 +216,10 @@ - name: regexp args: "(?<=Uploaded )(.*)(?= by)" - name: replace - args: [" at ", " "] - - name: fuzzytime + args: ["Yesterday at", "Yesterday"] + - name: replace + args: ["Today at", "Today"] + - name: fuzzytime # eg: Yesterday 14:22 or Monday at 14:22 size: selector: td.size a, .torrentInfo a[rel="torrent_size"] grabs: diff --git a/src/Jackett.Common/Utils/DateTimeUtil.cs b/src/Jackett.Common/Utils/DateTimeUtil.cs index 25eb3e255..826f905bd 100644 --- a/src/Jackett.Common/Utils/DateTimeUtil.cs +++ b/src/Jackett.Common/Utils/DateTimeUtil.cs @@ -123,7 +123,7 @@ namespace Jackett.Common.Utils public static Regex todayRegexp = new Regex(@"(?i)\btoday([\s,]*|$)", RegexOptions.Compiled); public static Regex tomorrowRegexp = new Regex(@"(?i)\btomorrow([\s,]*|$)", RegexOptions.Compiled); public static Regex yesterdayRegexp = new Regex(@"(?i)\byesterday([\s,]*|$)", RegexOptions.Compiled); - public static Regex daysOfWeekRegexp = new Regex(@"(?i)\b(monday|tuesday|wednesday|thursday|friday|saturday|sunday)([\s,]*|$)", RegexOptions.Compiled); + public static Regex daysOfWeekRegexp = new Regex(@"(?i)\b(monday|tuesday|wednesday|thursday|friday|saturday|sunday)\s+at\s+", RegexOptions.Compiled); public static Regex missingYearRegexp = new Regex(@"^(\d{1,2}-\d{1,2})(\s|$)", RegexOptions.Compiled); public static Regex missingYearRegexp2 = new Regex(@"^(\d{1,2}\s+\w{3})\s+(\d{1,2}\:\d{1,2}.*)$", RegexOptions.Compiled); // 1 Jan 10:30 @@ -178,7 +178,7 @@ namespace Jackett.Common.Utils return dt; } - // Days of the week ... + // [day of the week] at ... (eg: Saturday at 14:22) match = daysOfWeekRegexp.Match(str); if (match.Success) { @@ -187,7 +187,7 @@ namespace Jackett.Common.Utils dt += ParseTimeSpan(time); var dow = DayOfWeek.Monday; - var groupMatchLower = match.Groups[0].Value.ToLower(); + var groupMatchLower = match.Groups[1].Value.ToLower(); if (groupMatchLower.StartsWith("monday")) dow = DayOfWeek.Monday; else if (groupMatchLower.StartsWith("tuesday"))