#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
飞书文档同步脚本 - 修复版 v3
真正调用 openclaw feishu_doc API 同步展览报告

使用方法：
    python3 feishu_sync_fixed.py [YYYY-MM-DD]
"""

import json
import subprocess
import sys
from datetime import datetime
from pathlib import Path

# 基础配置
DATA_DIR = Path(__file__).parent / "data"
REPORT_DATE = sys.argv[1] if len(sys.argv) > 1 else datetime.now().strftime("%Y-%m-%d")

# 飞书文档配置
DOC_TOKEN = "IIpVd0zDZoJgSSxPdsXc0DzHneh"
DOC_TITLE = f"北京展览推荐 - {REPORT_DATE}"


def get_report_content():
    """获取今日报告内容"""
    report_path = DATA_DIR / f"beijing_exhibitions_{REPORT_DATE}.md"
    
    if report_path.exists():
        with open(report_path, "r", encoding="utf-8") as f:
            return f.read()
    else:
        print(f"[WARN] 报告文件不存在：{report_path}")
        return None


def sync_to_feishu(content):
    """真正调用 openclaw feishu_doc 写入飞书文档"""
    cmd = [
        "openclaw", "feishu_doc", "write",
        "--doc_token", DOC_TOKEN,
        "--title", DOC_TITLE,
        "--content", content,
    ]
    
    result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
    
    if result.returncode == 0:
        # 尝试解析输出获取 blocks_added
        try:
            resp = json.loads(result.stdout)
            blocks_added = resp.get("blocks_added", "?")
            blocks_deleted = resp.get("blocks_deleted", "?")
            print(f"  飞书文档同步成功（新增 {blocks_added} 块，删除 {blocks_deleted} 块）")
        except Exception:
            print(f"  飞书文档同步成功")
        return True
    else:
        print(f"  飞书文档同步失败：{result.stderr or result.stdout}")
        return False


def main():
    timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print(f"[{timestamp}] 开始同步飞书文档...")
    print(f"[{timestamp}] 文档标题：{DOC_TITLE}")
    print(f"[{timestamp}] 文档 Token: {DOC_TOKEN}")
    
    content = get_report_content()
    if not content:
        print(f"[{timestamp}] ✗ 无报告内容可同步")
        return 1
    
    success = sync_to_feishu(content)
    
    if success:
        print(f"[{timestamp}] ✓ 飞书文档同步完成")
        return 0
    else:
        print(f"[{timestamp}] ✗ 飞书文档同步失败")
        return 1


if __name__ == "__main__":
    sys.exit(main())
