#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
快速创建草稿脚本（单账号，带封面图片）

使用方法：
 python -m xqcwechat.scripts.quick_create_draft "文章标题" "文章内容" cover.jpg

参数：
 1. 文章标题（必填）
 2. 文章内容（必填）
 3. 封面图片路径（必填，需要本地存在）
 4. 账号编号（可选，默认为账号1）

示例：
 python -m xqcwechat.scripts.quick_create_draft "我的文章" "这是文章内容" cover.jpg
 python -m xqcwechat.scripts.quick_create_draft "我的文章" "这是文章内容" cover.jpg 2
"""

import sys
import os

sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))))

from dotenv import load_dotenv

script_dir = os.path.dirname(os.path.abspath(__file__))
skill_dir = os.path.dirname(script_dir)

# 加载环境变量 - 按优先级加载
env_paths = []
skill_env = os.path.join(skill_dir, ".env")
if os.path.exists(skill_env):
    env_paths.append(skill_env)

project_root = os.path.dirname(skill_dir)
project_env = os.path.join(project_root, ".env")
if os.path.exists(project_env):
    env_paths.append(project_env)

# 加载当前工作目录的 .env（用户项目根目录）
cwd_env = os.path.join(os.getcwd(), ".env")
if os.path.exists(cwd_env) and cwd_env not in env_paths:
    env_paths.append(cwd_env)

for env_path in env_paths:
    load_dotenv(env_path, override=True)


def main():
    if len(sys.argv) < 4:
        print("用法：python -m xqcwechat.scripts.quick_create_draft <标题> <内容> <封面图片路径> [账号编号]")
        print("示例：")
        print('  python -m xqcwechat.scripts.quick_create_draft "我的文章" "这是文章内容" cover.jpg')
        print('  python -m xqcwechat.scripts.quick_create_draft "我的文章" "这是文章内容" cover.jpg 2')
        sys.exit(1)

    title = sys.argv[1]
    content = sys.argv[2]
    cover_path = sys.argv[3]
    account_num = sys.argv[4] if len(sys.argv) > 4 else "1"

    print("=" * 60)
    print(f"快速创建草稿（账号 {account_num}）")
    print("=" * 60)

    from xqcwechat import Auth, Draft, Asset

    try:
        print(f"\n1. 初始化 Auth（账号 {account_num}）...")
        auth = Auth.from_env(account_num)
        print(" ✅ Auth 初始化成功")
        print(f" 📋 app_id: {auth.app_id}")
        print(f" 📋 cache_key: {auth.cache_key}")

        print("\n2. 获取封面图片 media_id...")
        asset = Asset(auth)
        if os.path.exists(cover_path):
            cover_result = asset.add_material("image", cover_path)
            thumb_media_id = cover_result.get("media_id")
            print(f" ✅ 封面上传成功，media_id: {thumb_media_id}")
        else:
            print(f" ❌ 封面图片不存在：{cover_path}")
            sys.exit(1)

        print("\n3. 创建草稿...")
        draft = Draft(auth)
        result = draft.create_draft([{
            "title": title,
            "content": content,
            "thumb_media_id": thumb_media_id,
            "show_cover_pic": 1,
        }])

        if "media_id" in result:
            print(" ✅ 草稿创建成功！")
            print(f" 📝 media_id: {result['media_id']}")
            print("\n💡 提示：使用以下命令发布草稿：")
            print(f" python -m xqcwechat.scripts.quick_publish {result['media_id']} \"{title}\" {account_num}")
        else:
            print(f" ❌ 草稿创建失败：{result}")
            sys.exit(1)

    except Exception as e:
        print(f"\n❌ 错误：{str(e)}")
        import traceback
        traceback.print_exc()
        sys.exit(1)


if __name__ == "__main__":
    main()
