20250904-初步功能已完成
This commit is contained in:
@@ -145,10 +145,21 @@ class ScriptManager():
|
||||
LogManager.method_error(f"刷视频过程出现错误,重试", "养号", udid)
|
||||
raise e # 抛出给上层,触发重生机制
|
||||
|
||||
except wda.WDARequestError as e:
|
||||
print(e)
|
||||
LogManager.method_info("WDA 内部崩溃(nil 插入),准备重启 WDA", "养号", udid)
|
||||
AiUtils.kill_wda(udid, ev.WdaAppBundleId)
|
||||
time.sleep(1)
|
||||
AiUtils.launch_wda(udid, ev.WdaAppBundleId)
|
||||
except Exception as e:
|
||||
LogManager.method_error(f"[{udid}] 养号出现异常,将重启流程: {e}", "养号", udid)
|
||||
retries += 1
|
||||
time.sleep(3) # 等待后重生
|
||||
LogManager.method_error(f"greetNewFollowers 出现最终异常: {e},准备第 {retries} 次重试", "养号", udid)
|
||||
time.sleep(3)
|
||||
if retries:
|
||||
LogManager.method_info("WDA 连接失败,准备重启 WDA", "养号", udid)
|
||||
AiUtils.kill_wda(udid, ev.WdaAppBundleId)
|
||||
time.sleep(1)
|
||||
AiUtils.launch_wda(udid, ev.WdaAppBundleId)
|
||||
|
||||
# 观看直播
|
||||
def watchLiveForGrowth(self, udid, event, max_retries=None):
|
||||
@@ -285,11 +296,21 @@ class ScriptManager():
|
||||
# break
|
||||
self.greetNewFollowers(udid, needReply, event)
|
||||
|
||||
|
||||
except wda.WDARequestError as e:
|
||||
LogManager.method_info("WDA 内部崩溃(nil 插入),准备重启 WDA", "关注打招呼", udid)
|
||||
AiUtils.kill_wda(udid, ev.WdaAppBundleId)
|
||||
time.sleep(1)
|
||||
AiUtils.launch_wda(udid, ev.WdaAppBundleId)
|
||||
except Exception as e:
|
||||
retries += 1
|
||||
LogManager.method_error(f"greetNewFollowers 出现异常: {e},准备第 {retries} 次重试", "关注打招呼", udid)
|
||||
LogManager.method_error(f"greetNewFollowers 出现最终异常: {e},准备第 {retries} 次重试", "关注打招呼",
|
||||
udid)
|
||||
time.sleep(3)
|
||||
if retries % 5 == 0:
|
||||
LogManager.method_info("WDA 连接失败,准备重启 WDA", "关注打招呼", udid)
|
||||
AiUtils.kill_wda(udid, ev.WdaAppBundleId)
|
||||
time.sleep(1)
|
||||
AiUtils.launch_wda(udid, ev.WdaAppBundleId)
|
||||
LogManager.method_error("greetNewFollowers 重试次数耗尽,任务终止", "关注打招呼", udid)
|
||||
|
||||
# 关注打招呼以及回复主播消息
|
||||
@@ -319,6 +340,7 @@ class ScriptManager():
|
||||
# 返回上一步
|
||||
def goBack(count):
|
||||
for i in range(count):
|
||||
session.appium_settings({"snapshotMaxDepth": 15})
|
||||
ControlUtils.clickBack(session)
|
||||
time.sleep(2)
|
||||
|
||||
@@ -567,19 +589,25 @@ class ScriptManager():
|
||||
time.sleep(2)
|
||||
ControlUtils.openTikTok(session, udid)
|
||||
time.sleep(3)
|
||||
|
||||
retries = 0
|
||||
while not event.is_set():
|
||||
try:
|
||||
# 调用检测消息的方法
|
||||
self.monitorMessages(session, udid)
|
||||
except wda.WDARequestError as e:
|
||||
LogManager.method_info("WDA 内部崩溃(nil 插入),准备重启 WDA", "养号", udid)
|
||||
AiUtils.kill_wda(udid, ev.WdaAppBundleId)
|
||||
time.sleep(1)
|
||||
AiUtils.launch_wda(udid, ev.WdaAppBundleId)
|
||||
except Exception as e:
|
||||
LogManager.method_error(f"监控消息 出现异常: {e},重新启动监控直播", "检测消息", udid)
|
||||
# 出现异常时,稍等再重启 TikTok 并重试
|
||||
ControlUtils.closeTikTok(session, udid)
|
||||
time.sleep(2)
|
||||
ControlUtils.openTikTok(session, udid)
|
||||
retries += 1
|
||||
LogManager.method_error(f"greetNewFollowers 出现最终异常: {e},准备第 {retries} 次重试", "养号", udid)
|
||||
time.sleep(3)
|
||||
continue # 重新进入 while 循环,调用 monitorMessages
|
||||
if retries % 5 == 0:
|
||||
LogManager.method_info("WDA 连接失败,准备重启 WDA", "养号", udid)
|
||||
AiUtils.kill_wda(udid, ev.WdaAppBundleId)
|
||||
time.sleep(1)
|
||||
AiUtils.launch_wda(udid, ev.WdaAppBundleId)
|
||||
|
||||
# 检查未读消息并回复
|
||||
def monitorMessages(self, session, udid):
|
||||
@@ -725,6 +753,13 @@ class ScriptManager():
|
||||
else:
|
||||
last_msg_text = random.choice(text_list)
|
||||
|
||||
# 111111
|
||||
if AiUtils.contains_chinese(last_msg_text):
|
||||
LogManager.method_info(f"需要翻译:{last_msg_text}, 即将进行翻译", "检测消息", udid)
|
||||
|
||||
last_msg_text = Requester.translation(last_msg_text)
|
||||
LogManager.method_info(f"翻译成功:{last_msg_text}, ", "检测消息", udid)
|
||||
|
||||
# 向ai发送信息
|
||||
|
||||
# 获取主播的名称
|
||||
@@ -732,6 +767,10 @@ class ScriptManager():
|
||||
|
||||
LogManager.method_info(f"获取主播的名称:{anchor_name}", "检测消息", udid)
|
||||
|
||||
LogManager.method_info(f"获取主播最后发送的消息 进行翻译:{last_msg}", "检测消息", udid)
|
||||
last_msg = Requester.translation(last_msg, "中国")
|
||||
LogManager.method_info(f"翻译后的内容:{last_msg}", "检测消息", udid)
|
||||
|
||||
# 找到输入框
|
||||
last_data = [{
|
||||
"sender": anchor_name,
|
||||
@@ -748,12 +787,14 @@ class ScriptManager():
|
||||
if anchor_name not in anchorWithSession:
|
||||
# 如果是第一次发消息(没有sessionId的情况)
|
||||
|
||||
response = Requester.chatToAi({"query": last_msg_text})
|
||||
aiResult = response['result']
|
||||
sessionId = response['session_id']
|
||||
aiResult, sessionId = Requester.chatToAi({"query": last_msg_text, "user": "1"})
|
||||
# aiResult = response['result']
|
||||
# sessionId = response['session_id']
|
||||
|
||||
anchorWithSession[anchor_name] = sessionId
|
||||
# 找到输入框,输入ai返回出来的消息
|
||||
|
||||
# 123456
|
||||
if sel.exists:
|
||||
sel.click() # 聚焦
|
||||
time.sleep(1)
|
||||
@@ -766,8 +807,12 @@ class ScriptManager():
|
||||
else:
|
||||
# 如果不是第一次发消息(证明存储的有sessionId)
|
||||
sessionId = anchorWithSession[anchor_name]
|
||||
response = Requester.chatToAi({"query": last_msg_text, "conversation_id": sessionId})
|
||||
aiResult = response['result']
|
||||
|
||||
# TODO: user后续添加,暂时写死
|
||||
|
||||
aiResult, sessionId = Requester.chatToAi(
|
||||
{"query": last_msg_text, "conversation_id": sessionId, "user": "1"})
|
||||
# aiResult = response['result']
|
||||
if sel.exists:
|
||||
sel.click() # 聚焦
|
||||
time.sleep(1)
|
||||
|
||||
Reference in New Issue
Block a user