package_name: snipsfakeweather
class_name: SnipsFakeWeather
description: We got fake news. Now it is time for fake weather forecasts.
requires_tts: True
intents:
  - intent: SearchWeatherForecastTemperature
    action: |
      {%
      locality = None
      try:
        locality = intent.weatherForecastLocality \
          or intent.weatherForecastCountry \
          or intent.weatherForecastRegion \
          or intent.weatherForecastGeographicalPOI
      except Exception:
        pass

      datetime = None
      granularity = None
      if isinstance(intent.weatherForecastStartDatetime, InstantTime):
        datetime = intent.weatherForecastStartDatetime.datetime
        granularity = intent.weatherForecastStartDatetime.granularity
      elif isinstance(intent.weatherForecastStartDatetime, TimeInterval):
        datetime = intent.weatherForecastStartDatetime.start

      skill.speak_temperature(locality, datetime, granularity)
      %}
  - intent: SearchWeatherForecast
    action: |
      {%
      locality = None
      try:
        locality = intent.weatherForecastLocality \
          or intent.weatherForecastCountry \
          or intent.weatherForecastRegion \
          or intent.weatherForecastGeographicalPOI
      except Exception:
        pass

      datetime = None
      granularity = None
      if isinstance(intent.weatherForecastStartDatetime, InstantTime):
        datetime = intent.weatherForecastStartDatetime.datetime
        granularity = intent.weatherForecastStartDatetime.granularity
      elif isinstance(intent.weatherForecastStartDatetime, TimeInterval):
        datetime = intent.weatherForecastStartDatetime.start

      skill.speak_forecast(locality, datetime, granularity)
      %}
  - intent: SearchWeatherForecastCondition
    action: |
      {%
      from snipsfakeweather.snipsfakeweather import WeatherCondition

      locality = None
      try:
        locality = intent.weatherForecastLocality \
          or intent.weatherForecastCountry \
          or intent.weatherForecastRegion \
          or intent.weatherForecastGeographicalPOI
      except Exception:
        pass

      datetime = None
      granularity = None
      if isinstance(intent.weatherForecastStartDatetime, InstantTime):
        datetime = intent.weatherForecastStartDatetime.datetime
        granularity = intent.weatherForecastStartDatetime.granularity
      elif isinstance(intent.weatherForecastStartDatetime, TimeInterval):
        datetime = intent.weatherForecastStartDatetime.start

      name = None
      condition = None
      try:
        name = intent.weatherForecastConditionName
      except Exception:
        pass

      if "rain" in name:
        condition = WeatherCondition.rain
      elif "wind" in name:
        condition = WeatherCondition.wind
      elif "sun" in name:
        condition = WeatherCondition.sun

      skill.speak_condition(condition, locality, datetime, granularity)
      %}
