Здравствуйте. Суть проблемы в следующем - при попытке отправить GET запрос по API - долгое ожидание и в конечном итоге таймаут. На других системах все работает без каких либо проблем.
import asyncio
import requests
import datetime
from aiogram import Bot, Dispatcher, types
from aiogram.filters.command import Command
from aiogram import F
bot = Bot(token='')
dispatcher = Dispatcher()
print("Работает!")
@dispatcher.message()
async def get_weather(message: types.Message):
if message.text != "/start":
try:
city = message.text
url = "http://api.openweathermap.org/data/2.5/weather?q=" +city + "&lang=ru&units=metric&appid="
response = requests.get(url)
print("Response status code: " + str(response.status_code))
data = response.json()
#print(data)
await message.reply("Получаю данные по API ...")
city = data["name"]
print(city)
cur_temp = data["main"]["temp"]
print(cur_temp)
wind = data["wind"]["speed"]
print(wind)
code_to_smile = {
"Clear": "Ясно \U00002600",
"Clouds": "Облачно \U00002601",
"Rain": "Дождь \U00002614",
"Drizzle": "Дождь \U00002614",
"Thunderstorm": "Гроза \U000026A1",
"Snow": "Снег \U0001F328",
"Mist": "Туман \U0001F32B"
}
weather_description = data["weather"][0]["main"]
print(weather_description)
if weather_description in code_to_smile:
wd = code_to_smile[weather_description]
else:
wd = "Ошибка"
print(wd)
await message.reply(f"{datetime.datetime.now().strftime('%d-%m-%Y %H:%M')}\n"
f"Погода в городе: {city}\nТемпература: {cur_temp}°C {wd}"
)
except:
await message.reply("Проверь название города!")