Files
hockey_new/README_build179_RU.txt

50 lines
6.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

BUILD179 — кнопки общего Input и автообновление надписей удалений
Версия сервера: 2026.09.30.2
Дата: 30 сентября 2026
Патч поверх build178.
УСТАНОВКА
1. Остановите сервер и сохраните копии четырёх заменяемых файлов.
2. Распакуйте архив в корень проекта, сохранив структуру папок и подтвердив замену файлов.
3. Запустите сервер и обновите страницу сочетанием Ctrl+F5.
СОСТАВ
app.py
hockey_data/agent_bridge.py
hockey_data/mapping_context.py
ui_builder/static/app.js
README_build179_RU.txt
Архив содержит четыре изменённых рабочих файла и эту инструкцию.
Пользовательские JSON-конфигурации, настройки подключения, базы данных и файлы Agent в архив не включены.
ИСПРАВЛЕНИЯ КНОПОК
Кнопки одного Input выполняют действия в порядке: сохранение контекста кнопки → чтение SQL и применение Mapping → команды vMix.
Быстрые нажатия разных кнопок последовательно проходят весь этот порядок, поэтому в запрос первой кнопки не подставляется идентификатор следующей.
Для нижней панели обновляются title_button.id, title_button.label и title_button.text. Команды управления таймером сохраняют контекст последней кнопки титра.
На одно выполнение сценария каждый SQL-источник выбранного Input читается один раз. При следующем нажатии происходит новое чтение, даже если автообновление SQL выключено.
Явные шаги SetText сценария выполняются после Mapping и могут задавать собственную надпись.
Отсутствующий параметр или поле отдельной связи Mapping больше не блокирует весь титр. Доступные связи обновляются, а оператор получает сообщение об обновлении части данных с указанием источника или поля.
Ошибки целевого Input и отправки команд продолжают останавливать вывод. Вместо сообщения «Сценарий не был выполнен» показывается причина сбоя.
Для кнопок у «Выбранного игрока» SQL получает external ID игрока из нажатого блока через :selected_player_id. При нескольких заполненных слотах используется первый заполненный слот; остальные игроки доступны через переменные соответствующего блока.
Ручной общий выбор игрока в базе при этом не перезаписывается. Пустой идентификатор блока не заменяется предыдущим ручным выбором.
Выбранный Agent назначается текущему матчу и сессии до чтения SQL. Другие Agent не получают эти команды.
АВТООБНОВЛЕНИЕ НАДПИСЕЙ УДАЛЕНИЙ
Фоновое обновление продолжает работать по сохранённым настройкам SQL-источников. Включённые источники выполняются с заданным интервалом; выключенные автоматически не включаются.
В SQL передаётся сессия назначенного оператора, поэтому :session_token и переменные со scope session читаются для правильной сессии.
Ошибка валидации одного SQL-источника изолируется: остальные источники, включая надписи удалений, продолжают обновляться. Ошибка сохраняется в диагностике фонового обновления.
В vMix отправляются только изменившиеся значения. При смене игрока или типа штрафа надпись обновляется; одинаковый текст повторно не отправляется.
Автообновление статистики игрока также использует выбор блока последней нажатой кнопки титра.
ПРОВЕРКА
Локально прошли 120 релевантных серверных проверок на тестовой SQLite и сценарии в браузере с тестовым Agent.
Проверены две кнопки одного Input, два блока игроков, быстрые нажатия, разовое выполнение SQL, отсутствующие параметры, видимость полей, привязка матча и защита второго браузера.
Проверен работающий фоновый цикл: надпись удаления меняется после смены игрока, несмотря на ошибку другого SQL-источника.
Историческая проверка, ожидающая привязку по ключу Input вместо названия, исключена как несовместимая с ранее принятой привязкой по названию.
Работа с вашим запущенным vMix и рабочей базой в этих проверках не выполнялась.
После установки проверьте «Раздевалка хозяев», соседнюю кнопку того же Input и кнопки у двух блоков игроков. Для проверки удалений оставьте автообновление соответствующего SQL-источника включённым и поменяйте игрока или тип штрафа.