"""
测试网络图片下载功能
"""
import asyncio
import json
from xhs_publish import XHSPublishService


async def test_network_images():
    """测试网络图片功能"""
    
    print("="*50)
    print("网络图片下载功能测试")
    print("="*50)
    print()
    
    # 1. 准备测试 Cookie（从 cookies.json 读取）
    try:
        with open('cookies.json', 'r', encoding='utf-8') as f:
            cookies = json.load(f)
        print(f"✅ 成功读取 {len(cookies)} 个 Cookie")
    except FileNotFoundError:
        print("❌ cookies.json 文件不存在")
        print("请先运行登录获取 Cookie:")
        print("  python xhs_cli.py login <手机号> <验证码>")
        return
    
    # 2. 准备测试数据
    title = "【测试】网络图片发布测试"
    content = """测试使用网络 URL 图片发布笔记 📸

本次测试使用了：
✅ 网络 URL 图片（picsum.photos）
✅ 自动下载功能
✅ 临时文件管理

如果你看到这条笔记，说明网络图片功能正常！"""
    
    # 3. 使用网络图片 URL
    images = [
        "https://picsum.photos/800/600?random=test1",
        "https://picsum.photos/800/600?random=test2",
        "https://picsum.photos/800/600?random=test3"
    ]
    
    print(f"\n测试图片 URL:")
    for i, url in enumerate(images, 1):
        print(f"  {i}. {url}")
    
    tags = ["测试", "网络图片", "自动发布"]
    
    # 4. 创建发布服务
    print("\n开始测试发布...")
    publisher = XHSPublishService(cookies)
    
    # 5. 执行发布
    result = await publisher.publish(
        title=title,
        content=content,
        images=images,
        tags=tags,
        cleanup=True  # 自动清理临时文件
    )
    
    # 6. 显示结果
    print("\n" + "="*50)
    print("测试结果:")
    print(json.dumps(result, ensure_ascii=False, indent=2))
    print("="*50)
    
    if result.get('success'):
        print("\n✅ 测试成功！网络图片功能正常")
        if 'url' in result:
            print(f"📎 笔记链接: {result['url']}")
    else:
        print(f"\n❌ 测试失败: {result.get('error')}")


if __name__ == "__main__":
    asyncio.run(test_network_images())
