示例#1
0
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
示例#2
0
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()
示例#3
0
 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()
示例#4
0
 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))
示例#5
0
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()
示例#6
0
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())
示例#7
0
    def __init__(self):

        self.serial = SerialController().serial
示例#8
0
 def run_serial(self):
     return SerialController().serial
示例#9
0
def serial_run():
    config = Configurator('config.yml').from_yaml()
    SerialController().run_serial(config['serial'])