Spaces:
Sleeping
Sleeping
| from datetime import datetime | |
| def detect_tilt_streaks(games, username, tilt_streak_count=6, tilt_time_gap=10800): | |
| """Detect tilt streaks based on consecutive losses.""" | |
| games_sorted = sorted(games, key=lambda x: x.get('end_time')) | |
| tilt_occurrences = [] | |
| current_streak = 0 | |
| streak_start_time = None | |
| for game in games_sorted: | |
| end_time = game.get('end_time') | |
| if not end_time: | |
| continue | |
| end_datetime = datetime.fromtimestamp(end_time) | |
| result = get_game_result(game, username) | |
| if result in ['checkmated', 'timeout', 'resigned', 'lose', 'abandoned']: | |
| if current_streak == 0: | |
| streak_start_time = end_datetime | |
| current_streak += 1 | |
| if current_streak >= tilt_streak_count: | |
| tilt_occurrences.append({ | |
| "start_time": streak_start_time, | |
| "end_time": end_datetime, | |
| "streak_length": current_streak | |
| }) | |
| current_streak = 0 | |
| else: | |
| current_streak = 0 | |
| return tilt_occurrences | |