import asyncio from utils.pogoda import fetch_weather, format_weather_data_for_console from utils.news import fetch_rss, format_articles, RSS_URL_ARTICLES, RSS_URL_POSTS from utils.cat import fetch_cat async def morning(stop_event, bot): """Вывести погоду, лучшие статьи за сутки и котика""" api_url = "https://wttr.in/Magnitogorsk?format=j1&lang=ru" # Параллельный запрос погоды, новостей и котика weather_data, articles, posts, cat_url = await asyncio.gather( fetch_weather(api_url), fetch_rss(RSS_URL_ARTICLES), fetch_rss(RSS_URL_POSTS), fetch_cat(), ) print("Доброе утро!\n") # --- Котик --- if cat_url: print(f"Котик: {cat_url}\n") else: print("Котика получить не удалось.\n") # --- Погода --- if weather_data is not None: formatted = format_weather_data_for_console(weather_data) if formatted: print(f"**Погода в Магнитогорске:**") for line in formatted: print(line) else: print("Не удалось получить данные о погоде.") else: print("Не удалось получить данные о погоде.") print() # --- Новости: статьи --- if articles is not None: if articles: lines = format_articles(articles, "Лучшие статьи за сутки / Искусственный интеллект / Хабr", "https://habr.com/ru/hubs/artificial_intelligence/articles/top/daily/") print("\n".join(lines)) else: print("Новостей пока нет.") else: print("Не удалось получить новости.") print() # --- Новости: посты --- if posts is not None: if posts: lines = format_articles(posts, "Лучшие новости за сутки / Искусственный интеллект / Хабr", "https://habr.com/ru/hubs/artificial_intelligence/news/top/daily/") print("\n".join(lines)) else: print("Новостей пока нет.") else: print("Не удалось получить новости.")