#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
向量记忆系统 - 飞书云盘同步脚本
功能：将本地备份自动上传到飞书云盘
"""

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

# 飞书云盘配置
FOLDER_TOKEN = "C9jPf8MVwlvWgldZ7VHcHrLTnCf"  # openclaw 文件夹


def get_latest_backup():
    """获取最新备份文件"""
    backup_dir = Path("./backups")
    if not backup_dir.exists():
        return None
    
    # 找最新的 JSON 备份
    json_files = list(backup_dir.glob("memory_backup_*.json"))
    if not json_files:
        return None
    
    return max(json_files, key=os.path.getmtime)


def upload_to_feishu(file_path: str):
    """上传文件到飞书云盘"""
    try:
        # 使用飞书 CLI 或 API 上传
        # 这里需要飞书开放平台的应用权限
        print(f"📤 准备上传: {file_path}")
        print(f"⚠️ 飞书云盘上传需要应用权限，请手动上传")
        print(f"   1. 打开飞书云盘")
        print(f"   2. 进入 openclaw 文件夹")
        print(f"   3. 上传文件: {file_path}")
        return False
    except Exception as e:
        print(f"❌ 上传失败: {e}")
        return False


def sync_to_feishu():
    """同步最新备份到飞书"""
    print("=" * 50)
    print("🧠 向量记忆系统 - 飞书云盘同步")
    print("=" * 50)
    
    # 获取最新备份
    latest = get_latest_backup()
    if not latest:
        print("❌ 没有找到备份文件，请先运行: python3 memory_backup.py backup")
        return
    
    print(f"\n📦 最新备份: {latest.name}")
    print(f"   大小: {latest.stat().st_size / 1024:.1f} KB")
    print(f"   时间: {datetime.fromtimestamp(latest.stat().st_mtime)}")
    
    # 提示用户手动上传
    print("\n" + "=" * 50)
    print("📋 手动上传步骤:")
    print("=" * 50)
    print(f"1. 打开飞书 → 云空间 → openclaw 文件夹")
    print(f"2. 点击「上传」按钮")
    print(f"3. 选择文件: {latest.absolute()}")
    print(f"4. 完成！")
    print("=" * 50)


def main():
    import argparse
    parser = argparse.ArgumentParser(description="飞书云盘同步工具")
    parser.add_argument("command", nargs="?", default="sync", 
                       help="命令: sync(同步), latest(查看最新)")
    args = parser.parse_args()
    
    if args.command == "sync":
        sync_to_feishu()
    elif args.command == "latest":
        latest = get_latest_backup()
        if latest:
            print(f"📦 最新备份: {latest.name}")
            print(f"   路径: {latest.absolute()}")
        else:
            print("❌ 没有找到备份文件")


if __name__ == "__main__":
    main()
