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()
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()