def main(): debug = ARGS.debug setup_logger('discord', False, started_at) setup_logger('launcher', debug, started_at) setup_logger('bot', debug, started_at) setup_logger('cogs', debug, started_at) setup_logger('utils', debug, started_at) logger.info(f"Initializing bot.") bot = Squire(started_at) logger.info("Loading cogs.") bot.load_cogs() logger.info("Starting bot.") try: bot.run(TOKEN) finally: try: exit_code = bot._exit_code except AttributeError: logger.info("Bot's exit code could not be retrieved.") exit_code = 0 logger.info(f"Bot closed with exit code {exit_code}.") exit(exit_code)
def start_marvin(debug=False): logger = setup_logger("marvin") marv = marvin.Marvin(logger) try: marv.run(debug=debug) finally: marv.logger.info("Bot closed.") exit(0)
def start(name, debug=False): if sys.platform != 'linux' or debug: level = logging.DEBUG else: level = logging.INFO bot_logger = setup_logger(name) logger = module_logger(name, "launcher", level) module_logger(name, 'discord', logging.INFO) logger.info(f"Starting {name}.") if name in bots.keys(): classname = bots[name] else: classname = None bot = None if classname == 'revbot.RevBot': logger.debug("RevBot class selected. Initializing.") bot = revbot.RevBot(command_prefix='__', name=name, logger=bot_logger) elif classname == 'bulbe.Bulbe': logger.debug("Bulbe class selected. Initializing.") bot = bulbe.Bulbe(name=name, logger=bot_logger) elif classname == 'evalbot.EvalBot': logger.debug("EvalBot class selected. Initializing.") bot = evalbot.EvalBot() elif classname == 'juan.Juandissimo': logger.debug("Juandissimo class selected. Initializing.") bot = juan.Juandissimo(bot_logger) elif classname == 'clippy.Clippy': logger.debug("Clippy class selected. Initializing.") bot = clippy.Clippy(bot_logger) else: logger.error("No class found. Closing.") exit(1) if sys.platform != 'linux' or debug: try: logger.info("Adding debug cog.") bot.add_cog(Debug(bot)) except commands.ExtensionFailed: pass logger.info("Calling run method.") try: bot.run(authentication.tokens[name]) finally: try: exit_code = bot._exit_code except AttributeError: logger.info("Bot's exit code could not be retrieved.") exit_code = 0 logger.info(f"Bot closed with exit code {exit_code}.") exit(exit_code)
def __init__(self, name, command_prefix=None, logger=None, port=8800, use_socket=True, **kwargs): self._default_prefix = '__' command_prefix = command_prefix if command_prefix else self._default_prefix super().__init__(command_prefix, **kwargs) self._revbot_version = '1.0.0' self._name = name self._use_socket = use_socket self._port = port self._response_queue = {} self.logger = logger if logger else setup_logger(name) self.marvin = None self.reader, self.writer = None, None self.started_at = datetime.datetime.now() self.logger.info("RevBot initialization complete.")
def __init__(self, name, command_prefix=None, logger=None, **kwargs): self._default_prefix = '__' command_prefix = command_prefix if command_prefix else self._default_prefix super().__init__(command_prefix, **kwargs) self._sd_notifier = sdnotify.SystemdNotifier( ) if sys.platform == 'linux' else None self._revbot_version = VERSION self._name = name self.properties = None self._exit_code = 0 self.logger = logger if logger else setup_logger(name) self.started_at = datetime.datetime.now() self.logger.debug(f"RevBot initialization complete. [{VERSION}]") if self._sd_notifier: self.sd_notify('READY=1') self.sd_notify('WATCHDOG=1')
def start_bot(name, use_socket=True): logger = setup_logger(name) module_logger(name, 'discord', logging.INFO) logger.info(f"Starting {name}.") with open("configs/marvin.yaml") as f: _info = yaml.load(f, yaml.Loader) if name in _info['launcher'].keys(): classname = _info['launcher'][name] else: classname = _info['launcher']['default'] bot = None # if classname == 'discord.Client': # pass # elif classname == 'commands.Bot': # pass if classname == 'revbot.RevBot': bot = revbot.RevBot(command_prefix='__', name=name, logger=logger) elif classname == 'bulbe.Bulbe': bot = bulbe.Bulbe(name=name, logger=logger, use_socket=use_socket) elif classname == 'evalbot.EvalBot': bot = evalbot.EvalBot() elif classname == 'juan.Juandissimo': bot = juan.Juandissomo(logger) else: logger.error("No class found. Closing.") exit(0) try: bot.add_cog(Debug(bot)) bot.add_cog(evalbot.EvalCog(bot)) bot.run(authentication.tokens[name]) finally: logger.info("Bot closed.") exit(0)