fix: log MCP bot's own outbound messages to database
Bot can't see its own messages via Telegram polling. Now logs them directly after sending so they appear in pull_updates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2a88b528d4
commit
8ede43395e
1 changed files with 19 additions and 4 deletions
|
|
@ -196,21 +196,36 @@ class BridgeBot:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def send_to_group(self, text: str, attribution: str = "claude.ai"):
|
async def send_to_group(self, text: str, attribution: str = "claude.ai"):
|
||||||
"""Send an attributed message to the group chat."""
|
"""Send an attributed message to the group chat and log it."""
|
||||||
formatted = f"*\\[{attribution}\\]* {self._escape_markdown(text)}"
|
formatted = f"*\\[{attribution}\\]* {self._escape_markdown(text)}"
|
||||||
|
result = None
|
||||||
try:
|
try:
|
||||||
await self.bot.send_message(
|
result = await self.bot.send_message(
|
||||||
chat_id=self.group_chat_id,
|
chat_id=self.group_chat_id,
|
||||||
text=formatted,
|
text=formatted,
|
||||||
parse_mode="MarkdownV2",
|
parse_mode="MarkdownV2",
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
# Fallback to plain text if markdown fails
|
|
||||||
plain = f"[{attribution}] {text}"
|
plain = f"[{attribution}] {text}"
|
||||||
await self.bot.send_message(
|
result = await self.bot.send_message(
|
||||||
chat_id=self.group_chat_id,
|
chat_id=self.group_chat_id,
|
||||||
text=plain,
|
text=plain,
|
||||||
)
|
)
|
||||||
|
finally:
|
||||||
|
# Log the sent message so it appears in pull_updates
|
||||||
|
if result:
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
self.db.insert_message(
|
||||||
|
telegram_message_id=result.message_id,
|
||||||
|
chat_id=self.group_chat_id,
|
||||||
|
sender_type="mcp_bot",
|
||||||
|
sender_id=self._my_bot_id,
|
||||||
|
sender_name=f"[{attribution}]",
|
||||||
|
content=text,
|
||||||
|
reply_to_message_id=None,
|
||||||
|
has_attachment=False,
|
||||||
|
created_at=datetime.now(timezone.utc).isoformat(),
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _escape_markdown(text: str) -> str:
|
def _escape_markdown(text: str) -> str:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue