From 125ef97f4ce418a6270affe0335209ea5a8442ac Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Thu, 27 Jul 2017 23:40:54 +0200 Subject: [PATCH] Now fetches the temp for current location based on ip address. Need to make own lib for yr because we need some of the return data from yr that is stripped from this lib. --- term_weather.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/term_weather.py b/term_weather.py index e5ac68c..ef23f76 100755 --- a/term_weather.py +++ b/term_weather.py @@ -3,7 +3,7 @@ # @Author: KevinMidboe # @Date: 2017-07-27 21:26:53 # @Last Modified by: KevinMidboe -# @Last Modified time: 2017-07-27 23:03:19 +# @Last Modified time: 2017-07-27 23:39:00 # TOD LIST # Get coordinates from IP @@ -21,45 +21,46 @@ from pprint import pprint class Location(object): def __init__(self): self.reader = geoip2.database.Reader('conf/GeoLite2-City.mmdb') - self.lat = None - self.long = None + self.getIP() def getIP(self): ip = get('https://api.ipify.org').text - return ip + self.ip = self.reader.city(ip) def getCoordinates(self): - ip = self.getIP() - ip_locaiton = self.reader.city(ip) - - self.lat = ip_locaiton.location.latitude - self.long = ip_locaiton.location.longitude + lat = self.ip.location.latitude + long = self.ip.location.longitude + return [lat, long] class WeatherForcast(object): - """docstring for WeatherForcast""" - def __init__(self, location): - self.location = location + def __init__(self, area=None): + # TODO search for area coordinates in a map + self.area = area def now(self): - lat = self.location.lat - long = self.location.long - print(lat, long) + location = Location() + lat, long = location.getCoordinates() + print('Coords: ', lat, long) + print(' - - - - - - - - ') weather = Yr(coordinates=(lat, long, 10)) now = json.loads(weather.now(as_json=True)) - pprint(now) + + temp = now['location']['temperature'] + print(temp['@value'] + ' ' + temp['@unit']) class TermWeather(object): # Add now, forcast as args def auto(self): - location = Location() - location.getCoordinates() + WeatherForcast.now(self) - weatherForcast = WeatherForcast(location) + def fetch(self, area=None): + weatherForcast = WeatherForcast(area) weatherForcast.now() + if __name__ == '__main__': ssl._create_default_https_context = ssl._create_unverified_context