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.29"]="Pari Nizhny Novgorod"
["10.10.35.30"]="unics"
["10.10.35.31"]="enisey"
)
# Определение команды по IP

View File

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