Files
aiData/WeiXin/T2_GetHistory.py
HuangHai 4868198143 'commit'
2026-01-26 09:50:09 +08:00

76 lines
2.3 KiB
Python

# coding=utf-8
import time
import logging
import sys
import os
import asyncio
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if project_root not in sys.path:
sys.path.append(project_root)
from WeiXin import WxUtil
from WeiXin.WxUtil import analyze_chat_image
# 配置日志
log_dir = WxUtil.LOG_DIR
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler(os.path.join(log_dir, "T2_GetHistory.log"), encoding='utf-8'),
logging.StreamHandler()
]
)
logger = logging.getLogger("T2_GetHistory")
async def get_history(target_name="对方"):
# 运行前清理 Logs 和 Output
WxUtil.setup_script_environment()
logger.info("开始执行 T2: 获取当前屏幕对话历史...")
d = WxUtil.connect_device()
if not d:
return
# 截图
screenshot_dir = WxUtil.OUTPUT_DIR
if not os.path.exists(screenshot_dir):
os.makedirs(screenshot_dir)
timestamp = time.strftime("%Y%m%d_%H%M%S")
filename = f"T2_history_{timestamp}.jpg"
save_path = os.path.join(screenshot_dir, filename)
try:
d.screenshot(save_path)
logger.info(f"截图已保存: {save_path}")
analyzed_filename = f"T2_history_{timestamp}_analyzed.jpg"
analyzed_path = os.path.join(screenshot_dir, analyzed_filename)
# 调用 WxUtil 中的分析函数
dialogue_log, input_box = await analyze_chat_image(save_path, analyzed_path, device=d, target_name=target_name)
logger.info("✅ T2 识别结果:")
if dialogue_log:
for log in dialogue_log:
print(log) # 打印到控制台
else:
logger.info("未提取到对话内容或当前屏幕无对话气泡。")
# 检查是否触发了转换
if isinstance(dialogue_log, list) and any("[正在转换语音...]" in str(msg) for msg in dialogue_log):
logger.info("检测到语音正在转文字,建议等待转换完成后重新运行 T2 以获取完整内容。")
return
except Exception as e:
logger.error(f"❌ T2 执行失败: {e}")
if __name__ == "__main__":
asyncio.run(get_history())