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