mirror of
https://github.com/KevinMidboe/termForecast.git
synced 2025-10-29 09:50:18 +00:00
Now we can succefully find location based on IP, translate that to a geoLocation with google GeoCode api and use the location names with yr to get a textual weather forcast. Then we output the temperature and emojified forcast text.
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
# @Author: KevinMidboe
|
# @Author: KevinMidboe
|
||||||
# @Date: 2017-07-27 21:26:53
|
# @Date: 2017-07-27 21:26:53
|
||||||
# @Last Modified by: KevinMidboe
|
# @Last Modified by: KevinMidboe
|
||||||
# @Last Modified time: 2017-07-29 18:36:36
|
# @Last Modified time: 2017-07-30 10:34:41
|
||||||
|
|
||||||
# TODO LIST
|
# TODO LIST
|
||||||
# Get coordinates from IP ✔
|
# Get coordinates from IP ✔
|
||||||
@@ -65,62 +65,7 @@ class WeatherForcast(object):
|
|||||||
def __init__(self, area=None):
|
def __init__(self, area=None):
|
||||||
# TODO search for area coordinates in a map
|
# TODO search for area coordinates in a map
|
||||||
self.area = area
|
self.area = area
|
||||||
self.symbol_table = {
|
|
||||||
'Clear sky': '☀️',
|
|
||||||
'Fair': '🌤',
|
|
||||||
'Partly cloudy': '⛅️',
|
|
||||||
'Cloudy': '☁️',
|
|
||||||
|
|
||||||
'Light rain showers': '🌦',
|
|
||||||
'Rain showers': '🌦 ☂️',
|
|
||||||
'Heavy rain showers': '🌦 ☔️',
|
|
||||||
|
|
||||||
'Light rain showers and thunder': '',
|
|
||||||
'Rain showers AND thunder': '',
|
|
||||||
'Heavy rain showers and thunder': '',
|
|
||||||
|
|
||||||
'Light sleet showers': '',
|
|
||||||
'Sleet showers': '',
|
|
||||||
'Heavy sleet showers': '',
|
|
||||||
|
|
||||||
'Light sleet showers and thunder': '',
|
|
||||||
'Sleet showers and thunder': '',
|
|
||||||
'Heavy sleet showers and thunder': '',
|
|
||||||
|
|
||||||
'Light snow showers': '',
|
|
||||||
'Snow showers': '',
|
|
||||||
'Heavy snow showers': '',
|
|
||||||
|
|
||||||
'Light snow showers and thunder': '',
|
|
||||||
'Snow showers and thunder': '',
|
|
||||||
'Heavy snow showers and thunder': '',
|
|
||||||
|
|
||||||
'Light rain': '',
|
|
||||||
'Rain': '',
|
|
||||||
'Heavy rain': '',
|
|
||||||
|
|
||||||
'Light rain and thunder': '',
|
|
||||||
'Rain and thunder': '',
|
|
||||||
'Heavy rain and thunder': '',
|
|
||||||
|
|
||||||
'Light sleet': '',
|
|
||||||
'Sleet': '',
|
|
||||||
'Heavy sleet': '',
|
|
||||||
|
|
||||||
'Light sleet and thunder': '',
|
|
||||||
'Sleet and thunder': '',
|
|
||||||
'Heavy sleet and thunder': '',
|
|
||||||
|
|
||||||
'Light Snow': '',
|
|
||||||
'Snow': '',
|
|
||||||
'Heavy Snow': '',
|
|
||||||
'Light snow and thunder': '',
|
|
||||||
'Snow and thunder': '',
|
|
||||||
'Heavy snow and thunder': '',
|
|
||||||
'Fog': ''
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
self.name = None
|
self.name = None
|
||||||
self.number = None
|
self.number = None
|
||||||
self.variable = None
|
self.variable = None
|
||||||
@@ -130,26 +75,27 @@ class WeatherForcast(object):
|
|||||||
self.number = symbol_obj['@number']
|
self.number = symbol_obj['@number']
|
||||||
self.variable = symbol_obj['@var']
|
self.variable = symbol_obj['@var']
|
||||||
|
|
||||||
|
def parseYrTemperature(self, temperature_obj):
|
||||||
|
return temperature_obj['@value'] + ' ' + temperature_obj['@unit']
|
||||||
|
|
||||||
def now(self):
|
def now(self):
|
||||||
location = Location()
|
location = Location()
|
||||||
self.area = location.getAreaName()
|
self.area = location.getAreaName()
|
||||||
# print('Area: ', self.area)
|
|
||||||
# print(' - - - - - - - - ')
|
|
||||||
|
|
||||||
# Create seperate function for formatting
|
# Create seperate function for formatting
|
||||||
locationName = '/'.join([self.area['country'], self.area['municipality'], self.area['town'], self.area['street']])
|
locationName = '/'.join([self.area['country'], self.area['municipality'], self.area['town'], self.area['street']])
|
||||||
|
|
||||||
|
# Use the defined location name with yr API for location based weather information
|
||||||
weather = Yr(location_name=locationName)
|
weather = Yr(location_name=locationName)
|
||||||
now = json.loads(weather.now(as_json=True))
|
now = json.loads(weather.now(as_json=True))
|
||||||
|
|
||||||
self.symbolVariables(now['symbol'])
|
|
||||||
|
temperature_output = self.parseYrTemperature(now['temperature'])
|
||||||
|
|
||||||
emojiParser = EmojiParser(now['symbol']['@name'])
|
emojiParser = EmojiParser(now['symbol']['@name'])
|
||||||
print(emojiParser.convertSematicsToEmoji())
|
weatherIcon_output = emojiParser.convertSematicsToEmoji()
|
||||||
temp = now['temperature']
|
|
||||||
print(temp['@value'] + ' ' + temp['@unit'] + ' ' + self.symbol_table[self.name])
|
|
||||||
|
|
||||||
|
print('%s %s' % (temperature_output, weatherIcon_output))
|
||||||
|
|
||||||
|
|
||||||
class TermWeather(object):
|
class TermWeather(object):
|
||||||
|
|||||||
Reference in New Issue
Block a user