обновление для Кубка России

переделаны все парсеры на ссылки из базы
This commit is contained in:
2026-07-02 12:46:29 +03:00
parent b0fe3ad5a4
commit 57907fd86b
29 changed files with 1838 additions and 240 deletions

View File

@@ -5,6 +5,24 @@ from repositories.team_repository import get_team_id_by_external_id
from repositories.stadium_repository import get_or_create_stadium
def ensure_match_source_key_column() -> None:
"""Добавляет источник турнира для матчей, чтобы vMix выбирал правильную папку логотипов."""
conn = get_connection()
try:
with conn.cursor() as cur:
cur.execute(
"""
ALTER TABLE matches
ADD COLUMN IF NOT EXISTS source_key VARCHAR(50);
"""
)
conn.commit()
except Exception:
conn.rollback()
raise
finally:
conn.close()
def upsert_match(
external_id: str,
@@ -20,6 +38,7 @@ def upsert_match(
stadium_id: int | None = None,
date_raw: str | None = None,
score_add: str | None = None,
source_key: str | None = None,
) -> None:
query = """
INSERT INTO matches (
@@ -36,10 +55,11 @@ INSERT INTO matches (
stadium_id,
date_raw,
score_add,
source_key,
created_at,
updated_at
)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), NOW())
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), NOW())
ON CONFLICT (external_id)
DO UPDATE SET
home_team_id = EXCLUDED.home_team_id,
@@ -54,6 +74,7 @@ DO UPDATE SET
stadium_id = EXCLUDED.stadium_id,
date_raw = EXCLUDED.date_raw,
score_add = EXCLUDED.score_add,
source_key = COALESCE(EXCLUDED.source_key, matches.source_key),
updated_at = NOW();
"""
@@ -76,6 +97,7 @@ DO UPDATE SET
stadium_id,
date_raw,
score_add,
source_key,
),
)
conn.commit()
@@ -100,6 +122,7 @@ def upsert_match_by_team_external_ids(
stadium_id: int | None = None,
date_raw: str | None = None,
score_add: str | None = None,
source_key: str | None = None,
) -> None:
home_team_id = get_team_id_by_external_id(home_team_external_id)
away_team_id = get_team_id_by_external_id(away_team_external_id)
@@ -125,6 +148,7 @@ def upsert_match_by_team_external_ids(
stadium_id=stadium_id,
date_raw=date_raw,
score_add=score_add,
source_key=source_key,
)