diff --git a/assets/feed_dismiss.png b/assets/feed_dismiss.png new file mode 100644 index 0000000..7f900dd Binary files /dev/null and b/assets/feed_dismiss.png differ diff --git a/assets/feed_friend_button.png b/assets/feed_friend_button.png new file mode 100644 index 0000000..b6662c8 Binary files /dev/null and b/assets/feed_friend_button.png differ diff --git a/assets/feed_friend_home.png b/assets/feed_friend_home.png new file mode 100644 index 0000000..37a243e Binary files /dev/null and b/assets/feed_friend_home.png differ diff --git a/assets/feed_friend_mine_title.png b/assets/feed_friend_mine_title.png new file mode 100644 index 0000000..88d3b79 Binary files /dev/null and b/assets/feed_friend_mine_title.png differ diff --git a/assets/feed_friends_title.png b/assets/feed_friends_title.png new file mode 100644 index 0000000..ce8dfaf Binary files /dev/null and b/assets/feed_friends_title.png differ diff --git a/assets/feed_onekey.png b/assets/feed_onekey.png new file mode 100644 index 0000000..a241d47 Binary files /dev/null and b/assets/feed_onekey.png differ diff --git a/assets/feed_reward.png b/assets/feed_reward.png new file mode 100644 index 0000000..1ec859e Binary files /dev/null and b/assets/feed_reward.png differ diff --git a/automation/feed_mice.py b/automation/feed_mice.py new file mode 100644 index 0000000..919a7bb --- /dev/null +++ b/automation/feed_mice.py @@ -0,0 +1,41 @@ +"""狂鼠之家好友矿鼠一键喂养循环。""" +import time +from .engine import WorkflowError + + +class FeedMiceRunner: + def __init__(self, desktop, matcher, flow, region_provider, log=print, timeout=12): + self.desktop,self.matcher,self.flow=desktop,matcher,flow; self.region_provider,self.log,self.timeout=region_provider,log,timeout + def observe(self): + shot=self.desktop.screenshot(); region=self.region_provider(shot); return shot,region,self.matcher.frame(shot,region) + def wait(self,*names): + end=time.monotonic()+self.timeout; previous=None; stable=0 + while time.monotonic()=2:return found,shot,region,frame + time.sleep(.25) + raise WorkflowError('未识别到预期页面 '+ '/'.join(names)+',已停止。') + def click(self,point,obs): + _,shot,region,_=obs + if self.region_provider(shot)!=region:raise WorkflowError('识别后游戏窗口移动,已停止,请重新运行。') + self.desktop.click(point,region,shot.size,hold=.8) + def action(self,name,obs):self.click(self.flow['clicks'][name],obs);self.log('已执行:'+name) + def location(self,frame,key): + spec=self.flow[key]; score,loc=self.matcher.locate(frame,spec) + if score