# -*- coding: utf-8 -*-
"""
send_to_wechat.py
=================
将指定图片发送到微信「文件传输助手」。

用法：
    python send_to_wechat.py <图片路径>
    python send_to_wechat.py  （不传参数则发送截图）

依赖：pip install weixin-auto
"""
import sys
import os
import time

sys.stdout.reconfigure(encoding='utf-8', errors='replace')

IMG_PATH = sys.argv[1] if len(sys.argv) > 1 else None

# 如果没传参数，先截一张当前屏幕
if not IMG_PATH:
    import subprocess
    screenshot_script = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'cdp_screenshot.py')
    if os.path.exists(screenshot_script):
        print("[INFO] 未指定图片，先截图...")
        result = subprocess.run(
            [sys.executable, screenshot_script],
            capture_output=True, encoding='utf-8', errors='replace', timeout=15
        )
        for line in result.stdout.splitlines():
            if line.startswith('SCREENSHOT_SAVED:'):
                IMG_PATH = line.split(':', 1)[1].strip()
                print(f"[INFO] 截图路径：{IMG_PATH}")
                break
    if not IMG_PATH:
        print("[ERROR] 请传入图片路径，或确保 cdp_screenshot.py 在同目录下")
        sys.exit(1)

if not os.path.exists(IMG_PATH):
    print(f"[ERROR] 文件不存在：{IMG_PATH}")
    sys.exit(1)

print(f"[INFO] 准备发送图片：{IMG_PATH}")

try:
    import wxauto
    wx = wxauto.WeChat()
    print(f"[OK] 微信已连接：{wx.GetSessionList()[:1]}")
except Exception as e:
    print(f"[ERROR] 连接微信失败：{e}")
    print("[提示] 请确保微信 PC 客户端已登录并在前台运行")
    sys.exit(1)

# 发送图片到文件传输助手
try:
    wx.SendFiles(IMG_PATH, who='文件传输助手')
    print("[OK] 图片已发送到「文件传输助手」，请查看手机微信！")
except Exception as e:
    print(f"[ERROR] 发送失败：{e}")
    sys.exit(1)
