From 08d7b095b57f52565813e7ac3ffa24463b5b39df Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Sat, 31 Jan 2026 08:18:55 +0800 Subject: [PATCH] 'commit' --- WeiXin/ChatMonitorAll.py | 3 ++- WeiXin/WxUtil.py | 14 ++++++++++---- WeiXin/__pycache__/WxUtil.cpython-310.pyc | Bin 34178 -> 34237 bytes 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/WeiXin/ChatMonitorAll.py b/WeiXin/ChatMonitorAll.py index 376b4ac..b19f97a 100644 --- a/WeiXin/ChatMonitorAll.py +++ b/WeiXin/ChatMonitorAll.py @@ -1,6 +1,7 @@ # coding=utf-8 import os import sys +import time import logging import asyncio import hashlib @@ -315,7 +316,7 @@ class ChatMonitorBot: self.device, target_pos, reply, - auto_send=True, + auto_send=True, debug_prefix=f"Reply_{int(time.time())}" ) diff --git a/WeiXin/WxUtil.py b/WeiXin/WxUtil.py index 6ae1638..f5b0743 100644 --- a/WeiXin/WxUtil.py +++ b/WeiXin/WxUtil.py @@ -185,6 +185,9 @@ def clear_directory(dir_path, exclude_files=None): os.unlink(file_path) elif os.path.isdir(file_path): shutil.rmtree(file_path) + except PermissionError: + # 忽略正在被使用的文件(如当前的日志文件) + continue except Exception as e: logger.warning(f"Failed to delete {file_path}. Reason: {e}") @@ -226,14 +229,17 @@ def safe_device_click(d, x, y): 安全的点击操作,包含简单的异常捕获和重试逻辑 """ try: - d.click(x, y) + # 强制转换为原生 int,防止 numpy.int64 导致的 JSON 序列化错误 + ix, iy = int(x), int(y) + d.click(ix, iy) return True except Exception as e: logger.warning(f"点击操作失败 ({x}, {y}): {e},尝试重新连接并重试...") try: # 尝试重新初始化连接 new_d = u2.connect() - new_d.click(x, y) + ix, iy = int(x), int(y) + new_d.click(ix, iy) return True except Exception as e2: logger.error(f"重试点击操作依然失败: {e2}") @@ -818,7 +824,7 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name=" # 执行操作:长按 -> 转文字 logger.info(f"正在长按语音消息 ({vx}, {vy})...") - d.long_click(vx, vy, 1.0) # 缩短按压时间 + d.long_click(int(vx), int(vy), 1.0) # 确保坐标为原生 int # 轮询寻找“转文字”按钮 logger.info("正在快速寻找'转文字'按钮...") @@ -895,7 +901,7 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name=" if restore_processed_voice: logger.info("准备还原状态 (取消转文字)...") - d.long_click(vx, vy, 1.0) # 盲点原坐标 + d.long_click(int(vx), int(vy), 1.0) # 确保坐标为原生 int logger.info("正在快速寻找'隐藏文字'按钮...") cancel_template = os.path.join(TEMPLATE_DIR, "cancel_zhuan_wen_zi.jpg") diff --git a/WeiXin/__pycache__/WxUtil.cpython-310.pyc b/WeiXin/__pycache__/WxUtil.cpython-310.pyc index be5d10b91f21f526b983a337773eb32b85136f72..9eeae9d4326461e5f89746e95760217f7464b2f6 100644 GIT binary patch delta 6711 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 Bi248k delta 6757 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