Exemple #1
0
    def start():
        # Logging
        logging.basicConfig(filename="FA_bot.log", level=logging.DEBUG, format="%(asctime)-15s %(message)s")
        logging.info("FAbot starting up")

        # Configuration file
        logging.info("Reading configuration")
        config = ConfigManager("config.ini")

        client_email = config.get("email")
        client_pass = config.get("password")
        event_manager.announcement_channels = config.get_json("announcement_channels", default=[])
        # TODO: probably event manager should take channels from client instead?

        main_client.channel_whitelist = config.get_json("channel_whitelist", default=[])
        main_client.announcement_channels = config.get_json("announcement_channels", default=[])
        main_client.welcome_pm = config.get("welcome_pm")
        main_client.join_announcement = config.get("join_announcement")
        main_client.leave_announcement = config.get("leave_announcement")

        # Game servers
        game_servers.game_servers['arma'] = game_servers.ArmaServer(
            ip=config.get("arma_server_ip"),
            port=int(config.get("arma_server_port"))
        )
        game_servers.game_servers['insurgency'] = game_servers.InsurgencyServer(
            ip=config.get("insurgency_server_ip"),
            port=int(config.get("insurgency_server_port"))
        )

        # Discord client
        logging.info("Logging into Discord")
        main_client.login(client_email, client_pass)

        if not main_client.is_logged_in:
            logging.critical("Logging into Discord failed")
            print('Logging in to Discord failed')
            exit(1)

        logging.info("Entering main message event loop")
        main_client.run()