diff --git a/mycroft/util/lang/parse_de.py b/mycroft/util/lang/parse_de.py index 432e90e7ee..bf608e7eb8 100644 --- a/mycroft/util/lang/parse_de.py +++ b/mycroft/util/lang/parse_de.py @@ -191,8 +191,8 @@ def extract_datetime_de(string, currentDate, default_time): datestr != "" or timeStr != "" or yearOffset != 0 or monthOffset != 0 or dayOffset is True or hrOffset != 0 or - hrAbs != 0 or minOffset != 0 or - minAbs != 0 or secOffset != 0 + hrAbs or minOffset != 0 or + minAbs or secOffset != 0 ) if string == "" or not currentDate: @@ -809,7 +809,7 @@ def extract_datetime_de(string, currentDate, default_time): extractedDate = extractedDate + relativedelta(hours=hrAbs or 0, minutes=minAbs or 0) - if (hrAbs != 0 or minAbs != 0) and datestr == "": + if (hrAbs or minAbs) and datestr == "": if not daySpecified and dateNow > extractedDate: extractedDate = extractedDate + relativedelta(days=1) if hrOffset != 0: diff --git a/mycroft/util/lang/parse_en.py b/mycroft/util/lang/parse_en.py index de2e1a6f21..59021508eb 100644 --- a/mycroft/util/lang/parse_en.py +++ b/mycroft/util/lang/parse_en.py @@ -303,7 +303,8 @@ def extract_datetime_en(string, dateNow, default_time): Returns: [datetime, str]: An array containing the datetime and the remaining - text not consumed in the parsing. + text not consumed in the parsing, or None if no + date or time related text was found. """ def clean_string(s): @@ -334,8 +335,8 @@ def extract_datetime_en(string, dateNow, default_time): datestr != "" or yearOffset != 0 or monthOffset != 0 or dayOffset is True or hrOffset != 0 or - hrAbs != 0 or minOffset != 0 or - minAbs != 0 or secOffset != 0 + hrAbs or minOffset != 0 or + minAbs or secOffset != 0 ) if string == "" or not dateNow: diff --git a/mycroft/util/lang/parse_it.py b/mycroft/util/lang/parse_it.py index 0ebc25a0d4..fb42d09347 100644 --- a/mycroft/util/lang/parse_it.py +++ b/mycroft/util/lang/parse_it.py @@ -406,8 +406,8 @@ def extract_datetime_it(string, currentDate, default_time): datestr != "" or timeStr != "" or yearOffset != 0 or monthOffset != 0 or dayOffset is True or hrOffset != 0 or - hrAbs != 0 or minOffset != 0 or - minAbs != 0 or secOffset != 0 + hrAbs or minOffset != 0 or + minAbs or secOffset != 0 ) if string == "" or not currentDate: diff --git a/mycroft/util/lang/parse_sv.py b/mycroft/util/lang/parse_sv.py index 32bc3f6da3..44779de9a2 100644 --- a/mycroft/util/lang/parse_sv.py +++ b/mycroft/util/lang/parse_sv.py @@ -151,8 +151,8 @@ def extract_datetime_sv(string, currentDate, default_time): datestr != "" or timeStr != "" or yearOffset != 0 or monthOffset != 0 or dayOffset is True or hrOffset != 0 or - hrAbs != 0 or minOffset != 0 or - minAbs != 0 or secOffset != 0 + hrAbs or minOffset != 0 or + minAbs or secOffset != 0 ) if string == "" or not currentDate: @@ -704,10 +704,9 @@ def extract_datetime_sv(string, currentDate, default_time): hrAbs = default_time.hour minAbs = default_time.minute if hrAbs != -1 and minAbs != -1: - print(hrAbs) extractedDate = extractedDate + relativedelta(hours=hrAbs or 0, minutes=minAbs or 0) - if (hrAbs != 0 or minAbs != 0) and datestr == "": + if (hrAbs or minAbs) and datestr == "": if not daySpecified and dateNow > extractedDate: extractedDate = extractedDate + relativedelta(days=1) if hrOffset != 0: diff --git a/mycroft/util/parse.py b/mycroft/util/parse.py index 2daf47242d..7f10293712 100644 --- a/mycroft/util/parse.py +++ b/mycroft/util/parse.py @@ -134,9 +134,10 @@ def extract_datetime(text, anchorDate=None, lang="en-us", default_time=None): related keywords stripped out. See examples for further clarification - Returns 'None' if the input string is empty. + Returns 'None' if no date or time related text is found. Examples: + >>> extract_datetime( ... "What is the weather like the day after tomorrow?", ... datetime(2017, 06, 30, 00, 00) @@ -148,6 +149,12 @@ def extract_datetime(text, anchorDate=None, lang="en-us", default_time=None): ... datetime(2016, 02, 19, 00, 00) ... ) [datetime.datetime(2016, 3, 6, 17, 0), 'set up appointment'] + + >>> extract_datetime( + ... "Set up an appointment", + ... datetime(2016, 02, 19, 00, 00) + ... ) + None """ lang_lower = str(lang).lower()