From 55e680fce80ade87648f9d44906df3b6df1ea072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=A7=D0=B5=D1=80=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Wed, 22 Apr 2026 12:54:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=87=D0=B8=D0=BD=D0=B8=D1=82=D1=8C=20=D0=B0=D0=BC?= =?UTF-8?q?=D0=BB=D1=83=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=D1=87=D0=B8=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B2=20vMix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repositories/player_repository.py | 5 +++-- services/game_service.py | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/repositories/player_repository.py b/repositories/player_repository.py index 3b9f250..1880c67 100644 --- a/repositories/player_repository.py +++ b/repositories/player_repository.py @@ -186,7 +186,8 @@ def mark_match_parse_error(external_id: str, error_text: str) -> None: def get_player_id_by_name_and_team(full_name: str, team_id: int) -> int | None: query = """ - SELECT id + SELECT id, + position FROM players WHERE team_id = %s AND LOWER(full_name) = LOWER(%s) @@ -198,7 +199,7 @@ def get_player_id_by_name_and_team(full_name: str, team_id: int) -> int | None: with conn.cursor() as cur: cur.execute(query, (team_id, full_name.strip())) row = cur.fetchone() - return row[0] if row else None + return row if row else None finally: conn.close() diff --git a/services/game_service.py b/services/game_service.py index c5c585e..33fc655 100644 --- a/services/game_service.py +++ b/services/game_service.py @@ -38,12 +38,13 @@ def sync_match_page( lineup_rows = [] for player in home_starting: player_id = None + player_position = None if player.get("player_external_id"): player_id = get_player_id_by_external_id(player["player_external_id"]) if player_id is None: - player_id = get_player_id_by_name_and_team( + player_id, player_position = get_player_id_by_name_and_team( player["player_name"], home_team_id ) @@ -55,6 +56,7 @@ def sync_match_page( "player_name": player["player_name"], "number": player.get("number"), "position": player.get("position"), + "position_full": player_position, "is_captain": bool(player.get("is_captain")), "lineup_type": "starting", "source": "parser", @@ -63,12 +65,13 @@ def sync_match_page( for player in away_starting: player_id = None + player_position = None if player.get("player_external_id"): player_id = get_player_id_by_external_id(player["player_external_id"]) if player_id is None: - player_id = get_player_id_by_name_and_team( + player_id, player_position = get_player_id_by_name_and_team( player["player_name"], away_team_id ) @@ -80,6 +83,7 @@ def sync_match_page( "player_name": player["player_name"], "number": player.get("number"), "position": player.get("position"), + "position_full": player_position, "is_captain": bool(player.get("is_captain")), "lineup_type": "starting", "source": "parser", @@ -88,12 +92,13 @@ def sync_match_page( for player in home_bench: player_id = None + player_position = None if player.get("player_external_id"): player_id = get_player_id_by_external_id(player["player_external_id"]) if player_id is None: - player_id = get_player_id_by_name_and_team( + player_id, player_position = get_player_id_by_name_and_team( player["player_name"], home_team_id ) @@ -105,6 +110,7 @@ def sync_match_page( "player_name": player["player_name"], "number": player.get("number"), "position": player.get("position"), + "position_full": player_position, "is_captain": bool(player.get("is_captain")), "lineup_type": "bench", "source": "parser", @@ -113,12 +119,13 @@ def sync_match_page( for player in away_bench: player_id = None + player_position = None if player.get("player_external_id"): player_id = get_player_id_by_external_id(player["player_external_id"]) if player_id is None: - player_id = get_player_id_by_name_and_team( + player_id, player_position = get_player_id_by_name_and_team( player["player_name"], away_team_id ) @@ -130,6 +137,7 @@ def sync_match_page( "player_name": player["player_name"], "number": player.get("number"), "position": player.get("position"), + "position_full": player_position, "is_captain": bool(player.get("is_captain")), "lineup_type": "bench", "source": "parser",