"""飞书机器人通知""" import logging import threading import requests logger = logging.getLogger(__name__) def send_feishu_alert(webhook_url: str, title: str, content: str, template: str = "red"): """发送飞书卡片消息(非阻塞)""" if not webhook_url: logger.warning(f"飞书 Webhook 未配置,跳过通知: {title}") return def _send(): payload = { "msg_type": "interactive", "card": { "config": {"wide_screen_mode": True}, "header": { "title": {"tag": "plain_text", "content": title}, "template": template, }, "elements": [ { "tag": "div", "text": {"tag": "lark_md", "content": content}, } ], }, } try: resp = requests.post(webhook_url, json=payload, timeout=10) resp.raise_for_status() logger.info(f"飞书通知已发送: {title}") except Exception as e: logger.error(f"飞书通知发送失败: {e}") thread = threading.Thread(target=_send, daemon=True) thread.start()