from module.gg_handler.gg_data import GGData from module.logger import logger from module.config.deep import deep_get, deep_set from module.base.base import ModuleBase import uiautomator2 as u2 class SpeedUp(ModuleBase): def __init__(self, config, device): super().__init__(config, device) self.d = u2.connect(self.device.serial) self.gg_package_name = deep_get(self.config.data, keys='GameManager.GGHandler.GGPackageName') def Run(self): _run = False _set = False _confirmed = False import os rate = float(deep_get(self.config.data, keys='GameManager.SpeedUp.Rate', default=5.0)) _repush = deep_get(self.config.data, keys='GameManager.SpeedUp.PushLua') if _repush: self.device.adb_shell("mkdir /sdcard/Notes") self.device.sleep(0.5) self.device.adb_shell("rm /sdcard/Notes/SpeedUp.lua") self.device.sleep(0.5) self.device.adb_push("bin/Lua/SpeedUp.lua", "/sdcard/Notes/SpeedUp.lua") self.device.sleep(0.5) logger.info('Lua Pushed') while 1: self.device.sleep(1) if self.d(resourceId=f"{self.gg_package_name}:id/search_toolbar").exists: self.d.xpath( f'//*[@resource-id="{self.gg_package_name}' f':id/search_toolbar"]/android.widget.ImageView[last()]' ).click() logger.info('Click run Scripts') self.device.sleep(0.3) if self.d(resourceId=f"{self.gg_package_name}:id/file").exists: self.d(resourceId=f"{self.gg_package_name}:id/file").send_keys("/sdcard/Notes/SpeedUp.lua") logger.info('Lua path set') if self.d.xpath('//*[@text="执行"]').exists: self.d.xpath('//*[@text="执行"]').click() logger.info('Click Run') self.device.sleep(0.5) if self.d.xpath('//*[contains(@text,"设置倍速")]').exists: self.d.xpath('//*[contains(@text,"设置倍速")]').click() logger.info('Click Change Statistic') self.device.sleep(0.5) if self.d(resourceId=f"{self.gg_package_name}:id/edit").exists: self.d(resourceId=f"{self.gg_package_name}:id/edit").send_keys(f"{rate}") logger.info(f'Factor Set: {rate}') self.device.sleep(0.5) _set = True if _set and self.d.xpath('//*[@text="确定"]').exists: self.d.xpath('//*[@text="确定"]').click() logger.info("Click confirm") self.device.sleep(0.5) _confirmed = True if _confirmed: self.d.wait_timeout = deep_get(self.config.data, "GameManager.SpeedUp.Timeout") logger.info(f'Xpath timeout set to {self.d.wait_timeout} seconds') if _set and _confirmed: try: # GGData(self.config).set_data(target='gg_on', value=True) self.d.xpath('//*[@text="确定"]').click() except Exception as e: pass # GGData(self.config).set_data(target='gg_on', value=True) logger.attr('GG', 'Enabled') logger.info("Close the script") self.d.wait_timeout = 3 logger.info(f'Xpath timeout set to {self.d.wait_timeout} seconds') if _set and _confirmed: break else: return 0 logger.hr('GG Enabled: SpeedUp', level=2) # self.d.app_stop(self.gg_package_name) return 1