diff --git a/requirements.txt b/requirements.txt index 5f95c56..eefa827 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # Core -python-telegram-bot==21.5 +python-telegram-bot==22.8 httpx==0.28.1 aiohttp==3.14.1 diff --git a/src/bot/bot.py b/src/bot/bot.py index 696e210..7ce7535 100644 --- a/src/bot/bot.py +++ b/src/bot/bot.py @@ -10,7 +10,7 @@ from typing import Optional from zoneinfo import ZoneInfo import structlog -from telegram import Update, Message +from telegram import Update, Message, LinkPreviewOptions from telegram.ext import ( Application, CommandHandler, MessageHandler, filters, ContextTypes @@ -397,7 +397,7 @@ async def cmd_generate(update: Update, ctx: ContextTypes.DEFAULT_TYPE): await update.message.reply_text( generator.last_publish_notice, parse_mode=ParseMode.MARKDOWN, - disable_web_page_preview=True, + link_preview_options=LinkPreviewOptions(is_disabled=True), ) except Exception as e: logger.warning("Failed to send SEO summary message", error=str(e)) @@ -526,7 +526,10 @@ async def cmd_news(update: Update, ctx: ContextTypes.DEFAULT_TYPE): items = [item_from_row(r) for r in recent] for chunk in format_digest(items): - await update.message.reply_text(chunk, disable_web_page_preview=False) + # Previews activos a propósito (el digest gana con la tarjeta del link). + await update.message.reply_text( + chunk, link_preview_options=LinkPreviewOptions(is_disabled=False) + ) finally: await db_conn.close() @@ -969,7 +972,7 @@ async def _scheduler_loop(app: Application): for c in chunks: await app.bot.send_message( chat_id=news_chat_id, text=c, - disable_web_page_preview=False, + link_preview_options=LinkPreviewOptions(is_disabled=False), ) # Marca todos los pendientes (incluidos los "…y N más") await db.mark_news_notified([r["id"] for r in pending])