diff --git a/src/bot/bot.py b/src/bot/bot.py index e8082c0..cbc8ef3 100644 --- a/src/bot/bot.py +++ b/src/bot/bot.py @@ -465,21 +465,28 @@ async def cmd_process(update: Update, ctx: ContextTypes.DEFAULT_TYPE): processor = ContentProcessor(db, ollama) + completion_text = None + async def proc_progress(total_chunks, total_words): + nonlocal completion_text + completion_text = ( + f"🧠 *Processing complete!*\n" + f"• Chunks stored: `{total_chunks}`\n" + f"• Words researched: `{total_words:,}`\n\n" + f"Ready! Use `/generate podcast|blog|report|thread`" + ) try: - await msg.edit_text( - f"🧠 *Processing complete!*\n" - f"• Chunks stored: `{total_chunks}`\n" - f"• Words researched: `{total_words:,}`\n\n" - f"Ready! Use `/generate podcast|blog|report|thread`\n" - f"_If 0 chunks: set `QUALITY_THRESHOLD=0.3` or `0` and retry_", - parse_mode=ParseMode.MARKDOWN - ) + await msg.edit_text(completion_text, parse_mode=ParseMode.MARKDOWN) + completion_text = None # sent, no need to resend except Exception: pass await processor.process_session(session_id, topic, proc_progress) + # Fallback: if edit_text failed silently, send a new message + if completion_text: + await update.message.reply_text(completion_text, parse_mode=ParseMode.MARKDOWN) + except Exception as e: logger.error("Process command failed", error=str(e)) await update.message.reply_text(f"❌ Processing failed: {str(e)[:200]}")