def _commission_swipe_to_top(self, bar_padding_y=10): if self.appear(COMMISSION_SCROLL_TOP): # Already at top return False mean = np.mean(self.device.image.crop(COMMISSION_SCROLL.area), axis=1) bar = np.where(color_similar_1d(mean, color=(247, 211, 66)))[0] if len(bar) < bar_padding_y * 2: # No scroll found. return False bar = (COMMISSION_SCROLL.area[0], np.min(bar) + bar_padding_y, COMMISSION_SCROLL.area[2], np.max(bar) - bar_padding_y) p1 = random_rectangle_point(bar) p2 = random_rectangle_point(COMMISSION_SCROLL_TOP.area) self.device.drag(p1, p2, shake=(15, 0), point_random=(0, 0, 0, 0)) self.device.sleep(0.3) self.device.screenshot() return True
def _commission_scan_list(self): commission = CommissionGroup(self.config) commission.merge(self.device.image) if commission.count <= 3: return commission mean = np.mean(self.device.image.crop(COMMISSION_SCROLL.area), axis=1) bar = np.where(color_similar_1d(mean, color=(247, 211, 66)))[0] if len(bar) < 10 * 2: return commission prev = commission.count for _ in range(15): self._commission_swipe() commission.merge(self.device.image) if commission.count - prev <= 0: break prev = commission.count if self.appear(COMMISSION_SCROLL_BOTTOM): break return commission