Single-process Python app that: - Runs a Telegram bot in a group chat, logging all messages/files to libsql - Exposes send_message, pull_updates, queue_status MCP tools over HTTP - Downloads and stores file attachments with Telegram file_id + local path - Accessible via NetBird mesh at mgmt.mg:8321 (no auth needed) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
43 lines
781 B
Python
43 lines
781 B
Python
"""Shared data models."""
|
|
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class MessageRecord:
|
|
id: int
|
|
telegram_message_id: int
|
|
chat_id: int
|
|
sender_type: str
|
|
sender_id: int | None
|
|
sender_name: str | None
|
|
content: str | None
|
|
reply_to_message_id: int | None
|
|
has_attachment: bool
|
|
created_at: str
|
|
|
|
|
|
@dataclass
|
|
class AttachmentRecord:
|
|
id: int
|
|
message_id: int
|
|
file_type: str
|
|
file_id: str
|
|
file_unique_id: str
|
|
file_name: str | None
|
|
mime_type: str | None
|
|
file_size: int | None
|
|
local_path: str | None
|
|
caption: str | None
|
|
created_at: str
|
|
|
|
|
|
@dataclass
|
|
class OutboundMessage:
|
|
id: int
|
|
chat_id: int
|
|
content: str
|
|
attribution: str
|
|
status: str
|
|
created_at: str
|
|
sent_at: str | None
|