def run(external_processor=None): start_time = time.time() log = logging.getLogger('bot') config = load_config() if not SerialController().serial: SerialController().run_serial(config['serial']) mode = config['mode'] if mode == 'enhance': enhancer = Enhancer(config['enhancer']) enhancer.process() if mode == 'buff': buff_config = Configurator(config['buffer']).from_yaml() processor = ProcessInitializer(Buffer(buff_config), config['serial']) processor.handle() if mode == 'make': external_processor.process() if mode == 'combination': combinate = Combinator(config['enhancer']) combinate.process() if mode == 'taming': Taming().run() if mode == 'farming': Farming().run() if mode == 'test': print('nothings') exec_time = (time.time() - start_time) final_message = "Finished work, time: {0} (sec), {1} (min)".format( exec_time, exec_time / 60) log.info(final_message) return exec_time
def get_quests(config): from utils.serial_controller import SerialController from jobs.helpers.circus_handler import CircusHandler from processes.wait import Wait from jobs.buffer import Buffer from utils.config import Config Config().initialize_configs(config['navigator']) if not SerialController().serial: SerialController().run_serial(config['serial']) buff_cfg = Configurator(config['buffer']).from_yaml() buff = Buffer(buff_cfg) for i in range(8): CircusHandler().get_quest() Wait(2).delay() buff.process_flow()
def make_click(self, serial=SerialController()): print(type(serial)) if hasattr(serial, 'serial'): serial = serial.serial Move().moveTo(self.x, self.y) serial.write(CLICK) if self.process == 'dclick': serial.write(CLICK) delay = Wait(self.delay) delay.delay()
def press(self, serial=SerialController()): if hasattr(serial, 'serial'): serial = serial.serial serial.write(self.COMMAND) if self.pressed is not None: serial.write(self.pressed.encode()) return serial.write(self.key.encode()) serial.write(self.RELEASE) self.log.debug('Press key: {0}'.format(self.key))
def configure_logger(): log_format = '%(levelname)s : %(name)s %(asctime)s - %(message)s' logging.basicConfig(level=logging.INFO, format=log_format, datefmt='%d-%m %H:%M:%S') def load_config(): cfg = Config() cfg.load_config(CONFIG_FILE) return cfg.config configure_logger() config = load_config() SerialController().run_serial(config['serial']) bot = telebot.TeleBot(config['token']) chat_id = None message_id = None state = dict() @bot.message_handler(commands=['start']) def start(message): init_state(message, bot) ss = StartScreen(message, bot) state[ss.name] = ss ss.render()
class Move: def __init__(self): self.serial = SerialController().serial def fromTo(self, start, end): self.start = start self.end = end startX, startY = self.start self.moveTo(startX, startY) self.pressRight() endX, endY = self.end self.moveTo(endX, endY) self.releaseRight() def moveTo(self, x, y): _x, _y = ui.position() axis = 'X' is_x_pass = self._get_axis_pass(x, _x) is_y_pass = self._get_axis_pass(y, _y) while not (is_x_pass and is_y_pass): if axis == 'X': if self._is_coord_less(_x, x): self.move(X_DIRECT[1]) axis = 'Y' if not is_y_pass else 'X' else: self.move(X_DIRECT[0]) axis = 'Y' if not is_y_pass else 'X' if axis == 'Y': if self._is_coord_less(_y, y): self.move(Y_DIRECT[1]) axis = 'X' if not is_x_pass else 'Y' else: self.move(Y_DIRECT[0]) axis = 'X' if not is_x_pass else 'Y' _x, _y = ui.position() is_x_pass = self._get_axis_pass(x, _x) is_y_pass = self._get_axis_pass(y, _y) def pressRight(self): self.serial.write(b'P') def releaseRight(self): self.serial.write(b'R') def _get_axis_pass(self, target_point, actual_point): return self._is_coord_less(actual_point, target_point) and self._is_coord_greater( actual_point, target_point) @staticmethod def _is_coord_less(current, target): return current >= target - ACCURACY @staticmethod def _is_coord_greater(current, target): return current <= target + ACCURACY def move(self, t): if t is None: return self.serial.write(t.encode())
def __init__(self): self.serial = SerialController().serial
def run_serial(self): return SerialController().serial
def serial_run(): config = Configurator('config.yml').from_yaml() SerialController().run_serial(config['serial'])