From c3010de6ae5c18c612bc132242cf27f36dea5da5 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Thu, 27 Jul 2017 23:05:09 +0200 Subject: [PATCH] Now fetches the yr data for the current ip address. Not getting the symbol, so going to work on manual location input --- term_weather.py | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/term_weather.py b/term_weather.py index f64a2e9..e5ac68c 100755 --- a/term_weather.py +++ b/term_weather.py @@ -3,26 +3,26 @@ # @Author: KevinMidboe # @Date: 2017-07-27 21:26:53 # @Last Modified by: KevinMidboe -# @Last Modified time: 2017-07-27 22:18:07 +# @Last Modified time: 2017-07-27 23:03:19 # TOD LIST # Get coordinates from IP # Fetch coordinates from YR # Parse return data -# Match wheater description to icons +# Match weather description to icons # Check internet connection in a strict way -import fire -import geoip2.database -# from urllib2 import Request, urlopen, URLError +import fire, json, geoip2.database, ssl +from yr.libyr import Yr from requests import get +from pprint import pprint class Location(object): def __init__(self): self.reader = geoip2.database.Reader('conf/GeoLite2-City.mmdb') - self.latitude = None - self.longitude = None + self.lat = None + self.long = None def getIP(self): ip = get('https://api.ipify.org').text @@ -32,16 +32,36 @@ class Location(object): ip = self.getIP() ip_locaiton = self.reader.city(ip) - self.latitude = ip_locaiton.location.latitude - self.longitude = ip_locaiton.location.longitude + self.lat = ip_locaiton.location.latitude + self.long = ip_locaiton.location.longitude + + +class WeatherForcast(object): + """docstring for WeatherForcast""" + def __init__(self, location): + self.location = location + + def now(self): + lat = self.location.lat + long = self.location.long + print(lat, long) + + weather = Yr(coordinates=(lat, long, 10)) + now = json.loads(weather.now(as_json=True)) + pprint(now) + class TermWeather(object): - - def fetch(self, town): - print(town) + # Add now, forcast as args + def auto(self): location = Location() location.getCoordinates() + weatherForcast = WeatherForcast(location) + weatherForcast.now() + if __name__ == '__main__': + ssl._create_default_https_context = ssl._create_unverified_context + fire.Fire(TermWeather()) \ No newline at end of file