Exemple #1
0
def save_specific_coach_action(update, context):
    user_coach = update.message.text

    if user_coach not in get_maccabipedia_games().available_coaches:
        similar_coaches_names = get_similar_coaches_names(user_coach)
        if similar_coaches_names:
            pretty_print_of_similar_coaches_names = "\n".join(
                coach_name for coach_name in similar_coaches_names)
            context.bot.send_message(
                chat_id=update.effective_chat.id,
                text=f'לא נמצא מאמן בשם "{user_coach}", מאמנים בעלי שם דומה:'
                f"\n{pretty_print_of_similar_coaches_names}"
                f"\n\nהקלד את שם המאמן הרצוי:")
        else:
            context.bot.send_message(
                chat_id=update.effective_chat.id,
                text=f'לא נמצא מאמן בשם "{user_coach}", נסה בשנית:')

        return select_coach_filter
    else:
        context.user_data[_USER_DATE_GAMES_FILTER_KEY].update_coach_filter(
            user_coach)
        games = MaccabiGamesFiltering(
            context.user_data[_USER_DATE_GAMES_FILTER_KEY]).filter_games()

        context.bot.send_message(
            chat_id=update.effective_chat.id,
            text=f"בחרת ב: {user_coach}, {len(games)} משחקים נבחרו")
        return go_back_to_main_games_filter_menu(update, context)
def save_specific_team_action(update, context):
    team_name = update.message.text

    if team_name not in get_maccabipedia_games().available_opponents:
        similar_team_names = get_similar_teams_names(team_name)
        if similar_team_names:
            pretty_print_of_similar_team_names = "\n".join(
                team for team in similar_team_names)
            context.bot.send_message(
                chat_id=update.effective_chat.id,
                text=
                f"קבוצה בשם {team_name} לא נמצאה, אלו בעלות השם הדומה ביותר:\n"
                f"{pretty_print_of_similar_team_names}"
                f"\n\nשלח את שם הקבוצה הרצויה:")
        else:
            context.bot.send_message(
                chat_id=update.effective_chat.id,
                text=f"קבוצה בשם {team_name} לא נמצאה, נסה בשנית")

        return select_team_filter
    else:
        context.user_data[_USER_DATE_GAMES_FILTER_KEY].update_team_filter(
            team_name)
        games = MaccabiGamesFiltering(
            context.user_data[_USER_DATE_GAMES_FILTER_KEY]).filter_games()

        context.bot.send_message(
            chat_id=update.effective_chat.id,
            text=f"בחרת ב: {team_name}, {len(games)} משחקים נבחרו")
        return go_back_to_main_games_filter_menu(update, context)
def save_specific_played_player_action(update, context):
    user_player_name = update.message.text

    if user_player_name not in get_maccabipedia_games(
    ).available_players_names:
        similar_players_names = get_similar_player_names(user_player_name)
        if similar_players_names:
            pretty_print_of_similar_players_names = "\n".join(
                player_name for player_name in similar_players_names)
            context.bot.send_message(
                chat_id=update.effective_chat.id,
                text=
                f"שחקן בשם {user_player_name} לא נמצא, אלו בעלי השם הדומה ביותר:\n"
                f"{pretty_print_of_similar_players_names}"
                f"\n\nשלח את שם השחקן הרצוי:")
        else:
            context.bot.send_message(
                chat_id=update.effective_chat.id,
                text=f"שחקן בשם {user_player_name} לא נמצא, נסה בשנית")

        return select_played_player_filter
    else:
        context.user_data[
            _USER_DATE_GAMES_FILTER_KEY].update_played_player_filter(
                user_player_name)
        games = MaccabiGamesFiltering(
            context.user_data[_USER_DATE_GAMES_FILTER_KEY]).filter_games()

        context.bot.send_message(
            chat_id=update.effective_chat.id,
            text=f"בחרת ב: {user_player_name}, {len(games)} משחקים נבחרו")
        return go_back_to_main_games_filter_menu(update, context)
    def filter_games(self):
        """
        Filter the games with the saved filter
        :rtype: maccabistats.stats.maccabi_games_stats.MaccabiGamesStats
        """
        filtered_games = get_maccabipedia_games()
        logger.info(f"Unfiltered games: {filtered_games}")

        if self.games_filter.team_filter_exists:
            filtered_games = filtered_games.get_games_against_team(self.games_filter.team_name)
            logger.info(f"Filter: select games only against: {self.games_filter.team_name}. Games: {filtered_games}")

        if self.games_filter.played_player_filter_exists:
            filtered_games = filtered_games.get_games_by_played_player_name(self.games_filter.played_player)
            logger.info(f"Filter: select games with this player only: {self.games_filter.played_player}. Games: {filtered_games}")

        if self.games_filter.referee_filter_exists:
            filtered_games = filtered_games.get_games_by_referee(self.games_filter.referee_name)
            logger.info(f"Filter: select games with this referee only: {self.games_filter.referee_name}. Games: {filtered_games}")

        if self.games_filter.stadium_filter_exists:
            filtered_games = filtered_games.get_games_by_stadium(self.games_filter.stadium_name)
            logger.info(f"Filter: select games which played at stadium: {self.games_filter.stadium_name}. Games: {filtered_games}")

        if self.games_filter.coach_filter_exists:
            filtered_games = filtered_games.get_games_by_coach(self.games_filter.coach_name)
            logger.info(f"Filter: select games with maccabi coach: {self.games_filter.coach_name}. Games: {filtered_games}")

        if self.games_filter.competition_filter_exists:
            filtered_games = filtered_games.get_games_by_competition(self.games_filter.competitions_name)
            logger.info(f"Filter: select these competitions only: {self.games_filter.competitions_name}. Games: {filtered_games}")

        if self.games_filter.date_filter_exists:
            filtered_games = filtered_games.played_after(self.games_filter.start_date).played_before(self.games_filter.end_date)
            logger.info(f"Filter: select games between {self.games_filter.start_date} <--> {self.games_filter.end_date}. Games: {filtered_games}")

        if self.games_filter.home_away_filter_exists:
            if self.games_filter.only_home_games:
                filtered_games = filtered_games.home_games
                logger.info(f"Filter: select only home games. Games: {filtered_games}")
            elif self.games_filter.only_away_games:
                filtered_games = filtered_games.away_games
                logger.info(f"Filter: select only away games. Games: {filtered_games}")

        return filtered_games