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')
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
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")