Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
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)
Beispiel #4
0
 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.")
Beispiel #5
0
 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')
Beispiel #6
0
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)