'commit'
This commit is contained in:
@@ -25,6 +25,35 @@ ocr_kit = EasyOcrKit()
|
||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
logger = logging.getLogger("WxUtil")
|
||||
|
||||
# 目录配置
|
||||
BASE_DATA_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
LOG_DIR = os.path.join(BASE_DATA_DIR, "Logs")
|
||||
OUTPUT_DIR = os.path.join(BASE_DATA_DIR, "Output")
|
||||
TEMPLATE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Templates")
|
||||
|
||||
def clear_directory(dir_path):
|
||||
"""清理指定目录下的所有文件"""
|
||||
if not os.path.exists(dir_path):
|
||||
os.makedirs(dir_path)
|
||||
return
|
||||
|
||||
import shutil
|
||||
for filename in os.listdir(dir_path):
|
||||
file_path = os.path.join(dir_path, filename)
|
||||
try:
|
||||
if os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
os.unlink(file_path)
|
||||
elif os.path.isdir(file_path):
|
||||
shutil.rmtree(file_path)
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to delete {file_path}. Reason: {e}")
|
||||
|
||||
def setup_script_environment():
|
||||
"""运行前清理日志和输出目录"""
|
||||
logger.info("清理运行环境: Logs 和 Output 目录...")
|
||||
clear_directory(LOG_DIR)
|
||||
clear_directory(OUTPUT_DIR)
|
||||
|
||||
def connect_device():
|
||||
"""
|
||||
连接设备并返回设备对象,同时打印详细的设备信息
|
||||
@@ -328,15 +357,14 @@ async def analyze_chat_image(image_path, output_path, device=None, target_name="
|
||||
|
||||
def clean_screenshots_dir():
|
||||
"""清理截图目录"""
|
||||
screenshot_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Screenshots")
|
||||
if not os.path.exists(screenshot_dir):
|
||||
os.makedirs(screenshot_dir)
|
||||
if not os.path.exists(OUTPUT_DIR):
|
||||
os.makedirs(OUTPUT_DIR)
|
||||
return
|
||||
|
||||
for f in os.listdir(screenshot_dir):
|
||||
for f in os.listdir(OUTPUT_DIR):
|
||||
if f.lower().endswith(('.jpg', '.png', '.jpeg')):
|
||||
try:
|
||||
os.remove(os.path.join(screenshot_dir, f))
|
||||
os.remove(os.path.join(OUTPUT_DIR, f))
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to delete {f}: {e}")
|
||||
|
||||
@@ -475,11 +503,11 @@ def perform_input_action(d, center_point, text, auto_send=True):
|
||||
try:
|
||||
# --- 新增逻辑:确保处于文字输入模式 ---
|
||||
logger.info("正在检查输入模式...")
|
||||
tmp_check_shot = os.path.join(os.path.dirname(os.path.abspath(__file__)), "temp_input_check.jpg")
|
||||
tmp_check_shot = os.path.join(OUTPUT_DIR, "temp_input_check.jpg")
|
||||
d.screenshot(tmp_check_shot)
|
||||
|
||||
wen_zi_template = r"d:\dsWork\aiData\WeiXin\Templates\wen_zi_input.jpg"
|
||||
input_text_template = r"d:\dsWork\aiData\WeiXin\Templates\input_text.jpg"
|
||||
wen_zi_template = os.path.join(TEMPLATE_DIR, "wen_zi_input.jpg")
|
||||
input_text_template = os.path.join(TEMPLATE_DIR, "input_text.jpg")
|
||||
|
||||
# 1. 检查是否存在 '切换到文字' 图标 (表示当前是语音模式)
|
||||
# 注意:这里假设 wen_zi_input.jpg 是那个“键盘”图标
|
||||
@@ -548,8 +576,8 @@ def perform_input_action(d, center_point, text, auto_send=True):
|
||||
tmp_screen = os.path.join(os.path.dirname(os.path.abspath(__file__)), "temp_send_check.jpg")
|
||||
d.screenshot(tmp_screen)
|
||||
|
||||
# 使用绝对路径
|
||||
template_path = r"d:\dsWork\aiData\WeiXin\Templates\send.jpg"
|
||||
# 使用相对路径
|
||||
template_path = os.path.join(TEMPLATE_DIR, "send.jpg")
|
||||
send_btn_pos = find_template_match(tmp_screen, template_path, threshold=0.7) # 稍微降低阈值以提高召回
|
||||
|
||||
if send_btn_pos:
|
||||
|
||||
Reference in New Issue
Block a user