import requests from src.config import TelegramConfig def send_message(tg_cfg: TelegramConfig, text: str): url = f"https://api.telegram.org/bot{tg_cfg.bot_token}/sendMessage" payload = { "chat_id": tg_cfg.chat_id, "text": text, "parse_mode": "MarkdownV2", } resp = requests.post(url, json=payload, timeout=30) resp.raise_for_status() _priority_icon = {"high": "๐Ÿ”ด", "medium": "๐ŸŸก", "low": "๐ŸŸข"} def format_summary(data: dict) -> str: priority = data.get("priority", "medium") icon = _priority_icon.get(priority, "โšช") lines = [ f"*๐Ÿ“ง ๆ–ฐ้‚ฎไปถๆ‘˜่ฆ*", f"โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”", f"*ๅ‘ไปถไบบ:* {_escape(data.get('sender', 'ๆœช็Ÿฅ'))}", f"*ไธป้ข˜:* {_escape(data.get('subject', 'ๆ— ไธป้ข˜'))}", f"*ไผ˜ๅ…ˆ็บง:* {icon} {priority.upper()}", "", _escape(data.get("summary", "")), "", ] if data.get("action_required"): lines.append(f"*๐Ÿ“Œ ้œ€่ฆๅค„็†:* ๆ˜ฏ") items = data.get("action_items", []) if items: lines.append(f"*ๅพ…ๅŠžไบ‹้กน:*") for item in items: lines.append(f" โ€ข {_escape(item)}") lines.append("") points = data.get("key_points", []) if points: lines.append(f"*ๅ…ณ้”ฎ่ฆ็‚น:*") for p in points: lines.append(f" โ€ข {_escape(p)}") return "\n".join(lines) def _escape(text: str) -> str: special = "_*[]()~`>#+-=|{}.!" for ch in special: text = text.replace(ch, f"\\{ch}") return text