-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
75 lines (66 loc) · 2.58 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
def get_city_emoji() -> str:
from datetime import datetime
now = datetime.now()
if 4 <= now.hour <= 11:
return '🌇'
elif 18 <= now.hour <= 22:
return '🌆'
else:
return '🏙'
owm_keys_translation = {
'place': '📍Место',
'temp': 'Температура',
'temp_feels_like': 'Ощущается как',
'wind_speed': 'Скорость ветра',
'wind_direction': 'Направление ветра',
'clouds': 'Облачность',
'pressure': 'Давление воздуха',
'humidity': 'Влажность воздуха',
'sunrise': 'Время рассвета',
'sunset': 'Время заката',
'daylight_hours': 'Световой день',
}
gismeteo_keys_translation = {
'city': f'{get_city_emoji()} Город',
'time': 'Время',
'humidity': 'Влажность воздуха',
'pressure': 'Давление воздуха',
'temperature_now': 'Температура',
'temperature_feeled': 'Ощущается как',
'water_temperature': 'Температура воды',
'wind': 'Ветер',
'gm_activity': 'Геомагнитная активность',
}
def get_weather_emoji(weather_status: str) -> str:
weather_emojis = {
'Thunderstorm': '\U0001F329',
'Drizzle': '\U0001F327',
'Rain': '\U0001F327',
'Snow': '\U0001F328',
'Clear': '\U00002600',
'Clouds': '\U00002601',
'Mist': '\U0001F32B',
}
if weather_status not in weather_emojis.keys():
return ''
return weather_emojis[weather_status]
def make_owm_weather_data_string(weather_data: dict) -> str:
weather_data_str = ''
for key, value in weather_data.items():
if key != 'weather_status':
if key == 'weather_description':
emoji = get_weather_emoji(weather_status=weather_data['weather_status'])
if emoji:
weather_data_str += f'{emoji} {value.capitalize()}\n'
else:
weather_data_str += value.capitalize() + '\n'
elif key == 'place':
weather_data_str += f'<b>{owm_keys_translation[key]}:</b> {value}\n\n'
else:
weather_data_str += f'<b>{owm_keys_translation[key]}:</b> {value}\n'
return weather_data_str
def make_gismeteo_weather_data_string(weather_data: dict) -> str:
weather_data_str = ''
for key, value in weather_data.items():
weather_data_str += f'<b>{gismeteo_keys_translation[key]}:</b> {value}\n'
return weather_data_str