Ejemplo n.º 1
0
 def handle_exception(e):
     exc_type, exc_obj, exc_tb = sys.exc_info()
     fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
     logger.error(e)
     logger.debug("{} {} {}".format(exc_type, fname, exc_tb.tb_lineno))
     logger.debug(traceback.format_exc())
     logger.critical(
         "Provider does not have method correctly implemented cannot continue"
     )
     tt = threading.Thread(target=thread_shutdown, args=())
     tt.start()  # (schedule_shutdown, args=(), id='shutdown')
Ejemplo n.º 2
0
def setup_runtime(uconfig):
    from bot.duel_links_runtime import DuelLinkRunTime
    from bot import logger
    from bot.providers import get_provider
    os.makedirs(uconfig.get('locations', 'log'), exist_ok=True)
    setup_logging()
    scheduler = BackgroundScheduler()
    dlRuntime = DuelLinkRunTime(uconfig, scheduler)
    dlRuntime.stop = False  # Need to Ensure that it runs
    scheduler.start()
    try:
        dlRuntime.set_provider(
            get_provider(uconfig.get('bot', 'provider'))(scheduler, uconfig,
                                                         dlRuntime))
    except Exception as e:
        logger.critical(
            "Could not get a provider, take a look at your config file")
        logger.critical(e)
        logger.debug(traceback.format_exc())
        sys.exit(1)
    try:
        dlRuntime.get_provider().sleep_factor = uconfig.getint(
            'bot', 'sleep_factor')
    except Exception as e:
        logger.critical(
            "Could not set sleep factor, take a look at your config file")
        logger.critical(e)
        sys.exit(1)
    return dlRuntime
Ejemplo n.º 3
0
 def determine_playthrough(self, provider):
     """
     Determines the mode to run
     :param provider: Provider
     :return:
     """
     if self.playmode == 'autoplay':
         logger.info("starting auto play through")
         provider.auto()
         logger.info("completed auto play through")
     elif self.playmode == 'guided':
         logger.info("starting guided play through")
         provider.guided_mode()
         logger.info("guided play through interrupted")
     else:
         logger.critical("Unknown play through mode")