From 5a067de1893b82d64117051d6a712cda2ba9d3e5 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Thu, 19 Mar 2026 14:15:15 +0900 Subject: [PATCH] =?UTF-8?q?fix(morning=5Fbriefing):=20CalDAV=20host.docker?= =?UTF-8?q?.internal=20=ED=95=B4=EA=B2=B0,=20field=5Freports=20=EC=BB=AC?= =?UTF-8?q?=EB=9F=BC=EB=AA=85,=20Karakeep=20env=20var?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CALDAV_BRIDGE_URL: host.docker.internal → 127.0.0.1 치환 (네이티브 실행 대응) - field_reports: description → summary (실제 스키마 반영) - KARAKEEP_URL: KARAKEEP_API_URL env var도 체크 (맥미니 .env 호환) Co-Authored-By: Claude Opus 4.6 --- morning_briefing.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/morning_briefing.py b/morning_briefing.py index 31634be..e3e731f 100644 --- a/morning_briefing.py +++ b/morning_briefing.py @@ -13,8 +13,8 @@ load_dotenv() logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") logger = logging.getLogger("morning_briefing") -CALDAV_BRIDGE_URL = os.getenv("CALDAV_BRIDGE_URL", "http://127.0.0.1:8092") -KARAKEEP_URL = os.getenv("KARAKEEP_URL", "http://localhost:3000") +CALDAV_BRIDGE_URL = os.getenv("CALDAV_BRIDGE_URL", "http://127.0.0.1:8092").replace("host.docker.internal", "127.0.0.1") +KARAKEEP_URL = os.getenv("KARAKEEP_API_URL", os.getenv("KARAKEEP_URL", "http://localhost:3000")) KARAKEEP_API_KEY = os.getenv("KARAKEEP_API_KEY", "") GPU_OLLAMA_URL = os.getenv("GPU_OLLAMA_URL", "http://192.168.1.186:11434") SYNOLOGY_CHAT_WEBHOOK_URL = os.getenv("SYNOLOGY_CHAT_WEBHOOK_URL", "") @@ -84,13 +84,13 @@ def fetch_open_reports() -> list[dict]: conn = get_db_connection() with conn.cursor() as cur: cur.execute( - "SELECT category, description, created_at FROM field_reports " + "SELECT category, summary, created_at FROM field_reports " "WHERE status = 'open' " "ORDER BY created_at DESC LIMIT 10" ) rows = cur.fetchall() conn.close() - return [{"category": r[0], "description": r[1], "created_at": r[2]} for r in rows] + return [{"category": r[0], "summary": r[1], "created_at": r[2]} for r in rows] except Exception as e: logger.error(f"Reports fetch failed: {e}") return [] @@ -206,7 +206,7 @@ def format_briefing(events: list | None, mails: list | None, lines = [] for r in reports[:limit]: cat = r.get("category", "") - desc = (r.get("description") or "")[:50] + desc = (r.get("summary") or "")[:50] created = r.get("created_at") date_str = "" if created: