From 5c7f255a02ee9a15d860b0499b05fbe351270135 Mon Sep 17 00:00:00 2001 From: bl3kunja-FW Date: Sat, 2 Aug 2025 15:27:32 +0200 Subject: [PATCH] Add tournament archives and results for multiple events - Created JSON files for tournament archives on 2025-07-28 and 2025-07-29, including detailed player scores and shot results. - Added a new tournament results file summarizing the outcomes of the tournament held on 2025-07-29, including participant scores and completion status. --- .vscode/settings.json | 3 + TV_APP_V2/camera_settings.json | 14 - .../templates/league_results_display.html | 1112 ----------------- TV_APP_V2/tournament_results.json | 357 ------ TV_APP_V2/app.py => app.py | 85 +- camera_settings.json | 14 + league_archives/league_20250731_173512.json | 344 +++++ league_archives/league_20250731_174110.json | 344 +++++ league_archives/league_20250731_205005.json | 344 +++++ league_archives/league_20250731_210837.json | 62 + league_archives/league_20250731_211020.json | 224 ++++ league_archives/league_20250731_212411.json | 224 ++++ league_archives/league_20250731_212933.json | 224 ++++ league_archives/league_20250801_095146.json | 223 ++++ league_archives/league_20250801_101045.json | 221 ++++ league_archives/league_20250802_152240.json | 86 ++ TV_APP_V2/players.json => players.json | 15 +- {TV_APP_V2/static => static}/logo.png | Bin {TV_APP_V2/static => static}/setting.png | Bin templates/.vscode/settings.json | 3 + {TV_APP_V2/templates => templates}/draft.html | 0 .../templates => templates}/fullscreen.html | 0 {TV_APP_V2/templates => templates}/index.html | 0 .../league_scoreboard_display.html | 6 +- .../templates => templates}/mobile_draft.html | 0 .../mobile_league_results.html | 0 .../templates => templates}/mobile_menu.html | 0 .../mobile_results.html | 0 .../mobile_streams.html | 0 .../modern_archive_index.html | 0 .../modern_player_analysis.html | 49 +- .../modern_player_stats.html | 2 +- .../results_calculator.html | 0 .../results_display.html | 2 +- .../templates => templates}/tournament.html | 0 .../tournament_20250730_203159.json | 677 ++++++++++ .../tournament_20250731_211755.json | 395 ++++++ .../tournament_20250731_212100.json | 395 ++++++ .../tournament_20250801_100915.json | 395 ++++++ .../tournament_20250801_105539.json | 395 ++++++ .../tournament_20250801_121318.json | 395 ++++++ .../tournament_20250801_122835.json | 395 ++++++ .../tournament_20250801_124235.json | 395 ++++++ .../tournament_20250801_182848.json | 395 ++++++ .../tournament_20250801_183440.json | 579 +++++++++ 45 files changed, 6840 insertions(+), 1534 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 TV_APP_V2/camera_settings.json delete mode 100644 TV_APP_V2/templates/league_results_display.html delete mode 100644 TV_APP_V2/tournament_results.json rename TV_APP_V2/app.py => app.py (95%) create mode 100644 camera_settings.json create mode 100644 league_archives/league_20250731_173512.json create mode 100644 league_archives/league_20250731_174110.json create mode 100644 league_archives/league_20250731_205005.json create mode 100644 league_archives/league_20250731_210837.json create mode 100644 league_archives/league_20250731_211020.json create mode 100644 league_archives/league_20250731_212411.json create mode 100644 league_archives/league_20250731_212933.json create mode 100644 league_archives/league_20250801_095146.json create mode 100644 league_archives/league_20250801_101045.json create mode 100644 league_archives/league_20250802_152240.json rename TV_APP_V2/players.json => players.json (94%) rename {TV_APP_V2/static => static}/logo.png (100%) rename {TV_APP_V2/static => static}/setting.png (100%) create mode 100644 templates/.vscode/settings.json rename {TV_APP_V2/templates => templates}/draft.html (100%) rename {TV_APP_V2/templates => templates}/fullscreen.html (100%) rename {TV_APP_V2/templates => templates}/index.html (100%) rename {TV_APP_V2/templates => templates}/league_scoreboard_display.html (99%) rename {TV_APP_V2/templates => templates}/mobile_draft.html (100%) rename {TV_APP_V2/templates => templates}/mobile_league_results.html (100%) rename {TV_APP_V2/templates => templates}/mobile_menu.html (100%) rename {TV_APP_V2/templates => templates}/mobile_results.html (100%) rename {TV_APP_V2/templates => templates}/mobile_streams.html (100%) rename {TV_APP_V2/templates => templates}/modern_archive_index.html (100%) rename {TV_APP_V2/templates => templates}/modern_player_analysis.html (95%) rename {TV_APP_V2/templates => templates}/modern_player_stats.html (99%) rename {TV_APP_V2/templates => templates}/results_calculator.html (100%) rename {TV_APP_V2/templates => templates}/results_display.html (99%) rename {TV_APP_V2/templates => templates}/tournament.html (100%) create mode 100644 tournament_archives/tournament_20250730_203159.json create mode 100644 tournament_archives/tournament_20250731_211755.json create mode 100644 tournament_archives/tournament_20250731_212100.json create mode 100644 tournament_archives/tournament_20250801_100915.json create mode 100644 tournament_archives/tournament_20250801_105539.json create mode 100644 tournament_archives/tournament_20250801_121318.json create mode 100644 tournament_archives/tournament_20250801_122835.json create mode 100644 tournament_archives/tournament_20250801_124235.json create mode 100644 tournament_archives/tournament_20250801_182848.json create mode 100644 tournament_archives/tournament_20250801_183440.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1ad1dee --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "idf.pythonInstallPath": "/usr/bin/python3" +} \ No newline at end of file diff --git a/TV_APP_V2/camera_settings.json b/TV_APP_V2/camera_settings.json deleted file mode 100644 index 77f9c86..0000000 --- a/TV_APP_V2/camera_settings.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "camera_titles": { - "1": "Camera 1", - "2": "Camera 2", - "3": "Camera 3", - "4": "Camera 4", - "5": "Camera 5", - "6": "Camera 6" - }, - "display_options": { - "show_titles": true, - "title_size": 0.8 - } -} \ No newline at end of file diff --git a/TV_APP_V2/templates/league_results_display.html b/TV_APP_V2/templates/league_results_display.html deleted file mode 100644 index 3c9cda2..0000000 --- a/TV_APP_V2/templates/league_results_display.html +++ /dev/null @@ -1,1112 +0,0 @@ - - - - - {% if league.league_finished %}League Final Results{% else %}League Scoreboard{% endif %} - - - - - - -
- -
- -
- -
- {% if league.league_finished %}League Championship{% else %}League Scoreboard{% endif %} -
-
- {% if league.league_finished %} - Final Rankings - Best 5 of 6 Tournaments - {% else %} - Tournament {{ league.current_tournament }} of {{ league.total_tournaments }} - Live Updates - {% endif %} -
-
-
- {{ participants|length }} - Participants -
-
- {{ league.current_tournament if not league.league_finished else league.total_tournaments }} - {% if league.league_finished %}Total Tournaments{% else %}Current Tournament{% endif %} -
-
- - {% if league.tournament_type == '40_targets' %}40{% else %}20{% endif %} - - Targets -
-
- {% if participants and participants|length > 0 %}{{ participants[0].final_score if league.league_finished else participants[0].current_total }}{% else %}0{% endif %} - {% if league.league_finished %}Final Score{% else %}Leading Score{% endif %} -
-
-
- - {% if participants and participants|length >= 3 %} - -
-
- {% if league.league_finished %}🏆 Final Champions{% else %}🥇 Current Leaders{% endif %} -
-
- {% for i in range(3) %} - {% set participant = participants[i] %} -
-
-
{{ participant.rank }}
-
- {% if participant.rank == 1 %}st - {% elif participant.rank == 2 %}nd - {% elif participant.rank == 3 %}rd - {% else %}th - {% endif %} -
-
- {% if participant.rank == 1 %}🥇 - {% elif participant.rank == 2 %}🥈 - {% elif participant.rank == 3 %}🥉 - {% endif %} -
-
- -
-
{{ participant.name }}
-
-
ID: {{ participant.id }}
- {% if participant.joker_used %} -
🃏 Joker Used
- {% endif %} - {% if not league.league_finished and participant.current_tournament_participating %} -
🎯 Playing Now
- {% endif %} -
-
- -
-
{{ participant.final_score if league.league_finished else participant.current_total }}
- {% if not league.league_finished %} -
- {% if participant.current_tournament_participating %} - Current: +{{ participant.current_tournament_score }} - {% else %} - Final: {{ participant.final_score }} - {% endif %} -
- {% else %} -
Total: {{ participant.total_score }}
- {% endif %} -
{% if league.league_finished %}Final Score{% else %}Current Score{% endif %}
-
-
- {% endfor %} -
-
- {% endif %} -
- - -
-
-

- {% if league.league_finished %} - 📊 Complete Tournament Breakdown & Final Calculation - {% else %} - 📊 League Standings - Tournament {{ league.current_tournament }} of {{ league.total_tournaments }} - {% endif %} -

-
- -
- - - - - - - - {% if not league.league_finished %} - - {% endif %} - - - - - - - - - - - - {% for participant in participants %} - - - - - - {% for tournament_num in range(1, 7) %} - - {% endfor %} - - - - {% if not league.league_finished %} - - {% endif %} - - {% endfor %} - -
RankParticipantIndividual Tournament Scores - {% if league.league_finished %} - Final Score
(Best 5) - {% else %} - Current
(Best 5) - {% endif %} -
Live
T{{ league.current_tournament }}
T1T2T3T4T5T6
- {{ participant.rank }} - {% if participant.rank == 1 %}🏆 - {% elif participant.rank == 2 %}🥈 - {% elif participant.rank == 3 %}🥉 - {% endif %} - -
{{ participant.name }}
-
{{ participant.id }}
-
- {% set found_result = false %} - {% for result in participant.tournament_results %} - {% if result.tournament == tournament_num %} - {% set found_result = true %} - {% if result.get('joker') or not result.participated %} - 🃏 - {% else %} - {% set all_scores = [] %} - {% for r in participant.tournament_results if r.participated %} - {% set _ = all_scores.append(r.score) %} - {% endfor %} - {% set sorted_scores = all_scores|sort(reverse=true) %} - {% set excluded_score = sorted_scores[-1] if sorted_scores|length > 5 else none %} - - {% if all_scores|length > 5 and result.score == excluded_score %} - {{ result.score }} - {% else %} - {{ result.score }} - {% endif %} - {% endif %} - {% endif %} - {% endfor %} - {% if not found_result %} - - - {% endif %} - - {% if league.league_finished %} - {{ participant.final_score }} - {% else %} - {{ participant.current_total }} - {% endif %} - - {% if participant.current_tournament_participating %} - {{ participant.current_tournament_score }} - {% else %} - - - {% endif %} -
-
- -
-
📖 Scoring Legend:
-
-
- - Counted Score -
- {% if league.league_finished %} -
- - Excluded (Worst) -
- {% endif %} -
- - Joker Used -
-
- - {% if league.league_finished %}Final Score (Best 5){% else %}Current Score{% endif %} -
- {% if not league.league_finished %} -
- - Live Tournament -
- {% endif %} -
-
- - -
-
- - -
- 🔄 Updating... -
- - - - \ No newline at end of file diff --git a/TV_APP_V2/tournament_results.json b/TV_APP_V2/tournament_results.json deleted file mode 100644 index 63e99e4..0000000 --- a/TV_APP_V2/tournament_results.json +++ /dev/null @@ -1,357 +0,0 @@ -{ - "tournament_id": "2025-07-29T20:39:47.326034", - "tournament_type": "20_targets", - "participants": { - "4": { - "name": "Mateja Pleterski", - "targets": { - "1": { - "shot1": 0, - "shot2": 6 - }, - "2": { - "shot1": 7, - "shot2": 0 - }, - "3": { - "shot1": 3, - "shot2": 1 - }, - "4": { - "shot1": 1, - "shot2": 0 - }, - "5": { - "shot1": 10, - "shot2": 2 - }, - "6": { - "shot1": 10, - "shot2": 5 - }, - "7": { - "shot1": 2, - "shot2": 2 - }, - "8": { - "shot1": 7, - "shot2": 10 - }, - "9": { - "shot1": 1, - "shot2": 5 - }, - "10": { - "shot1": 5, - "shot2": 10 - }, - "11": { - "shot1": 1, - "shot2": 1 - }, - "12": { - "shot1": 2, - "shot2": 7 - }, - "13": { - "shot1": 7, - "shot2": 4 - }, - "14": { - "shot1": 9, - "shot2": 5 - }, - "15": { - "shot1": 0, - "shot2": 10 - }, - "16": { - "shot1": 8, - "shot2": 8 - }, - "17": { - "shot1": 2, - "shot2": 8 - }, - "18": { - "shot1": 10, - "shot2": 8 - }, - "19": { - "shot1": 6, - "shot2": 6 - }, - "20": { - "shot1": 4, - "shot2": 6 - } - }, - "total_score": 199, - "completed": true - }, - "2": { - "name": "Nik Pleterski", - "targets": { - "1": { - "shot1": 2, - "shot2": 5 - }, - "2": { - "shot1": 3, - "shot2": 7 - }, - "3": { - "shot1": 7, - "shot2": 7 - }, - "4": { - "shot1": 7, - "shot2": 2 - }, - "5": { - "shot1": 2, - "shot2": 4 - }, - "6": { - "shot1": 2, - "shot2": 6 - }, - "7": { - "shot1": 0, - "shot2": 5 - }, - "8": { - "shot1": 5, - "shot2": 4 - }, - "9": { - "shot1": 9, - "shot2": 7 - }, - "10": { - "shot1": 5, - "shot2": 8 - }, - "11": { - "shot1": 5, - "shot2": 8 - }, - "12": { - "shot1": 5, - "shot2": 4 - }, - "13": { - "shot1": 4, - "shot2": 7 - }, - "14": { - "shot1": 1, - "shot2": 10 - }, - "15": { - "shot1": 5, - "shot2": 3 - }, - "16": { - "shot1": 8, - "shot2": 5 - }, - "17": { - "shot1": 4, - "shot2": 9 - }, - "18": { - "shot1": 3, - "shot2": 1 - }, - "19": { - "shot1": 10, - "shot2": 10 - }, - "20": { - "shot1": 7, - "shot2": 0 - } - }, - "total_score": 206, - "completed": true - }, - "1": { - "name": "Domen Pleterski", - "targets": { - "1": { - "shot1": 6, - "shot2": 1 - }, - "2": { - "shot1": 6, - "shot2": 5 - }, - "3": { - "shot1": 7, - "shot2": 5 - }, - "4": { - "shot1": 7, - "shot2": 8 - }, - "5": { - "shot1": 10, - "shot2": 6 - }, - "6": { - "shot1": 7, - "shot2": 0 - }, - "7": { - "shot1": 1, - "shot2": 8 - }, - "8": { - "shot1": 3, - "shot2": 1 - }, - "9": { - "shot1": 6, - "shot2": 8 - }, - "10": { - "shot1": 3, - "shot2": 6 - }, - "11": { - "shot1": 1, - "shot2": 8 - }, - "12": { - "shot1": 0, - "shot2": 2 - }, - "13": { - "shot1": 1, - "shot2": 8 - }, - "14": { - "shot1": 5, - "shot2": 4 - }, - "15": { - "shot1": 1, - "shot2": 3 - }, - "16": { - "shot1": 1, - "shot2": 10 - }, - "17": { - "shot1": 0, - "shot2": 6 - }, - "18": { - "shot1": 6, - "shot2": 5 - }, - "19": { - "shot1": 8, - "shot2": 6 - }, - "20": { - "shot1": 4, - "shot2": 3 - } - }, - "total_score": 186, - "completed": true - }, - "3": { - "name": "Ivan Tandler", - "targets": { - "1": { - "shot1": 5, - "shot2": 8 - }, - "2": { - "shot1": 9, - "shot2": 3 - }, - "3": { - "shot1": 3, - "shot2": 1 - }, - "4": { - "shot1": 4, - "shot2": 8 - }, - "5": { - "shot1": 3, - "shot2": 1 - }, - "6": { - "shot1": 9, - "shot2": 5 - }, - "7": { - "shot1": 8, - "shot2": 0 - }, - "8": { - "shot1": 0, - "shot2": 2 - }, - "9": { - "shot1": 10, - "shot2": 6 - }, - "10": { - "shot1": 1, - "shot2": 3 - }, - "11": { - "shot1": 8, - "shot2": 3 - }, - "12": { - "shot1": 8, - "shot2": 8 - }, - "13": { - "shot1": 6, - "shot2": 3 - }, - "14": { - "shot1": 10, - "shot2": 2 - }, - "15": { - "shot1": 10, - "shot2": 2 - }, - "16": { - "shot1": 9, - "shot2": 2 - }, - "17": { - "shot1": 9, - "shot2": 4 - }, - "18": { - "shot1": 2, - "shot2": 10 - }, - "19": { - "shot1": 5, - "shot2": 9 - }, - "20": { - "shot1": 9, - "shot2": 5 - } - }, - "total_score": 213, - "completed": true - } - }, - "tournament_finished": true, - "created_at": "2025-07-29T20:39:47.326244", - "finished_at": "2025-07-29T20:39:58.449723" -} \ No newline at end of file diff --git a/TV_APP_V2/app.py b/app.py similarity index 95% rename from TV_APP_V2/app.py rename to app.py index 11f67ac..7f12fab 100644 --- a/TV_APP_V2/app.py +++ b/app.py @@ -1242,13 +1242,12 @@ def mobile_results(): show_league_results=True, show_tournament_results=False, tournament_active=False, - results=None) # No individual tournament results + results=None) else: # Show ongoing league scoreboard calculate_league_final_scores(league_state) participants = get_league_current_standings(league_state) - # Check if there's a current tournament tournament_state = load_tournament_state() tournament_active = tournament_state is not None current_tournament_results = results @@ -1262,7 +1261,36 @@ def mobile_results(): tournament_state=tournament_state, current_tournament_results=current_tournament_results) - # Priority 2: Show individual tournament results (standalone tournament) + # Priority 1.5: Check if current results are from a finished league + elif results and results.get('league_tournament_number'): + # This is a league tournament result, but league state was archived + league_archives = get_archived_leagues() + + if league_archives: + latest_archive = league_archives[0] + archive_data = load_archive_file(latest_archive['filepath']) + + if archive_data and 'league' in archive_data: + archived_league = archive_data['league'] + calculate_league_final_scores(archived_league) + participants = get_league_final_rankings(archived_league) + + return render_template('mobile_results.html', + league=archived_league, + participants=participants, + show_league_results=True, + show_tournament_results=False, + tournament_active=False, + results=None, + archived=True, + archive_info={ + 'filename': latest_archive['filename'], + 'archived_at': archive_data.get('archived_at') + }) + + return redirect('/mobile/archive') + + # Priority 2: Show individual tournament results (standalone tournament only) elif results and results.get('tournament_finished', False): participants = [] for player_id, data in results['participants'].items(): @@ -1281,7 +1309,7 @@ def mobile_results(): participant['rank'] = i + 1 return render_template('mobile_results.html', - results=results, # ← FIXED: Pass as 'results' + results=results, participants=participants, show_league_results=False, show_tournament_results=True, @@ -1395,13 +1423,13 @@ def results_display(): return render_template('league_scoreboard_display.html', league=league_state, - participants=participants) + participants=participants, + results=None) else: # Show ongoing league scoreboard - calculate_league_final_scores(league_state) # Calculate current standings - participants = get_league_current_standings(league_state) # Use the helper function + calculate_league_final_scores(league_state) + participants = get_league_current_standings(league_state) - # Add tournament information tournament_state = load_tournament_state() current_tournament_results = results @@ -1409,9 +1437,41 @@ def results_display(): league=league_state, participants=participants, tournament_state=tournament_state, - current_tournament_results=current_tournament_results) + current_tournament_results=current_tournament_results, + results=None) - # Priority 2: Show individual tournament results (standalone tournament) + # Priority 1.5: Check if current results are from a finished league (even if league state was archived) + elif results and results.get('league_tournament_number'): + # This is a league tournament result, but league state was archived + # Try to find the archived league data + league_archives = get_archived_leagues() + + # Find the most recent league archive (should be the one that just finished) + if league_archives: + latest_archive = league_archives[0] # Already sorted by date (newest first) + archive_data = load_archive_file(latest_archive['filepath']) + + if archive_data and 'league' in archive_data: + archived_league = archive_data['league'] + + # Show final league results from archive + calculate_league_final_scores(archived_league) + participants = get_league_final_rankings(archived_league) + + return render_template('league_scoreboard_display.html', + league=archived_league, + participants=participants, + results=None, + archived=True, + archive_info={ + 'filename': latest_archive['filename'], + 'archived_at': archive_data.get('archived_at') + }) + + # If we can't find the archive, redirect to archive page + return redirect('/archive') + + # Priority 2: Show individual tournament results (standalone tournament only) elif results and results.get('tournament_finished', False): participants = [] for player_id, data in results['participants'].items(): @@ -1429,9 +1489,10 @@ def results_display(): for i, participant in enumerate(participants): participant['rank'] = i + 1 - return render_template('results_display.html', + return render_template('results_display.html', results=results, - participants=participants) + participants=participants, + league=None) else: return redirect('/tournament') diff --git a/camera_settings.json b/camera_settings.json new file mode 100644 index 0000000..d206d56 --- /dev/null +++ b/camera_settings.json @@ -0,0 +1,14 @@ +{ + "camera_titles": { + "1": "Du\u0161an Onuk", + "2": "Domen Pleterski", + "3": "Camera 3", + "4": "Matej \u017dnidari\u010d", + "5": "Jo\u017ee Preglav", + "6": "Camera 6" + }, + "display_options": { + "show_titles": false, + "title_size": 0.8 + } +} \ No newline at end of file diff --git a/league_archives/league_20250731_173512.json b/league_archives/league_20250731_173512.json new file mode 100644 index 0000000..3f9d82d --- /dev/null +++ b/league_archives/league_20250731_173512.json @@ -0,0 +1,344 @@ +{ + "league": { + "league_id": "league_20250731_173343", + "created_at": "2025-07-31T17:33:43.003335", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 220, + "participated": true + }, + { + "tournament": 2, + "score": 205, + "participated": true + }, + { + "tournament": 3, + "score": 185, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 210, + "participated": true + }, + { + "tournament": 6, + "score": 197, + "participated": true + } + ], + "total_score": 1017, + "final_score": 1017, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 210, + "participated": true + }, + { + "tournament": 2, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 3, + "score": 197, + "participated": true + }, + { + "tournament": 4, + "score": 211, + "participated": true + }, + { + "tournament": 5, + "score": 187, + "participated": true + }, + { + "tournament": 6, + "score": 187, + "participated": true + } + ], + "total_score": 992, + "final_score": 992, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 222, + "participated": true + }, + { + "tournament": 2, + "score": 173, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 217, + "participated": true + }, + { + "tournament": 5, + "score": 170, + "participated": true + }, + { + "tournament": 6, + "score": 203, + "participated": true + } + ], + "total_score": 985, + "final_score": 985, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 182, + "participated": true + }, + { + "tournament": 2, + "score": 176, + "participated": true + }, + { + "tournament": 3, + "score": 193, + "participated": true + }, + { + "tournament": 4, + "score": 234, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 207, + "participated": true + } + ], + "total_score": 992, + "final_score": 992, + "tournaments_participated": 5 + }, + "13": { + "name": "Angelca Mrak", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 200, + "participated": true + }, + { + "tournament": 2, + "score": 221, + "participated": true + }, + { + "tournament": 3, + "score": 211, + "participated": true + }, + { + "tournament": 4, + "score": 204, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 246, + "participated": true + } + ], + "total_score": 1082, + "final_score": 1082, + "tournaments_participated": 5 + }, + "25": { + "name": "Andrej Herman", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 204, + "participated": true + }, + { + "tournament": 2, + "score": 197, + "participated": true + }, + { + "tournament": 3, + "score": 182, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 207, + "participated": true + }, + { + "tournament": 6, + "score": 217, + "participated": true + } + ], + "total_score": 1007, + "final_score": 1007, + "tournaments_participated": 5 + }, + "29": { + "name": "Alen Kolar", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 229, + "participated": true + }, + { + "tournament": 2, + "score": 207, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 226, + "participated": true + }, + { + "tournament": 5, + "score": 200, + "participated": true + }, + { + "tournament": 6, + "score": 169, + "participated": true + } + ], + "total_score": 1031, + "final_score": 1031, + "tournaments_participated": 5 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-07-31T17:33:56.405378", + "results_summary": { + "participants": 7, + "total_shots": 280 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-07-31T17:34:14.060958", + "results_summary": { + "participants": 6, + "total_shots": 240 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-07-31T17:34:27.782812", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-07-31T17:34:43.339685", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-07-31T17:34:57.485220", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-07-31T17:35:12.114486", + "results_summary": { + "participants": 7, + "total_shots": 280 + } + } + ], + "league_finished": true, + "finished_at": "2025-07-31T17:35:12.114488" + }, + "archived_at": "2025-07-31T17:35:12.114881" +} \ No newline at end of file diff --git a/league_archives/league_20250731_174110.json b/league_archives/league_20250731_174110.json new file mode 100644 index 0000000..36ef7fc --- /dev/null +++ b/league_archives/league_20250731_174110.json @@ -0,0 +1,344 @@ +{ + "league": { + "league_id": "league_20250731_173903", + "created_at": "2025-07-31T17:39:03.970552", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 219, + "participated": true + }, + { + "tournament": 2, + "score": 221, + "participated": true + }, + { + "tournament": 3, + "score": 180, + "participated": true + }, + { + "tournament": 4, + "score": 208, + "participated": true + }, + { + "tournament": 5, + "score": 214, + "participated": true + }, + { + "tournament": 6, + "score": 0, + "participated": false, + "joker": true + } + ], + "total_score": 1042, + "final_score": 1042, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 2, + "score": 218, + "participated": true + }, + { + "tournament": 3, + "score": 169, + "participated": true + }, + { + "tournament": 4, + "score": 210, + "participated": true + }, + { + "tournament": 5, + "score": 196, + "participated": true + }, + { + "tournament": 6, + "score": 259, + "participated": true + } + ], + "total_score": 1052, + "final_score": 1052, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 216, + "participated": true + }, + { + "tournament": 2, + "score": 166, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 207, + "participated": true + }, + { + "tournament": 5, + "score": 227, + "participated": true + }, + { + "tournament": 6, + "score": 203, + "participated": true + } + ], + "total_score": 1019, + "final_score": 1019, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 171, + "participated": true + }, + { + "tournament": 2, + "score": 214, + "participated": true + }, + { + "tournament": 3, + "score": 195, + "participated": true + }, + { + "tournament": 4, + "score": 208, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 184, + "participated": true + } + ], + "total_score": 972, + "final_score": 972, + "tournaments_participated": 5 + }, + "13": { + "name": "Angelca Mrak", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 157, + "participated": true + }, + { + "tournament": 2, + "score": 220, + "participated": true + }, + { + "tournament": 3, + "score": 236, + "participated": true + }, + { + "tournament": 4, + "score": 186, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 197, + "participated": true + } + ], + "total_score": 996, + "final_score": 996, + "tournaments_participated": 5 + }, + "25": { + "name": "Andrej Herman", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 2, + "score": 220, + "participated": true + }, + { + "tournament": 3, + "score": 233, + "participated": true + }, + { + "tournament": 4, + "score": 223, + "participated": true + }, + { + "tournament": 5, + "score": 209, + "participated": true + }, + { + "tournament": 6, + "score": 198, + "participated": true + } + ], + "total_score": 1083, + "final_score": 1083, + "tournaments_participated": 5 + }, + "29": { + "name": "Alen Kolar", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 234, + "participated": true + }, + { + "tournament": 2, + "score": 191, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 193, + "participated": true + }, + { + "tournament": 5, + "score": 246, + "participated": true + }, + { + "tournament": 6, + "score": 214, + "participated": true + } + ], + "total_score": 1078, + "final_score": 1078, + "tournaments_participated": 5 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-07-31T17:39:16.284855", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-07-31T17:39:55.486212", + "results_summary": { + "participants": 7, + "total_shots": 280 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-07-31T17:40:10.903343", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-07-31T17:40:42.401098", + "results_summary": { + "participants": 7, + "total_shots": 280 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-07-31T17:40:56.790144", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-07-31T17:41:10.701493", + "results_summary": { + "participants": 6, + "total_shots": 240 + } + } + ], + "league_finished": true, + "finished_at": "2025-07-31T17:41:10.701495" + }, + "archived_at": "2025-07-31T17:41:10.701867" +} \ No newline at end of file diff --git a/league_archives/league_20250731_205005.json b/league_archives/league_20250731_205005.json new file mode 100644 index 0000000..bdd263d --- /dev/null +++ b/league_archives/league_20250731_205005.json @@ -0,0 +1,344 @@ +{ + "league": { + "league_id": "league_20250731_204835", + "created_at": "2025-07-31T20:48:35.867628", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 185, + "participated": true + }, + { + "tournament": 2, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 3, + "score": 184, + "participated": true + }, + { + "tournament": 4, + "score": 207, + "participated": true + }, + { + "tournament": 5, + "score": 190, + "participated": true + }, + { + "tournament": 6, + "score": 216, + "participated": true + } + ], + "total_score": 982, + "final_score": 982, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 208, + "participated": true + }, + { + "tournament": 2, + "score": 182, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 197, + "participated": true + }, + { + "tournament": 5, + "score": 186, + "participated": true + }, + { + "tournament": 6, + "score": 207, + "participated": true + } + ], + "total_score": 980, + "final_score": 980, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 207, + "participated": true + }, + { + "tournament": 2, + "score": 176, + "participated": true + }, + { + "tournament": 3, + "score": 206, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 229, + "participated": true + }, + { + "tournament": 6, + "score": 214, + "participated": true + } + ], + "total_score": 1032, + "final_score": 1032, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 193, + "participated": true + }, + { + "tournament": 2, + "score": 234, + "participated": true + }, + { + "tournament": 3, + "score": 180, + "participated": true + }, + { + "tournament": 4, + "score": 180, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 201, + "participated": true + } + ], + "total_score": 988, + "final_score": 988, + "tournaments_participated": 5 + }, + "13": { + "name": "Angelca Mrak", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 189, + "participated": true + }, + { + "tournament": 2, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 3, + "score": 226, + "participated": true + }, + { + "tournament": 4, + "score": 238, + "participated": true + }, + { + "tournament": 5, + "score": 179, + "participated": true + }, + { + "tournament": 6, + "score": 238, + "participated": true + } + ], + "total_score": 1070, + "final_score": 1070, + "tournaments_participated": 5 + }, + "25": { + "name": "Andrej Herman", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 210, + "participated": true + }, + { + "tournament": 2, + "score": 187, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 206, + "participated": true + }, + { + "tournament": 5, + "score": 203, + "participated": true + }, + { + "tournament": 6, + "score": 179, + "participated": true + } + ], + "total_score": 985, + "final_score": 985, + "tournaments_participated": 5 + }, + "29": { + "name": "Alen Kolar", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 175, + "participated": true + }, + { + "tournament": 2, + "score": 198, + "participated": true + }, + { + "tournament": 3, + "score": 192, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 174, + "participated": true + }, + { + "tournament": 6, + "score": 190, + "participated": true + } + ], + "total_score": 929, + "final_score": 929, + "tournaments_participated": 5 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-07-31T20:48:49.197577", + "results_summary": { + "participants": 7, + "total_shots": 280 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-07-31T20:49:06.385339", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-07-31T20:49:21.018321", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-07-31T20:49:34.123174", + "results_summary": { + "participants": 5, + "total_shots": 200 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-07-31T20:49:49.984360", + "results_summary": { + "participants": 6, + "total_shots": 240 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-07-31T20:50:05.948274", + "results_summary": { + "participants": 7, + "total_shots": 280 + } + } + ], + "league_finished": true, + "finished_at": "2025-07-31T20:50:05.948277" + }, + "archived_at": "2025-07-31T20:50:05.948659" +} \ No newline at end of file diff --git a/league_archives/league_20250731_210837.json b/league_archives/league_20250731_210837.json new file mode 100644 index 0000000..ccdb10d --- /dev/null +++ b/league_archives/league_20250731_210837.json @@ -0,0 +1,62 @@ +{ + "league": { + "league_id": "league_20250731_210531", + "created_at": "2025-07-31T21:05:31.154532", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 0, + "participants": { + "1": { + "name": "Player 1", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "2": { + "name": "Player 2", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "3": { + "name": "Player 3", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "4": { + "name": "Player 4", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "5": { + "name": "Player 5", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "6": { + "name": "Player 6", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + } + }, + "completed_tournaments": [], + "league_finished": false + }, + "archived_at": "2025-07-31T21:08:37.578593" +} \ No newline at end of file diff --git a/league_archives/league_20250731_211020.json b/league_archives/league_20250731_211020.json new file mode 100644 index 0000000..58abc4a --- /dev/null +++ b/league_archives/league_20250731_211020.json @@ -0,0 +1,224 @@ +{ + "league": { + "league_id": "league_20250731_210909", + "created_at": "2025-07-31T21:09:09.817078", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 207, + "participated": true + }, + { + "tournament": 2, + "score": 205, + "participated": true + }, + { + "tournament": 3, + "score": 177, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 178, + "participated": true + }, + { + "tournament": 6, + "score": 229, + "participated": true + } + ], + "total_score": 996, + "final_score": 996, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 228, + "participated": true + }, + { + "tournament": 2, + "score": 154, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 208, + "participated": true + }, + { + "tournament": 5, + "score": 204, + "participated": true + }, + { + "tournament": 6, + "score": 178, + "participated": true + } + ], + "total_score": 972, + "final_score": 972, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 217, + "participated": true + }, + { + "tournament": 2, + "score": 217, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 226, + "participated": true + }, + { + "tournament": 5, + "score": 236, + "participated": true + }, + { + "tournament": 6, + "score": 174, + "participated": true + } + ], + "total_score": 1070, + "final_score": 1070, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 180, + "participated": true + }, + { + "tournament": 2, + "score": 188, + "participated": true + }, + { + "tournament": 3, + "score": 198, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 224, + "participated": true + }, + { + "tournament": 6, + "score": 173, + "participated": true + } + ], + "total_score": 963, + "final_score": 963, + "tournaments_participated": 5 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-07-31T21:09:20.146965", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-07-31T21:09:31.705757", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-07-31T21:09:45.470818", + "results_summary": { + "participants": 2, + "total_shots": 80 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-07-31T21:09:57.241356", + "results_summary": { + "participants": 2, + "total_shots": 80 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-07-31T21:10:08.321671", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-07-31T21:10:20.174190", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + } + ], + "league_finished": true, + "finished_at": "2025-07-31T21:10:20.174192" + }, + "archived_at": "2025-07-31T21:10:20.174477" +} \ No newline at end of file diff --git a/league_archives/league_20250731_212411.json b/league_archives/league_20250731_212411.json new file mode 100644 index 0000000..a2d3a35 --- /dev/null +++ b/league_archives/league_20250731_212411.json @@ -0,0 +1,224 @@ +{ + "league": { + "league_id": "league_20250731_212304", + "created_at": "2025-07-31T21:23:04.032473", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 215, + "participated": true + }, + { + "tournament": 2, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 3, + "score": 202, + "participated": true + }, + { + "tournament": 4, + "score": 193, + "participated": true + }, + { + "tournament": 5, + "score": 225, + "participated": true + }, + { + "tournament": 6, + "score": 210, + "participated": true + } + ], + "total_score": 1045, + "final_score": 1045, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 219, + "participated": true + }, + { + "tournament": 2, + "score": 196, + "participated": true + }, + { + "tournament": 3, + "score": 213, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 227, + "participated": true + }, + { + "tournament": 6, + "score": 181, + "participated": true + } + ], + "total_score": 1036, + "final_score": 1036, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 171, + "participated": true + }, + { + "tournament": 2, + "score": 216, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 222, + "participated": true + }, + { + "tournament": 5, + "score": 210, + "participated": true + }, + { + "tournament": 6, + "score": 213, + "participated": true + } + ], + "total_score": 1032, + "final_score": 1032, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 182, + "participated": true + }, + { + "tournament": 2, + "score": 155, + "participated": true + }, + { + "tournament": 3, + "score": 211, + "participated": true + }, + { + "tournament": 4, + "score": 203, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 206, + "participated": true + } + ], + "total_score": 957, + "final_score": 957, + "tournaments_participated": 5 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-07-31T21:23:14.521653", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-07-31T21:23:27.643672", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-07-31T21:23:39.615988", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-07-31T21:23:49.593503", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-07-31T21:23:59.554536", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-07-31T21:24:11.205590", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + } + ], + "league_finished": true, + "finished_at": "2025-07-31T21:24:11.205593" + }, + "archived_at": "2025-07-31T21:24:11.206059" +} \ No newline at end of file diff --git a/league_archives/league_20250731_212933.json b/league_archives/league_20250731_212933.json new file mode 100644 index 0000000..579a6bd --- /dev/null +++ b/league_archives/league_20250731_212933.json @@ -0,0 +1,224 @@ +{ + "league": { + "league_id": "league_20250731_212304", + "created_at": "2025-07-31T21:23:04.032473", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 215, + "participated": true + }, + { + "tournament": 2, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 3, + "score": 202, + "participated": true + }, + { + "tournament": 4, + "score": 193, + "participated": true + }, + { + "tournament": 5, + "score": 225, + "participated": true + }, + { + "tournament": 6, + "score": 210, + "participated": true + } + ], + "total_score": 1045, + "final_score": 1045, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 219, + "participated": true + }, + { + "tournament": 2, + "score": 196, + "participated": true + }, + { + "tournament": 3, + "score": 213, + "participated": true + }, + { + "tournament": 4, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 5, + "score": 227, + "participated": true + }, + { + "tournament": 6, + "score": 181, + "participated": true + } + ], + "total_score": 1036, + "final_score": 1036, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 171, + "participated": true + }, + { + "tournament": 2, + "score": 216, + "participated": true + }, + { + "tournament": 3, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 4, + "score": 222, + "participated": true + }, + { + "tournament": 5, + "score": 210, + "participated": true + }, + { + "tournament": 6, + "score": 213, + "participated": true + } + ], + "total_score": 1032, + "final_score": 1032, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 182, + "participated": true + }, + { + "tournament": 2, + "score": 155, + "participated": true + }, + { + "tournament": 3, + "score": 211, + "participated": true + }, + { + "tournament": 4, + "score": 203, + "participated": true + }, + { + "tournament": 5, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 6, + "score": 206, + "participated": true + } + ], + "total_score": 957, + "final_score": 957, + "tournaments_participated": 5 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-07-31T21:23:14.521653", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-07-31T21:23:27.643672", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-07-31T21:23:39.615988", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-07-31T21:23:49.593503", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-07-31T21:23:59.554536", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-07-31T21:24:11.205590", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + } + ], + "league_finished": true, + "finished_at": "2025-07-31T21:24:11.205593" + }, + "archived_at": "2025-07-31T21:29:33.039147" +} \ No newline at end of file diff --git a/league_archives/league_20250801_095146.json b/league_archives/league_20250801_095146.json new file mode 100644 index 0000000..760e95e --- /dev/null +++ b/league_archives/league_20250801_095146.json @@ -0,0 +1,223 @@ +{ + "league": { + "league_id": "league_20250801_094218", + "created_at": "2025-08-01T09:42:18.469415", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 170, + "participated": true + }, + { + "tournament": 2, + "score": 171, + "participated": true + }, + { + "tournament": 3, + "score": 230, + "participated": true + }, + { + "tournament": 4, + "score": 180, + "participated": true + }, + { + "tournament": 5, + "score": 219, + "participated": true + }, + { + "tournament": 6, + "score": 0, + "participated": false, + "joker": true + } + ], + "total_score": 970, + "final_score": 970, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 236, + "participated": true + }, + { + "tournament": 2, + "score": 173, + "participated": true + }, + { + "tournament": 3, + "score": 202, + "participated": true + }, + { + "tournament": 4, + "score": 166, + "participated": true + }, + { + "tournament": 5, + "score": 227, + "participated": true + }, + { + "tournament": 6, + "score": 0, + "participated": false, + "joker": true + } + ], + "total_score": 1004, + "final_score": 1004, + "tournaments_participated": 5 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 210, + "participated": true + }, + { + "tournament": 2, + "score": 226, + "participated": true + }, + { + "tournament": 3, + "score": 195, + "participated": true + }, + { + "tournament": 4, + "score": 175, + "participated": true + }, + { + "tournament": 5, + "score": 210, + "participated": true + }, + { + "tournament": 6, + "score": 0, + "participated": false, + "joker": true + } + ], + "total_score": 1016, + "final_score": 1016, + "tournaments_participated": 5 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": false, + "tournament_results": [ + { + "tournament": 1, + "score": 207, + "participated": true + }, + { + "tournament": 2, + "score": 209, + "participated": true + }, + { + "tournament": 3, + "score": 182, + "participated": true + }, + { + "tournament": 4, + "score": 235, + "participated": true + }, + { + "tournament": 5, + "score": 200, + "participated": true + }, + { + "tournament": 6, + "score": 184, + "participated": true + } + ], + "total_score": 1217, + "final_score": 1035, + "tournaments_participated": 6 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-08-01T09:42:27.658531", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-08-01T09:51:01.385743", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-08-01T09:51:13.761396", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-08-01T09:51:27.188928", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-08-01T09:51:37.088363", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-08-01T09:51:46.713618", + "results_summary": { + "participants": 1, + "total_shots": 40 + } + } + ], + "league_finished": true, + "finished_at": "2025-08-01T09:51:46.713621" + }, + "archived_at": "2025-08-01T09:51:46.713987" +} \ No newline at end of file diff --git a/league_archives/league_20250801_101045.json b/league_archives/league_20250801_101045.json new file mode 100644 index 0000000..7fb9546 --- /dev/null +++ b/league_archives/league_20250801_101045.json @@ -0,0 +1,221 @@ +{ + "league": { + "league_id": "league_20250801_100941", + "created_at": "2025-08-01T10:09:41.478656", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 6, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": true, + "tournament_results": [ + { + "tournament": 1, + "score": 0, + "participated": false, + "joker": true + }, + { + "tournament": 2, + "score": 167, + "participated": true + }, + { + "tournament": 3, + "score": 193, + "participated": true + }, + { + "tournament": 4, + "score": 181, + "participated": true + }, + { + "tournament": 5, + "score": 190, + "participated": true + }, + { + "tournament": 6, + "score": 219, + "participated": true + } + ], + "total_score": 950, + "final_score": 950, + "tournaments_participated": 5 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": false, + "tournament_results": [ + { + "tournament": 1, + "score": 238, + "participated": true + }, + { + "tournament": 2, + "score": 239, + "participated": true + }, + { + "tournament": 3, + "score": 203, + "participated": true + }, + { + "tournament": 4, + "score": 218, + "participated": true + }, + { + "tournament": 5, + "score": 182, + "participated": true + }, + { + "tournament": 6, + "score": 189, + "participated": true + } + ], + "total_score": 1269, + "final_score": 1087, + "tournaments_participated": 6 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": false, + "tournament_results": [ + { + "tournament": 1, + "score": 183, + "participated": true + }, + { + "tournament": 2, + "score": 177, + "participated": true + }, + { + "tournament": 3, + "score": 177, + "participated": true + }, + { + "tournament": 4, + "score": 201, + "participated": true + }, + { + "tournament": 5, + "score": 208, + "participated": true + }, + { + "tournament": 6, + "score": 189, + "participated": true + } + ], + "total_score": 1135, + "final_score": 958, + "tournaments_participated": 6 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": false, + "tournament_results": [ + { + "tournament": 1, + "score": 174, + "participated": true + }, + { + "tournament": 2, + "score": 192, + "participated": true + }, + { + "tournament": 3, + "score": 195, + "participated": true + }, + { + "tournament": 4, + "score": 179, + "participated": true + }, + { + "tournament": 5, + "score": 199, + "participated": true + }, + { + "tournament": 6, + "score": 212, + "participated": true + } + ], + "total_score": 1151, + "final_score": 977, + "tournaments_participated": 6 + } + }, + "completed_tournaments": [ + { + "tournament_number": 1, + "finished_at": "2025-08-01T10:09:50.293741", + "results_summary": { + "participants": 3, + "total_shots": 120 + } + }, + { + "tournament_number": 2, + "finished_at": "2025-08-01T10:10:01.727450", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 3, + "finished_at": "2025-08-01T10:10:14.615370", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 4, + "finished_at": "2025-08-01T10:10:24.445436", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 5, + "finished_at": "2025-08-01T10:10:34.780992", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + }, + { + "tournament_number": 6, + "finished_at": "2025-08-01T10:10:45.109247", + "results_summary": { + "participants": 4, + "total_shots": 160 + } + } + ], + "league_finished": true, + "finished_at": "2025-08-01T10:10:45.109249" + }, + "archived_at": "2025-08-01T10:10:45.109575" +} \ No newline at end of file diff --git a/league_archives/league_20250802_152240.json b/league_archives/league_20250802_152240.json new file mode 100644 index 0000000..8221333 --- /dev/null +++ b/league_archives/league_20250802_152240.json @@ -0,0 +1,86 @@ +{ + "league": { + "league_id": "league_20250802_151950", + "created_at": "2025-08-02T15:19:50.435781", + "tournament_type": "20_targets", + "total_tournaments": 6, + "current_tournament": 1, + "participants": { + "1": { + "name": "Domen Pleterski", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "2": { + "name": "Nik Pleterski", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "3": { + "name": "Ivan Tandler", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "4": { + "name": "Mateja Pleterski", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "5": { + "name": "Jo\u017ee Verhnjak", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "6": { + "name": "Mateja Senica", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "7": { + "name": "Branko Poker\u017enik", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "8": { + "name": "Franc \u017digart", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + }, + "9": { + "name": "Janez Bo\u017ei\u010d", + "joker_used": false, + "tournament_results": [], + "total_score": 0, + "final_score": 0, + "tournaments_participated": 0 + } + }, + "completed_tournaments": [], + "league_finished": false + }, + "archived_at": "2025-08-02T15:22:40.774320" +} \ No newline at end of file diff --git a/TV_APP_V2/players.json b/players.json similarity index 94% rename from TV_APP_V2/players.json rename to players.json index 4ba1638..43ad48d 100644 --- a/TV_APP_V2/players.json +++ b/players.json @@ -23,27 +23,27 @@ { "id": 5, "name": "Jo\u017ee Verhnjak", - "enabled": false + "enabled": true }, { "id": 6, "name": "Mateja Senica", - "enabled": false + "enabled": true }, { "id": 7, "name": "Branko Poker\u017enik", - "enabled": false + "enabled": true }, { "id": 8, "name": "Franc \u017digart", - "enabled": false + "enabled": true }, { "id": 9, "name": "Janez Bo\u017ei\u010d", - "enabled": false + "enabled": true }, { "id": 10, @@ -214,11 +214,6 @@ "id": 43, "name": "Marko Pokr\u017enik", "enabled": false - }, - { - "id": 44, - "name": "test", - "enabled": false } ] } \ No newline at end of file diff --git a/TV_APP_V2/static/logo.png b/static/logo.png similarity index 100% rename from TV_APP_V2/static/logo.png rename to static/logo.png diff --git a/TV_APP_V2/static/setting.png b/static/setting.png similarity index 100% rename from TV_APP_V2/static/setting.png rename to static/setting.png diff --git a/templates/.vscode/settings.json b/templates/.vscode/settings.json new file mode 100644 index 0000000..3b66410 --- /dev/null +++ b/templates/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/TV_APP_V2/templates/draft.html b/templates/draft.html similarity index 100% rename from TV_APP_V2/templates/draft.html rename to templates/draft.html diff --git a/TV_APP_V2/templates/fullscreen.html b/templates/fullscreen.html similarity index 100% rename from TV_APP_V2/templates/fullscreen.html rename to templates/fullscreen.html diff --git a/TV_APP_V2/templates/index.html b/templates/index.html similarity index 100% rename from TV_APP_V2/templates/index.html rename to templates/index.html diff --git a/TV_APP_V2/templates/league_scoreboard_display.html b/templates/league_scoreboard_display.html similarity index 99% rename from TV_APP_V2/templates/league_scoreboard_display.html rename to templates/league_scoreboard_display.html index 57d61f4..997a817 100644 --- a/TV_APP_V2/templates/league_scoreboard_display.html +++ b/templates/league_scoreboard_display.html @@ -12,7 +12,7 @@ html, body { margin: 0; padding: 0; - background: #f8f9fa; + background: #f5f5f5; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; height: 100vh; overflow: hidden; @@ -885,7 +885,7 @@