- utils/news.py: добавлен logger, логирование ошибок RSS - utils/cat.py: добавлен logger, логирование ошибок TheCatAPI - utils/pogoda.py: улучшены логи fallback/warning при ошибках API - utils/rate_limiter.py: debug-логи при ожидании токенов - commands/pg.py, news.py, cat.py, morning.py, status.py, stats.py: logger + логи ошибок и успешного выполнения команд - console_commands/pogoda.py, news.py, cat.py, morning.py, status.py, stats.py: logger + логи выполнения - bot.py: логи запуска/остановки, проверки конфигурации, маршрутизации консольных команд, f-строки -> %s формат - ISSUES.md: снят флаг задачи по логированию - все 243 теста пройдены
38 lines
1.8 KiB
Python
38 lines
1.8 KiB
Python
import logging
|
||
|
||
from utils.news import fetch_rss, format_articles, RSS_URL_ARTICLES, RSS_URL_POSTS
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
|
||
async def news(stop_event, bot):
|
||
"""Вывести топ-5 свежих статей по AI с Habr"""
|
||
logger.info("Консольная команда: news")
|
||
articles = await fetch_rss(RSS_URL_ARTICLES)
|
||
if articles is None:
|
||
logger.warning("Консольная команда news: не удалось получить статьи")
|
||
print("Не удалось получить новости.")
|
||
return
|
||
|
||
if not articles:
|
||
logger.info("Консольная команда news: статей нет в RSS")
|
||
print("Новостей пока нет.")
|
||
return
|
||
|
||
lines = format_articles(articles, "Лучшие статьи за сутки / Искусственный интеллект / Хабr",
|
||
"https://habr.com/ru/hubs/artificial_intelligence/articles/top/daily/")
|
||
|
||
posts = await fetch_rss(RSS_URL_POSTS)
|
||
if posts is None:
|
||
logger.warning("Консольная команда news: не удалось получить посты")
|
||
elif posts:
|
||
lines.append("")
|
||
lines.extend(format_articles(posts, "Лучшие новости за сутки / Искусственный интеллект / Хабr",
|
||
"https://habr.com/ru/hubs/artificial_intelligence/news/top/daily/"))
|
||
else:
|
||
logger.info("Консольная команда news: постов нет в RSS")
|
||
|
||
for line in lines:
|
||
print(line)
|
||
logger.info("Консольная команда news: выполнена (статей: %d, постов: %d)", len(articles), len(posts) if posts else 0)
|