|
#!/usr/bin/python3
|
|
|
|
import requests
|
|
import textwrap
|
|
|
|
# Docs:
|
|
# - https://www.weather.gov/documentation/services-web-api
|
|
# - https://weather-gov.github.io/api/general-faqs
|
|
|
|
# markers for vimwiki:
|
|
print('[[/lyons-colorado]] [[/weather]]')
|
|
print()
|
|
print('{{{')
|
|
|
|
# This address is geocoded from the forecast property in
|
|
# https://api.weather.gov/points/40.226,-105.2713
|
|
# r = requests.get('https://api.weather.gov/gridpoints/BOU/55,84/forecast/hourly')
|
|
r = requests.get('https://api.weather.gov/gridpoints/BOU/55,84/forecast')
|
|
data = r.json()
|
|
|
|
# Pull out forecast periods from API
|
|
for period in data['properties']['periods']:
|
|
precip = period['probabilityOfPrecipitation']['value']
|
|
if not precip:
|
|
precip = ''
|
|
else:
|
|
precip = ", {0}% chance precip".format(precip)
|
|
|
|
if not period['name']:
|
|
prefix = period['startTime']
|
|
else:
|
|
prefix = period['name']
|
|
|
|
print('{0}: {1[temperature]}°{1[temperatureUnit]}, wind {1[windSpeed]} {1[windDirection]}{2}\n [{1[shortForecast]}]'.format(prefix, period, precip))
|
|
|
|
if period['detailedForecast']:
|
|
print(textwrap.fill(period['detailedForecast'], width=70, initial_indent=' ', subsequent_indent=' ') + "\n")
|
|
|
|
print('}}}')
|