исправлено передача синих логотипов для Зенит/Динамо и логотипы каналов не должны отображаться, когда у матча уже есть счет
This commit is contained in:
16
app.py
16
app.py
@@ -35,7 +35,13 @@ from parsers.parser_players import run_parser_players
|
||||
from parsers.parser_schedule import run_parser_schedule
|
||||
from parsers.parser_standings import run_parser_standings
|
||||
from parsers.parser_teams import run_parser_teams
|
||||
from parsers.parser_sources import build_empty_photo_path, build_channel_logo_path, build_empty_channel_logo_path, list_parser_sources, get_default_source_key, get_parser_source
|
||||
from parsers.parser_sources import (
|
||||
build_empty_photo_path,
|
||||
build_schedule_channel_logo_path,
|
||||
list_parser_sources,
|
||||
get_default_source_key,
|
||||
get_parser_source,
|
||||
)
|
||||
from services.project_settings_service import build_project_settings_context, save_project_settings
|
||||
from repositories.project_settings_repository import ensure_project_settings_tables
|
||||
|
||||
@@ -1850,9 +1856,11 @@ def vmix_schedule(session_token: str):
|
||||
"#FFFFFF00" if row[2] is None and row[3] is None else "#FFFFFF"
|
||||
),
|
||||
"channel": (
|
||||
build_channel_logo_path(row[8] if len(row) > 8 else None, row[7])
|
||||
if str(row[7] or "").strip()
|
||||
else build_empty_channel_logo_path(row[8] if len(row) > 8 else None)
|
||||
build_schedule_channel_logo_path(
|
||||
row[8] if len(row) > 8 else None,
|
||||
row[7],
|
||||
has_score=(row[2] is not None or row[3] is not None),
|
||||
)
|
||||
),
|
||||
"channel_value": row[7] or "",
|
||||
"source_key": row[8] if len(row) > 8 else "",
|
||||
|
||||
@@ -270,3 +270,22 @@ def build_channel_logo_path(source_key: str | None, filename: str | None) -> str
|
||||
|
||||
def build_empty_channel_logo_path(source_key: str | None = None) -> str:
|
||||
return build_channel_logo_path(source_key, "EMPTY.png")
|
||||
|
||||
|
||||
def build_schedule_channel_logo_path(
|
||||
source_key: str | None,
|
||||
channel: str | None,
|
||||
has_score: bool,
|
||||
) -> str:
|
||||
"""Возвращает логотип канала для расписания vMix.
|
||||
|
||||
После появления счёта логотип канала должен быть скрыт, даже если канал
|
||||
остался отмечен в расписании.
|
||||
"""
|
||||
if has_score:
|
||||
return build_empty_channel_logo_path(source_key)
|
||||
|
||||
if str(channel or "").strip():
|
||||
return build_channel_logo_path(source_key, channel)
|
||||
|
||||
return build_empty_channel_logo_path(source_key)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import secrets
|
||||
|
||||
from db import get_connection
|
||||
from parsers.parser_sources import build_logo_path
|
||||
from parsers.parser_sources import build_logo_variant_path
|
||||
from repositories.match_repository import resolve_match_source_key
|
||||
|
||||
|
||||
@@ -92,8 +92,12 @@ def get_match_session_by_token(session_token: str):
|
||||
source_key = resolve_match_source_key(row[1], row[21] if len(row) > 21 else None)
|
||||
if len(row) > 21:
|
||||
row[21] = source_key
|
||||
row[16] = build_logo_path(source_key, row[16])
|
||||
row[20] = build_logo_path(source_key, row[20])
|
||||
# Эти пути используются рабочей страницей при отправке команд
|
||||
# SetImage через agent.exe для нейтральных титров. Для «Динамо» и
|
||||
# «Зенита» в титрах нужен синий вариант логотипа; остальные команды
|
||||
# остаются без изменений.
|
||||
row[16] = build_logo_variant_path(source_key, row[16], "blue")
|
||||
row[20] = build_logo_variant_path(source_key, row[20], "blue")
|
||||
return tuple(row)
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
Reference in New Issue
Block a user