This commit is contained in:
2025-11-26 11:33:35 +03:00
3 changed files with 16 additions and 51 deletions

View File

@@ -317,6 +317,7 @@ detect_team() {
["10.10.35.28"]="mba-mai" ["10.10.35.28"]="mba-mai"
["10.10.35.29"]="Pari Nizhny Novgorod" ["10.10.35.29"]="Pari Nizhny Novgorod"
["10.10.35.30"]="unics" ["10.10.35.30"]="unics"
["10.10.35.31"]="enisey"
) )
# Определение команды по IP # Определение команды по IP

View File

@@ -14,7 +14,7 @@ from dotenv import load_dotenv
from pprint import pprint from pprint import pprint
import nasio import nasio
import io, os, platform, time import io, os, platform, time
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ETя
import re import re
from PIL import Image, ImageDraw, ImageFont from PIL import Image, ImageDraw, ImageFont
from io import BytesIO from io import BytesIO
@@ -688,6 +688,11 @@ def results_consumer():
] ]
# 1) матч ЗАКОНЧЕН → запускаем ОТСРОЧЕННЫЙ переход # 1) матч ЗАКОНЧЕН → запускаем ОТСРОЧЕННЫЙ переход
# ##TODO - Усложненый код? Нужен, если статус бывает сложнее, чем "result",
# а что-то в стиле "result 1:0", т.е. слова из finished_markers являются
# состовной частью настоящего статуса
# В противном случае вполне рабочий вариант:
# if raw_ls_status_low in finished_markers:
if any(m in raw_ls_status_low for m in finished_markers): if any(m in raw_ls_status_low for m in finished_markers):
now_ts = time.time() now_ts = time.time()
# если ещё не назначали переход — назначим # если ещё не назначали переход — назначим
@@ -805,6 +810,7 @@ def get_items(data: dict) -> list:
Многие ручки отдают {"result":[...]} или {"seasons":[...]}. Многие ручки отдают {"result":[...]} или {"seasons":[...]}.
Если находим список — возвращаем его. Если находим список — возвращаем его.
Если нет — возвращаем None (значит, нужно брать весь dict). Если нет — возвращаем None (значит, нужно брать весь dict).
ВНИМАНИЕ: если списков в data несколько - вернет случайный
""" """
for k, v in data.items(): for k, v in data.items():
if isinstance(v, list): if isinstance(v, list):
@@ -847,6 +853,8 @@ def pick_game_for_team(calendar_json):
return game["game"]["id"], gdt, True, cal_status return game["game"]["id"], gdt, True, cal_status
# 2) если на сегодня нет — берём последнюю прошедшую # 2) если на сегодня нет — берём последнюю прошедшую
# TODO - код повторяется почти без изменений.
# Можно без сожаления свести в один проход.
last_id = None last_id = None
last_dt = None last_dt = None
last_status = None last_status = None
@@ -3229,14 +3237,11 @@ def change_vmix_datasource_urls(xml_data, new_base_url: str) -> bytes:
root = ET.fromstring(text) root = ET.fromstring(text)
# 4. Меняем URL # 4. Меняем URL
for ds in root.findall(".//datasource[@friendlyName='JSON']"): for url_tag in root.findall(".//datasource[@friendlyName='JSON']//instance//state/xml/url"):
for inst in ds.findall(".//instance"): old_url = url_tag.text.strip()
url_tag = inst.find(".//state/xml/url") pattern = r'https?:\/\/[^\/]+'
if url_tag is not None and url_tag.text: new_url = re.sub(pattern, new_base_url, old_url, count=0, flags=0)
old_url = url_tag.text.strip() url_tag.text = new_url
pattern = r"https?\:\/\/\w+\.\w+\.\w{2,}|https?\:\/\/\d{,3}\.\d{,3}\.\d{,3}\.\d{,3}\:\d*"
new_url = re.sub(pattern, new_base_url, old_url, count=0, flags=0)
url_tag.text = new_url
# 5. Сериализуем обратно в bytes # 5. Сериализуем обратно в bytes
new_xml = ET.tostring(root, encoding="utf-8", method="xml") new_xml = ET.tostring(root, encoding="utf-8", method="xml")

View File

@@ -1,41 +0,0 @@
@echo off
setlocal
set "vmix_file=%~1"
if "%vmix_file%"=="" (
echo Usage: %0 filename.vmix
pause
exit /b 1
)
if not exist "%vmix_file%" (
echo File "%vmix_file%" not found!
pause
exit /b 1
)
set "replace=https://per.tvstart.ru"
set "temp_file=%vmix_file%.tmp"
echo Processing: %vmix_file%
powershell -Command "
$content = Get-Content '%vmix_file%' -Raw
$pattern = 'https?:\/\/\d*\.\d*\.\d*\.\d*:\d*|https?:\/\/\w*\.\w*\.\w*'
$replacement = '%replace%'
$result = $content -replace $pattern, $replacement
$result | Out-File '%temp_file%' -Encoding UTF8
"
if exist "%temp_file%" (
move /y "%temp_file%" "%vmix_file%" > nul
echo Replacement completed successfully!
echo URLs matching these patterns were replaced:
echo - IP addresses with ports (http://127.0.0.1:8000 etc.)
echo - Three-part domains (https://gfx.tvstart.ru etc.)
echo Replacement: %replace%
) else (
echo Error: Failed to process file
)
pause