made the 3hr forecast time respect local timezone

1. converted the now variable to local TZ
2. the forecast.get_weather_at function still requires UTC, so I added a TZ conversion back to UTC.
This commit is contained in:
emilyboda 2020-06-04 15:40:26 -04:00 committed by GitHub
parent 97d6046e30
commit 0843aa8943
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -171,7 +171,7 @@ def generate_image():
forecast = owm.three_hours_forecast(location) forecast = owm.three_hours_forecast(location)
"""Round the hour to the nearest multiple of 3""" """Round the hour to the nearest multiple of 3"""
now = arrow.utcnow() now = arrow.utcnow().to(get_tz())
if (now.hour % 3) != 0: if (now.hour % 3) != 0:
hour_gap = 3 - (now.hour % 3) hour_gap = 3 - (now.hour % 3)
else: else:
@ -184,10 +184,10 @@ def generate_image():
fc4 = now.replace(hours = + hour_gap + 9).floor('hour') fc4 = now.replace(hours = + hour_gap + 9).floor('hour')
"""Prepare forecast objects for the specified timings""" """Prepare forecast objects for the specified timings"""
forecast_fc1 = forecast.get_weather_at(fc1.datetime) forecast_fc1 = forecast.get_weather_at(fc1.datetime.astimezone(timezone('UTC')))
forecast_fc2 = forecast.get_weather_at(fc2.datetime) forecast_fc2 = forecast.get_weather_at(fc2.datetime.astimezone(timezone('UTC')))
forecast_fc3 = forecast.get_weather_at(fc3.datetime) forecast_fc3 = forecast.get_weather_at(fc3.datetime.astimezone(timezone('UTC')))
forecast_fc4 = forecast.get_weather_at(fc4.datetime) forecast_fc4 = forecast.get_weather_at(fc4.datetime.astimezone(timezone('UTC')))
"""Get the current temperature and forcasts temperatures""" """Get the current temperature and forcasts temperatures"""
temperature_now = to_units(weather.get_temperature()['temp']) temperature_now = to_units(weather.get_temperature()['temp'])