Add snow emoji for precipitation when it's snowing

Also added dict for all emojis
This commit is contained in:
JuliusFreudenberger 2020-12-01 08:14:30 +01:00
parent fbb2c65fd0
commit f5c7bf8e9e

View file

@ -8,6 +8,8 @@ from exceptions import ServerCommunicationError, NoArgError, WeatherStationNotFo
token: str token: str
EMOJIS = {'feels_like': '🧑', 'rain': '', 'snow': '🌨️', 'wind': '💨', 'sun': '☀️'}
def __init__(): def __init__():
with open("openweathermap_token") as openweathermap_token: with open("openweathermap_token") as openweathermap_token:
@ -39,12 +41,16 @@ class CurrentWeather:
self.description = json_data['weather'][0]['description'] self.description = json_data['weather'][0]['description']
def __str__(self): def __str__(self):
string = f"*Now*: {self.main} | {self.temperature:.0f}°C 🧑: {self.feels_like:.0f}°C" string = f"*Now*: {self.main} | {self.temperature:.0f}°C {EMOJIS['feels_like']}: {self.feels_like:.0f}°C "
if self.rain != -1: if self.rain != -1:
string += f" ☔: {self.rain:.0f}mm" if self.main == 'Snow':
string += EMOJIS['snow']
else:
string += EMOJIS['rain']
string += f": {self.rain:.0f}mm"
string += f" 💨: {3.6 * self.wind_speed:.1f}km/h" \ string += f" {EMOJIS['wind']}: {3.6 * self.wind_speed:.1f}km/h" \
f" ☀️: {self.sunrise.strftime('%H:%M')} - {self.sunset.strftime('%H:%M')}" f" {EMOJIS['sun']}: {self.sunrise.strftime('%H:%M')} - {self.sunset.strftime('%H:%M')}"
return string return string
@ -72,11 +78,16 @@ class HourlyWeather:
self.description = json_data['weather'][0]['description'] self.description = json_data['weather'][0]['description']
def __str__(self): def __str__(self):
string = f"*{self.time.strftime('%Hh')}*: {self.main} | {self.temperature:.0f}°C 🧑: {self.feels_like:.0f}°C" string = f"*{self.time.strftime('%Hh')}*: {self.main} | {self.temperature:.0f}°C" \
f" {EMOJIS['feels_like']}: {self.feels_like:.0f}°C "
if self.probability_of_precipitation != 0: if self.probability_of_precipitation != 0:
string += f" ☔: {100 * self.probability_of_precipitation:.0f}% {self.rain}mm" if self.main == 'Snow':
string += EMOJIS['snow']
else:
string += EMOJIS['rain']
string += f": {100 * self.probability_of_precipitation:.0f}% {self.rain}mm"
string += f" 💨: {3.6 * self.wind_speed:.1f}km/h" string += f" {EMOJIS['wind']}: {3.6 * self.wind_speed:.1f}km/h"
return string return string
@ -105,10 +116,14 @@ class DailyWeather:
def __str__(self): def __str__(self):
string = f"*{self.time.strftime('%d')}*: {self.main} | {self.temp['min']:.0f}°C - {self.temp['day']:.0f}°C" \ string = f"*{self.time.strftime('%d')}*: {self.main} | {self.temp['min']:.0f}°C - {self.temp['day']:.0f}°C" \
f" - {self.temp['max']:.0f}°C 🧑: {self.feels_like:.0f}°C" f" - {self.temp['max']:.0f}°C {EMOJIS['feels_like']}: {self.feels_like:.0f}°C "
if self.probability_of_precipitation != 0: if self.probability_of_precipitation != 0:
string += f" ☔: {100 * self.probability_of_precipitation:.0f}% {self.rain}mm" if self.main == 'Snow':
string += f" 💨: {3.6 * self.wind_speed:.1f}km/h" string += EMOJIS['snow']
else:
string += EMOJIS['rain']
string += f": {100 * self.probability_of_precipitation:.0f}% {self.rain}mm"
string += f" {EMOJIS['wind']}: {3.6 * self.wind_speed:.1f}km/h"
return string return string
@ -221,6 +236,7 @@ def handle_weather(update, context):
if requested_city.name == "none": if requested_city.name == "none":
raise WeatherStationNotFoundError raise WeatherStationNotFoundError
requested_city.query_weather() requested_city.query_weather()
update.message.reply_text(requested_city.get_weather_str(), disable_notification=True, parse_mode=ParseMode.MARKDOWN) update.message.reply_text(requested_city.get_weather_str(), disable_notification=True,
parse_mode=ParseMode.MARKDOWN)
requested_city.weather.clear() requested_city.weather.clear()