dragon-bot/app/weather.py
2017-09-04 13:55:18 -07:00

48 lines
1.3 KiB
Python

import requests
from pyowm import OWM
def get_weather(zip_code):
"""
get_weather(zip_code)
Returns the weather forecast for the selected zip code. Uses PythonOWM to
make life super easy.
"""
owm = OWM('593e0e182f9278a10443da354c4014db')
fc = owm.three_hours_forecast(zip_code)
f = fc.get_forecast()
reg = f.get(0)
indicator = int(reg.get_reference_time(timeformat='iso')[11:13]) // 3
ret = ''
ret = ret + ('Status: ' + reg.get_detailed_status() + ' '
'Current Temperature: ' + str(reg.get_temperature('fahrenheit').get('temp')) + '\n')
for i in range((4 - indicator) % 8, len(f), 8):
high, low = 0, 100000
for j in range(0, 8):
if (i + j < len(f)):
day = f.get(i + j)
else:
break
temps = day.get_temperature('fahrenheit')
h = temps.get('temp_max')
l = temps.get('temp_min')
if high < h:
high = h
if low > l:
low = l
ret = ret + ('Status: ' + f.get(i).get_detailed_status() + ' '
'High: ' + str(high) + ' '
'Low: ' + str(low) + ' '
'Date: ' +
str(f.get(i).get_reference_time(timeformat='iso'))[:10] + '\n')
# print(ret)
return ret