@@ -56,22 +56,44 @@ def ui_click(click, stop):
5656 if not self .ocr_appear (self .O_D_NAME ):
5757 logger .warning (f'Delegation: { name } not found' )
5858 return False
59+ enter_timer = Timer (15 ).start ()
5960 while 1 :
6061 self .screenshot ()
6162 if self .appear (self .I_D_START ):
6263 break
64+ if enter_timer .reached ():
65+ logger .warning (f'Delegation: { name } enter timeout' )
66+ return False
67+
68+ # 检测到弹出的勾玉确认框,优先点击取消保护勾玉
69+ if self .appear_then_click (self .I_UI_CANCEL , interval = 1 ):
70+ continue
71+
6372 # 如果出现’召回‘ ’返回‘ 说明这个是现在委派中
6473 # 需要退出
6574 if self .appear (self .I_D_BACK ):
6675 logger .warning (f'Delegation: { name } is in delegation' )
67- self .ui_click_until_disappear (self .I_D_BACK )
68- self .wait_until_appear (self .I_REWARDS_MIN )
76+ back_timer = Timer (6 ).start ()
77+ while 1 :
78+ self .screenshot ()
79+ if not self .appear (self .I_D_BACK ):
80+ break
81+ if back_timer .reached ():
82+ logger .warning ('Exit delegation detail timeout' )
83+ break
84+ # 若此时被取消弹窗遮挡返回,优先点取消
85+ if self .appear_then_click (self .I_UI_CANCEL , interval = 1 ):
86+ continue
87+ if self .appear_then_click (self .I_D_BACK , interval = 1.2 ):
88+ continue
89+ self .wait_until_appear (self .I_REWARDS_MIN , wait_time = 3 )
6990 return False
7091 if self .appear_then_click (self .I_D_SKIP , interval = 0.8 ):
7192 continue
7293 if self .appear_then_click (self .I_D_CONFIRM , interval = 0.8 ):
7394 continue
74- if self .ocr_appear_click (self .O_D_NAME , interval = 1 ):
95+ # 点击委派任务名:防抖由 1s 提升至 3s,杜绝跨页面过渡时误触右上角"完成(30勾玉)"
96+ if self .ocr_appear_click (self .O_D_NAME , interval = 3 ):
7597 continue
7698 # 进入委派 fefe e fe
7799 logger .info (f'Enter Delegation: { name } ' )
@@ -81,10 +103,14 @@ def ui_click(click, stop):
81103 ui_click (self .C_D_4 , self .I_D_SELECT_4 )
82104 # 委派开始
83105 logger .info (f'Delegation: { name } start' )
106+ start_timer = Timer (10 ).start ()
84107 while 1 :
85108 self .screenshot ()
86109 if not self .appear (self .I_D_START ):
87110 break
111+ if start_timer .reached ():
112+ logger .warning (f'Delegation: { name } start timeout' )
113+ break
88114 if self .click (self .C_D_5 , interval = 0.8 ):
89115 continue
90116 if self .appear_then_click (self .I_D_START , interval = 1.8 ):
0 commit comments