Пример #1
0
 def get_all_responses(self, message):
     plays = extract_remainder_after_fragments(self.fragments,
                                               message.content)
     game_names = plays.split(self.multi_game_delimiter)
     games = [
         lookup_game_by_name_or_alias(game_name) for game_name in game_names
         if lookup_game_by_name_or_alias(game_name)
     ]
     responses = []
     if games:
         games = [game for game in games if game]
         responses += self.get_all_responses_with_games(message, games)
     else:
         responses += self.get_all_responses_without_game(message)
     return responses
Пример #2
0
    def get_all_responses(self, message):
        mention, remainder = split_by_first_mention(message)
        found_keyword, remainder = self.split_string_by_keywords(remainder)
        split_remainder = remainder.split(' ')
        if len(split_remainder) == 1:
            return [
                "Incorrect command: Try 'add game <game name>' or 'add <property> <game name> <value>"
            ]

        if message_pertains_to_all_games(split_remainder[0]):
            new_game = ' '.join(split_remainder[1:])

            if lookup_known_game_by_name_or_alias(new_game):
                return [
                    "That game already exists you absolute degenerate. Don't trigger me."
                ]
            else:
                new_game_dict = get_default_game_dict_representation(new_game)
                known_games_dict = read_games_dict()
                known_games_dict.update(new_game_dict)
                write_games_dict(known_games_dict)
                return [
                    "Congratulations - %s has been added to the known games list! Fantastic work there comrade, give yourself a pat on the back!"
                    % new_game
                ]
        else:
            property, remainder = split_remainder[0], ' '.join(
                split_remainder[1:])
            if get_game_name_or_alias_from_message(remainder):
                game_name = get_game_name_or_alias_from_message(
                    remainder).lower()
            else:
                return ["Invalid game name/ alias"]

            game = lookup_game_by_name_or_alias(game_name)
            value = remainder[len(game_name) + 1:]

            known_games_dict = read_games_dict()
            if property.lower() == 'alias':
                known_games_dict[game.name]['aliases'] += [value]
            elif property.lower() in ['min_players', 'max_players']:
                known_games_dict[game.name][property] = int(value)
            else:
                return ["Invalid property type"]

            write_games_dict(known_games_dict)
            return [
                "%s has been added to %s in %s" % (value, property, game.name)
            ]
Пример #3
0
    def get_all_responses(self, message):
        mention, remainder = split_by_first_mention(message)
        found_keyword, remainder = self.split_string_by_keywords(remainder)

        if message_pertains_to_all_games(remainder):
            return ['\n'.join([game.name for game in get_known_games()])]
        else:
            attribute, game_name = remainder.split(' ')[:2]
            game = lookup_game_by_name_or_alias(game_name)
            attribute_display = {
                'aliases': lambda z: ', '.join([alias for alias in z])
            }
            display_function = attribute_display.get(attribute,
                                                     lambda x: str(x))
            return [
                "%s: %s" %
                (attribute, display_function(getattr(game, attribute)))
            ]
Пример #4
0
def get_game_name_or_alias_from_message(message):
    if lookup_game_by_name_or_alias(message):
        game = lookup_game_by_name_or_alias(message)
        for potential_name in [game.name] + game.aliases:
            if message.lower().startswith(potential_name.lower()):
                return potential_name
Пример #5
0
 def assertNumPlayersReadyForGame(self, game, num):
     self.assertEqual(
         num, len(lookup_game_by_name_or_alias(game).get_ready_players()))
Пример #6
0
 def assertNumPlayersForGame(self, game, num):
     self.assertEqual(
         num,
         len(lookup_game_by_name_or_alias(game).get_available_players()))