Files
2nd/_company/_agents/secretary/tools/google_calendar_write.py
T
2026-05-07 22:33:12 +09:00

55 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""Google Calendar 자동 일정 등록 — secretary_calendar_write_v1.
이 스크립트는 OAuth와 실제 이벤트 생성을 직접 하지 않습니다 — VS Code
호스트(extension.ts)에서 직접 처리해요. 이 도구의 역할은:
1) 설정 상태를 확인해서 사용자에게 알려주기 (▶ 클릭 시)
2) ⚙️ 폼에서 CALENDAR_ID / DEFAULT_DURATION_MINUTES 같은 보조 설정 노출
연결 자체는 명령 팔레트에서:
Cmd+Shift+P → 'Connect AI: Google Calendar 자동 일정 연결 📅'
"""
import os, json, sys
HERE = os.path.dirname(os.path.abspath(__file__))
CONFIG = os.path.join(HERE, "google_calendar_write.json")
def main():
if not os.path.exists(CONFIG):
print("⚠️ 아직 설정이 없어요.")
print(" 명령 팔레트(Cmd+Shift+P) → 'Connect AI: Google Calendar 자동 일정 연결' 실행")
sys.exit(1)
try:
with open(CONFIG, "r", encoding="utf-8") as f:
cfg = json.load(f)
except Exception as e:
print(f"❌ 설정 파일 파싱 실패: {e}")
sys.exit(1)
cid = (cfg.get("CLIENT_ID") or "").strip()
cs = (cfg.get("CLIENT_SECRET") or "").strip()
rt = (cfg.get("REFRESH_TOKEN") or "").strip()
cal = (cfg.get("CALENDAR_ID") or "primary").strip()
dur = int(cfg.get("DEFAULT_DURATION_MINUTES") or 60)
who = (cfg.get("_CONNECTED_AS") or "").strip()
when = (cfg.get("_CONNECTED_AT") or "").strip()
print("─── Google Calendar 자동 일정 등록 상태 ───")
print(f" Client ID : {'설정됨 (' + cid[:8] + '…)' if cid else '(없음)'}")
print(f" Client Secret : {'설정됨' if cs else '(없음)'}")
print(f" Refresh Token : {'유효 ✓' if rt else '(없음)'}")
print(f" Calendar ID : {cal}")
print(f" 기본 일정 길이 : {dur}")
if who:
print(f" 연결 계정 : {who}")
if when:
print(f" 연결 시각 : {when[:19]}")
if not (cid and cs and rt):
print()
print("⚠️ 셋업이 완료되지 않았어요.")
print(" 명령 팔레트(Cmd+Shift+P) → 'Connect AI: Google Calendar 자동 일정 연결'")
sys.exit(1)
print()
print("✅ 연결 정상. 마감일(due) 있는 추적 작업이 등록되면 자동으로 캘린더에 일정이 생성됩니다.")
if __name__ == "__main__":
main()