#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
飞书云盘自动上传脚本
功能：将本地备份自动上传到飞书云盘指定文件夹
"""

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

# 添加项目路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

# 飞书配置
FOLDER_TOKEN = "C9jPf8MVwlvWgldZ7VHcHrLTnCf"  # openclaw 文件夹
VECTOR_FOLDER_NAME = "向量记忆系统"

# 导入备份模块
from vector_memory import VectorMemorySystem
from memory_backup import MemoryBackup


def upload_file_to_feishu(file_path: str, folder_token: str) -> dict:
    """上传文件到飞书云盘"""
    import requests
    
    # 这个需要飞书开放平台的应用有云空间权限
    # 使用用户身份调用 API（需要用户授权）
    print(f"📤 准备上传: {file_path}")
    
    # 方案：返回手动上传指引
    return {
        "success": False,
        "message": "需要飞书应用权限",
        "file_path": str(file_path)
    }


def do_backup_and_upload():
    """执行备份并尝试上传"""
    print("=" * 60)
    print("🧠 向量记忆系统 - 定时备份")
    print("=" * 60)
    print(f"⏰ 执行时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 1. 获取 API Key
    api_key = os.getenv("SILICONFLOW_API_KEY")
    if not api_key:
        print("❌ 未设置 SILICONFLOW_API_KEY")
        return False
    
    # 2. 执行本地备份
    try:
        vm = VectorMemorySystem(api_key=api_key)
        backup = MemoryBackup(backup_dir="./backups")
        result = backup.backup_all(vm)
        
        print(f"\n✅ 本地备份完成!")
        print(f"   - JSON: {result['json']}")
        print(f"   - Markdown: {result['markdown']}")
        
    except Exception as e:
        print(f"❌ 备份失败: {e}")
        return False
    
    # 3. 尝试上传到飞书（需要权限）
    print(f"\n📤 飞书云盘上传...")
    # 这里可以后续添加自动上传逻辑
    
    print(f"\n" + "=" * 60)
    print("✅ 定时备份完成!")
    print("=" * 60)
    
    return True


def main():
    """主函数"""
    # 直接执行备份
    success = do_backup_and_upload()
    
    if success:
        print("\n🎉 备份成功完成!")
    else:
        print("\n❌ 备份失败，请检查日志")
        sys.exit(1)


if __name__ == "__main__":
    main()
