예제 #1
0
    def __init__(self, configuration):
        super(RotcBot,self).__init__(configuration)
        Watcher.__init__(self)
        logging.Handler.__init__(self)
        
        # Logging stuff
        chandler = logging.StreamHandler()
        chandler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
        self.log.addHandler(chandler)

        self.setLevel(logging.INFO) # Only send INFO messages to the control room
        self.setFormatter(logging.Formatter("%(levelname)s - %(message)s"))
        self.log.addHandler(self)
        
        # The messages that go to the console
        self.log.setLevel(logging.DEBUG)
        
        
        #####
        self.server_ids = []       # enumerate keys of server_list
        self.last_rotc_update = 0

        self.EVENTS = { 'new_game': 'The first player joins a server.',
                        'game_close': 'The last player leaves a server, or a server which had players is closed.',
                        'player_change': 'A change in player numbers on a server.',
                        'new_server': 'A new server was created (any number of players, even 0).',
                        'server_close': 'A server was closed (even if it had no players)' }
                        
        # Build the server list
        self._build_server_list()
        
        # Connect the events
        self.callback_new_server = self._callback_new_server
        self.callback_detail_change = self._callback_detail_change
        self.callback_server_close = self._callback_server_close