Example #1
0
                ssl_context = SSLContext()
                ssl_context.load_cert_chain(**bot.config['ssl_context'])
                ssl_webserver = TCPSite(application,
                                        host=args.host,
                                        port=args.sslport,
                                        ssl_context=ssl_context)
        except Exception as e:
            ssl_webserver = None
            logger.exception("Could not make SSL webserver")

        # Start servers
        loop.run_until_complete(webserver.start())
        logger.info(f"Server started - http://{args.host}:{args.port}/")
        if ssl_webserver:
            loop.run_until_complete(ssl_webserver.start())
            logger.info(f"Server started - http://{args.host}:{args.sslport}/")

    # This is the forever loop
    try:
        logger.info("Running bot")
        bot.run(reconnect=False)
    except KeyboardInterrupt:
        pass
    if webserver:
        logger.info("Closing webserver")
        loop.run_until_complete(application.cleanup())
    logger.info("Closing database pool")
    loop.run_until_complete(DatabaseConnection.pool.close())
    logger.info("Closing asyncio loop")
    loop.close()
Example #2
0
            DatabaseConnection.create_pool(bot.config['database']))
    except Exception as e:
        logger.error("Error creating database pool")
        raise e

    # Connect the redis
    logger.info("Creating redis pool")
    try:
        loop.run_until_complete(
            RedisConnection.create_pool(bot.config['redis']))
    except Exception as e:
        logger.error("Error creating Redis pool")

    # Load the bot's extensions
    logger.info('Loading extensions... ')
    bot.load_all_extensions()

    # Run the bot
    try:
        logger.info("Running bot")
        bot.run()
    except KeyboardInterrupt:
        pass

    logger.info("Closing database pool")
    loop.run_until_complete(DatabaseConnection.pool.close())
    logger.info("Closing redis pool")
    loop.run_until_complete(RedisConnection.pool.close())
    logger.info("Closing asyncio loop")
    loop.close()