"""Synology Chat — incoming webhook으로 응답 전송.""" from __future__ import annotations import json import logging import httpx from config import settings logger = logging.getLogger(__name__) async def send_to_synology(text: str) -> bool: """Incoming webhook URL로 메시지 전송. 성공 시 True.""" if not settings.synology_incoming_url: logger.warning("Synology incoming URL not configured") return False payload = json.dumps({"text": text}, ensure_ascii=False) try: async with httpx.AsyncClient(verify=False, timeout=10.0) as client: resp = await client.post( settings.synology_incoming_url, data={"payload": payload}, ) if resp.status_code == 200: return True logger.error("Synology send failed: %d %s", resp.status_code, resp.text) return False except Exception: logger.exception("Failed to send to Synology Chat") return False