77 lines
6.9 KiB
Plaintext
77 lines
6.9 KiB
Plaintext
BUILD182 — SQL без игрока удаления, Preview через триггер, общая ссылка «Свои плюсы»
|
||
Версия: 2026.10.02.3, 02.10.2026
|
||
Обновление поверх BUILD181 / 2026.10.02.2.
|
||
|
||
УСТАНОВКА
|
||
1. Сохраните резервную копию файлов, которые будете заменять.
|
||
2. Остановите приложение и распакуйте архив в корень проекта с заменой файлов,
|
||
сохранив структуру папок. В архиве ровно шесть изменённых файлов программы.
|
||
3. Запустите приложение заново и обновите браузер через Ctrl+F5.
|
||
4. Проверьте отображение версии 2026.10.02.3.
|
||
|
||
SQL ПРИ ОТСУТСТВИИ ИГРОКА УДАЛЕНИЯ
|
||
Пустые ID игрока выделенного удаления теперь передаются в запрос как SQL NULL,
|
||
вместо остановки с «Не хватает переменных». Ваш запрос WITH params / NULLIF /
|
||
LEFT JOIN можно оставить без изменений. SQL выполнится и сможет вернуть данные
|
||
самого нарушения и длительность штрафа даже без игрока.
|
||
Это относится к player_id и player_db_id для selected_penalty,
|
||
selected_home_penalty, selected_away_penalty, active_home_penalty,
|
||
active_away_penalty. Остальные обязательные параметры проверяются как раньше.
|
||
У командного штрафа ID игрока очищается даже при старом сохранённом игроке.
|
||
|
||
НАСТРОЙКА ПОДСМОТРА УДАЛЕНИЯ В VMIX
|
||
1. Откройте «События и триггеры» и добавьте триггер.
|
||
2. Источник / Action ID: ваш блок «Хоккей: дашборд удалений».
|
||
3. Событие: penalty_selected — удаление выбрано для подсмотра.
|
||
4. item_id оставьте пустым, чтобы срабатывало для любого удаления.
|
||
5. Действие: «Титр в Preview (обновить SQL/Mapping)».
|
||
6. Нажмите «Обновить список Inputs», если нужного титра нет в списке.
|
||
Выберите его в «Название Input / титра» и нажмите «Сохранить».
|
||
7. Во вкладке «Игра» нажмите на карточку удаления вне кнопок управления.
|
||
Сначала сохраняется выделенное удаление, затем выполняются SQL/Mapping
|
||
только этого Input и после этого отправляется PreviewInput.
|
||
|
||
Включать периодическое автообновление SQL для этой операции не требуется.
|
||
Если для разных сторон нужны разные титры, создайте два триггера:
|
||
поле условия detail.side, оператор «Равно», значения home и away соответственно.
|
||
Без условий достаточно одного триггера для всех удалений.
|
||
Input сохраняется и вызывается по названию. Настройка хранится в существующих
|
||
файлах конфигурации интерфейса и переживает перезапуск приложения.
|
||
Триггер отправляет титр в Preview; быстрые выборы удалений выполняются по порядку.
|
||
Ошибки SQL/доставки отображаются оператору. Фатальная ошибка Mapping блокирует
|
||
Preview; независимые рабочие связи сохраняют прежний режим частичного обновления.
|
||
|
||
ССЫЛКА «СВОИ ПЛЮСЫ»
|
||
Одна общая ссылка загружается для любого матча и обоих языков.
|
||
Изменяйте её в шапке «Свои плюсы» — «Ссылка для всех матчей».
|
||
После автосохранения новое значение используется при открытии других матчей.
|
||
Открытие ссылки по-прежнему происходит в новой вкладке браузера.
|
||
Заметки и статусы строк остаются отдельными для каждого матча.
|
||
Обычное редактирование строк не отправляет старую копию ссылки на сервер.
|
||
Ссылка хранится в settings/local/hockey_custom_pluses.json. Этот файл создаётся
|
||
автоматически и в архив обновления не включён.
|
||
При первом использовании переносится непустая ссылка из последнего обновлённого
|
||
матча предыдущей версии. После явного очищения старые значения не возвращаются.
|
||
|
||
ПРОВЕРКИ
|
||
125 проверок новых изменений и совместимости на изолированной тестовой базе.
|
||
Проверено выполнение WITH/LEFT JOIN без игрока, заполненный игрок, очистка ID,
|
||
передача NULL, сохранение конфигурации и общая ссылка между матчами/перезапусками.
|
||
Браузерные проверки: реальный клик по карточке, context -> SQL/Mapping -> Preview,
|
||
быстрые переключения и синхронизация параметров таймерами, ошибки, зритель,
|
||
условия сторон, сохранение настроек, общая ссылка и размеры интерфейса.
|
||
Для тестовой SQLite-базы адаптированы PostgreSQL ::text и LEFT; производственный
|
||
запрос и его имена параметров не меняются. Вызовы vMix проверены с имитацией Agent.
|
||
Рабочая база и реальный эфир при проверках не использовались.
|
||
Один старый статический тест на четыре Overlay исключён: до этого обновления
|
||
приложение уже поддерживало восемь каналов Overlay.
|
||
|
||
СОСТАВ АРХИВА
|
||
app.py
|
||
hockey_data/config.py
|
||
hockey_data/service.py
|
||
hockey_data/mapping_context.py
|
||
ui_builder/manager.py
|
||
ui_builder/static/app.js
|
||
README_UPDATE182_RU.txt
|