diff --git a/__init__.py b/__init__.py index 3b925654..7680102f 100644 --- a/__init__.py +++ b/__init__.py @@ -222,13 +222,26 @@ def handle_forecast(self, message): # Handle: When will it rain again? | Will it rain on Tuesday? @intent_handler(IntentBuilder("NextPrecipitationIntent").require( "Next").require("Precipitation").optionally("Location").build()) + @intent_handler(IntentBuilder("CurrentRainSnowIntent").require( + "Query").require("Precipitation").optionally("Location").build()) def handle_next_precipitation(self, message): report = self.__initialize_report(message) # Get a date from spoken request - today = extract_datetime(" ")[0] + today = extract_datetime(" ")[0] # this is None when = extract_datetime(message.data.get('utterance'))[0] - + if today == when: + timeframe = 'today' + else: + timeframe = 'expected' + + data = { + "modifier": "", + "precip": "none", + "day": self.__to_day(when), + "location" : report['location'] + } + # search the forecast for precipitation for weather in self.owm.daily_forecast( report['full_location'], @@ -236,7 +249,8 @@ def handle_next_precipitation(self, message): report['lon']).get_forecast().get_weathers(): forecastDate = datetime.fromtimestamp(weather.get_reference_time()) - + + # TODO: "will it rain tomorrow" returns forecast for today, if it rains today if when != today: # User asked about a specific date, is this it? whenGMT = self.__to_GMT(when) @@ -245,35 +259,27 @@ def handle_next_precipitation(self, message): rain = weather.get_rain() if rain and rain["all"] > 0: - data = { - "modifier": "", - "precip": "rain", - "day": self.__to_day(forecastDate) - } + data["precip"] = "rain" + data["day"] = self.__to_day(forecastDate) if rain["all"] < 10: data["modifier"] = self.__translate("light") elif rain["all"] > 20: data["modifier"] = self.__translate("heavy") - self.speak_dialog("precipitation expected", data) - return + break snow = weather.get_snow() if snow and snow["all"] > 0: - data = { - "modifier": "", - "precip": "snow", - "day": self.__to_day(forecastDate) - } + data["precip"] = "snow" + data["day"] = self.__to_day(forecastDate) if snow["all"] < 10: data["modifier"] = self.__translate("light") elif snow["all"] > 20: data["modifier"] = self.__translate("heavy") - self.speak_dialog("precipitation expected", data) - return - - self.speak_dialog("no precipitation expected", report) + break + + self.__report_precipitation(timeframe, data) # Handle: What's the weather later? @intent_handler(IntentBuilder("NextHoursWeatherIntent").require( @@ -485,6 +491,21 @@ def __initialize_report(self, message): 'full_location': location, 'scale': self.__get_temperature_unit() } + + def __report_precipitation(self, timeframe, data): + if data['precip'] == "none": + expected = ".not_expected" + elif timeframe == "today": + expected = ".today" + else: + expected = ".expected" + + if data['location'] == self.location_pretty: + local = ".local" + else: + local = "" + + self.speak_dialog("precipitation" + expected + local, data) def __report_weather(self, timeframe, report): # Tell the weather to the user (verbal and visual) diff --git a/dialog/de-de/precipitation.expected.dialog b/dialog/de-de/precipitation.expected.dialog new file mode 100644 index 00000000..2a5c430e --- /dev/null +++ b/dialog/de-de/precipitation.expected.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} wird am {{day}} in {{location}} erwartet +Die Vorhersage nennt {{modifier}} {{precip}} am {{day}} in {{location}} diff --git a/dialog/de-de/precipitation expected.dialog b/dialog/de-de/precipitation.expected.local.dialog similarity index 100% rename from dialog/de-de/precipitation expected.dialog rename to dialog/de-de/precipitation.expected.local.dialog diff --git a/dialog/de-de/precipitation.not_expected.dialog b/dialog/de-de/precipitation.not_expected.dialog new file mode 100644 index 00000000..1a9377e7 --- /dev/null +++ b/dialog/de-de/precipitation.not_expected.dialog @@ -0,0 +1,4 @@ +es wird kein Niederschlag in {{location}} erwartet +es wird nicht in {{location}} Regnen oder scheien +du brauchst nach {{location}} keinen Regenschirm mitnehmen + diff --git a/dialog/de-de/no precipitation expected.dialog b/dialog/de-de/precipitation.not_expected.local.dialog similarity index 100% rename from dialog/de-de/no precipitation expected.dialog rename to dialog/de-de/precipitation.not_expected.local.dialog diff --git a/dialog/de-de/precipitation.today.dialog b/dialog/de-de/precipitation.today.dialog new file mode 100644 index 00000000..3bbf1dc3 --- /dev/null +++ b/dialog/de-de/precipitation.today.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} ist heute in {{location}} zu erwarten +Heute fällt in {{location}} {{modifier}} {{precip}} diff --git a/dialog/de-de/precipitation.today.local.dialog b/dialog/de-de/precipitation.today.local.dialog new file mode 100644 index 00000000..bc378319 --- /dev/null +++ b/dialog/de-de/precipitation.today.local.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} ist heute zu erwarten +Heute fällt {{modifier}} {{precip}} diff --git a/dialog/en-us/no precipitation expected.dialog b/dialog/en-us/no precipitation expected.dialog deleted file mode 100644 index 6ccf889a..00000000 --- a/dialog/en-us/no precipitation expected.dialog +++ /dev/null @@ -1,2 +0,0 @@ -No precipitation is in the forecast -None is forecasted diff --git a/dialog/en-us/precipitation expected.dialog b/dialog/en-us/precipitation expected.dialog deleted file mode 100644 index 08aad1d7..00000000 --- a/dialog/en-us/precipitation expected.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{{modifier}} {{precip}} is expected on {{day}} -The forecast calls for {{modifier}} {{precip}} on {{day}} diff --git a/dialog/en-us/precipitation.expected.dialog b/dialog/en-us/precipitation.expected.dialog new file mode 100644 index 00000000..22ab2408 --- /dev/null +++ b/dialog/en-us/precipitation.expected.dialog @@ -0,0 +1,3 @@ +{{modifier}} {{precip}} is expected in {{location}} on {{day}} +{{modifier}} {{precip}} is expected on {{day}} for {{location}} +The forecast calls for {{modifier}} {{precip}} on {{day}} for {{location}} diff --git a/dialog/en-us/precipitation.expected.local.dialog b/dialog/en-us/precipitation.expected.local.dialog new file mode 100644 index 00000000..8df760fe --- /dev/null +++ b/dialog/en-us/precipitation.expected.local.dialog @@ -0,0 +1,5 @@ +{{modifier}} {{precip}} is expected on {{day}} +The forecast calls for {{modifier}} {{precip}} on {{day}} +{{modifier}} {{precip}} is expected in {{location}} on {{day}} +{{modifier}} {{precip}} is expected on {{day}} for {{location}} +The forecast calls for {{modifier}} {{precip}} on {{day}} for {{location}} diff --git a/dialog/en-us/precipitation.not_expected.dialog b/dialog/en-us/precipitation.not_expected.dialog new file mode 100644 index 00000000..bbb37a78 --- /dev/null +++ b/dialog/en-us/precipitation.not_expected.dialog @@ -0,0 +1,2 @@ +No precipitation is in the forecast for {{location}} +None is forecasted for {{location}} diff --git a/dialog/en-us/precipitation.not_expected.local.dialog b/dialog/en-us/precipitation.not_expected.local.dialog new file mode 100644 index 00000000..16e940c2 --- /dev/null +++ b/dialog/en-us/precipitation.not_expected.local.dialog @@ -0,0 +1,4 @@ +No precipitation is in the forecast +None is forecasted +No precipitation is in the forecast for {{location}} +None is forecasted for {{location}} \ No newline at end of file diff --git a/dialog/en-us/precipitation.today.dialog b/dialog/en-us/precipitation.today.dialog new file mode 100644 index 00000000..c246c3bd --- /dev/null +++ b/dialog/en-us/precipitation.today.dialog @@ -0,0 +1,2 @@ +Currently there is {{modifier}} {{precip}} in {{location}} +Today there is {{modifier}} {{precip}} in {{location}} diff --git a/dialog/en-us/precipitation.today.local.dialog b/dialog/en-us/precipitation.today.local.dialog new file mode 100644 index 00000000..d201108d --- /dev/null +++ b/dialog/en-us/precipitation.today.local.dialog @@ -0,0 +1,4 @@ +Currently there is {{modifier}} {{precip}} +Today there is {{modifier}} {{precip}} +Currently there is {{modifier}} {{precip}} in {{location}} +Today there is {{modifier}} {{precip}} in {{location}} \ No newline at end of file diff --git a/dialog/it-it/precipitation expected.dialog b/dialog/it-it/precipitatio.expected.dialog similarity index 100% rename from dialog/it-it/precipitation expected.dialog rename to dialog/it-it/precipitatio.expected.dialog diff --git a/dialog/it-it/precipitatio.expected.local.dialog b/dialog/it-it/precipitatio.expected.local.dialog new file mode 100644 index 00000000..9d8dbd9d --- /dev/null +++ b/dialog/it-it/precipitatio.expected.local.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} è previsto per {{day}} +La previsione indica {{modifier}} {{precip}} per {{day}} diff --git a/dialog/it-it/precipitatio.today.dialog b/dialog/it-it/precipitatio.today.dialog new file mode 100644 index 00000000..0b655d41 --- /dev/null +++ b/dialog/it-it/precipitatio.today.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} è previsto +La previsione indica {{modifier}} {{precip}} diff --git a/dialog/it-it/precipitatio.today.local.dialog b/dialog/it-it/precipitatio.today.local.dialog new file mode 100644 index 00000000..0b655d41 --- /dev/null +++ b/dialog/it-it/precipitatio.today.local.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} è previsto +La previsione indica {{modifier}} {{precip}} diff --git a/dialog/it-it/precipitation.expected.dialog b/dialog/it-it/precipitation.expected.dialog new file mode 100644 index 00000000..9d8dbd9d --- /dev/null +++ b/dialog/it-it/precipitation.expected.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} è previsto per {{day}} +La previsione indica {{modifier}} {{precip}} per {{day}} diff --git a/dialog/it-it/no precipitation expected.dialog b/dialog/it-it/precipitation.not_expected.dialog similarity index 100% rename from dialog/it-it/no precipitation expected.dialog rename to dialog/it-it/precipitation.not_expected.dialog diff --git a/dialog/it-it/precipitation.not_expected.local.dialog b/dialog/it-it/precipitation.not_expected.local.dialog new file mode 100644 index 00000000..08409ceb --- /dev/null +++ b/dialog/it-it/precipitation.not_expected.local.dialog @@ -0,0 +1 @@ +Nessuna precipitazione nelle previsioni diff --git a/dialog/it-it/precipitation.today.dialog b/dialog/it-it/precipitation.today.dialog new file mode 100644 index 00000000..0b655d41 --- /dev/null +++ b/dialog/it-it/precipitation.today.dialog @@ -0,0 +1,2 @@ +{{modifier}} {{precip}} è previsto +La previsione indica {{modifier}} {{precip}} diff --git a/vocab/en-us/Precipitation.voc b/vocab/en-us/Precipitation.voc index 42c0a0c0..d4a8fd4f 100644 --- a/vocab/en-us/Precipitation.voc +++ b/vocab/en-us/Precipitation.voc @@ -1,5 +1,7 @@ rain snow +raining +snowing precipitation rainy snowy diff --git a/vocab/en-us/Query.voc b/vocab/en-us/Query.voc index b874ed1f..7bbcb03c 100644 --- a/vocab/en-us/Query.voc +++ b/vocab/en-us/Query.voc @@ -2,3 +2,5 @@ how what is tell when +is it +does it \ No newline at end of file diff --git a/vocab/en-us/WeatherType.voc b/vocab/en-us/WeatherType.voc index 79188010..c0a177b5 100644 --- a/vocab/en-us/WeatherType.voc +++ b/vocab/en-us/WeatherType.voc @@ -1,8 +1,14 @@ -rain|raining -snow|snowing +rain +raining +snow +snowing sleet -hail|hailing -sunny|sun -hot|warm -cold|cool +hail +hailing +sunny +sun +hot +warm +cold +cool