From 81761a576b3cd2ebe49a77567ad5d2e2cf17795e Mon Sep 17 00:00:00 2001 From: zhangkai <2403741920@qq.com> Date: Tue, 4 Nov 2025 14:39:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=A8=E9=83=A8=E5=81=9C?= =?UTF-8?q?=E6=AD=A2=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=81=9C=E6=AD=A2=E7=9A=84=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/ScriptManager.py | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/script/ScriptManager.py b/script/ScriptManager.py index 2315df6..52d5809 100644 --- a/script/ScriptManager.py +++ b/script/ScriptManager.py @@ -469,7 +469,6 @@ class ScriptManager(): LogManager.method_info("=== 外层 while 新一轮 ===", "关注打招呼", udid) if event.is_set(): - print("任务终止3") break # 获取一个主播, @@ -511,6 +510,9 @@ class ScriptManager(): # 查找输入框 input = session.xpath('//XCUIElementTypeSearchField') + if event.is_set(): + break + # 如果找到了输入框,就点击并且输入内容 if input.exists: input.click() @@ -528,13 +530,20 @@ class ScriptManager(): LogManager.method_info(f"输入主播id:{aid or '暂无数据'}", "关注打招呼", udid) input.set_text(f"{aid or '暂无数据'}\n") + # 定位 "关注" 按钮 通过关注按钮的位置点击主播首页 session.appium_settings({"snapshotMaxDepth": 25}) try: + if event.is_set(): + break + # 点击进入首页 ControlUtils.clickFollow(session, aid) + + if event.is_set(): + break LogManager.method_info("点击进入主播首页", "关注打招呼", udid) except wda.WDAElementNotFoundError: LogManager.method_info("未找到进入主播首页的按钮,使用第二个方案。", "关注打招呼", udid) @@ -546,6 +555,10 @@ class ScriptManager(): event.wait(timeout=5) # 找到并点击第一个视频 + + if event.is_set(): + break + cellClickResult, workCount = ControlUtils.clickFirstVideoFromDetailPage(session) LogManager.method_info(f"点击第一个视频", "关注打招呼", udid) @@ -562,6 +575,9 @@ class ScriptManager(): count = workCount while count != 0: + if event.is_set(): + break + LogManager.method_info("准备停止脚本", method="task") for _ in range(5): LogManager.method_info("停止脚本中", method="task") @@ -597,6 +613,8 @@ class ScriptManager(): event.wait(timeout=1) LogManager.method_info("停止脚本成功", method="task") + + # 使用OCR进行评论 if isComment: self.comment_flow(filePath, session, udid, 100, 100) @@ -619,6 +637,8 @@ class ScriptManager(): LogManager.method_info("viewAnchorVideo 检测到停止,提前退出", "关注打招呼", udid) return + if event.is_set(): + break # 如果打开视频失败。说明该主播没有视频 if cellClickResult == True: # 观看主播视频 @@ -632,9 +652,15 @@ class ScriptManager(): ControlUtils.swipe_down(udid) event.wait(timeout=2) + + if event.is_set(): + break + msgButton = AiUtils.getSendMesageButton(session) event.wait(timeout=2) + + if msgButton.exists: # 进入聊天页面 msgButton.click() @@ -695,6 +721,8 @@ class ScriptManager(): msg = text LogManager.method_info(f"即将发送的私信内容:{msg}", "关注打招呼", udid) + if event.is_set(): + break # 准备发送一条信息 chatInput = session.xpath("//TextView") if chatInput.exists: @@ -733,7 +761,8 @@ class ScriptManager(): # goBack(4) # session.appium_settings({"snapshotMaxDepth": 15}) # continue - + if event.is_set(): + break session.appium_settings({"snapshotMaxDepth": 15}) goBack(3) @@ -751,6 +780,8 @@ class ScriptManager(): LogManager.method_info("即将要回复消息", "关注打招呼", udid) LogManager.method_info(f"是否需要进行监控消息:{needReply}", "监控消息") + if event.is_set(): + break if needReply: print("如果需要回复主播消息。走此逻辑")