build 118 - оверлеи
This commit is contained in:
@@ -277,7 +277,7 @@ class VmixAgentHub:
|
||||
text = re.sub(r"\s+", "", str(function_name or ""))
|
||||
if text.lower() == "overlayinputalloff":
|
||||
return ("all", "off")
|
||||
match = re.search(r"OverlayInput([1-4])(In|Out|Off)?", text, flags=re.IGNORECASE)
|
||||
match = re.search(r"OverlayInput([1-8])(In|Out|Off)?", text, flags=re.IGNORECASE)
|
||||
if not match:
|
||||
return None
|
||||
raw = str(match.group(2) or "toggle").lower()
|
||||
@@ -333,7 +333,7 @@ class VmixAgentHub:
|
||||
|
||||
def _runtime_overlay_payload(self, device_id: str) -> dict[str, Any]:
|
||||
source = self._runtime_overlay_state.get(device_id, {})
|
||||
overlays = {str(layer): dict(value) for layer, value in source.items() if str(layer) in {"1", "2", "3", "4"}}
|
||||
overlays = {str(layer): dict(value) for layer, value in source.items() if str(layer) in {"1", "2", "3", "4", "5", "6", "7", "8"}}
|
||||
authoritative = bool(getattr(self, "_runtime_overlay_authoritative", {}).get(device_id, False))
|
||||
observed = str(getattr(self, "_runtime_overlay_observed_at", {}).get(device_id) or "")
|
||||
return {
|
||||
@@ -697,7 +697,7 @@ class VmixAgentHub:
|
||||
async def receive_overlay_state(self, device_id: str, message: dict[str, Any]) -> None:
|
||||
raw_overlays = message.get("overlays") if isinstance(message.get("overlays"), dict) else {}
|
||||
next_state: dict[str, dict[str, str]] = {}
|
||||
for layer in ("1", "2", "3", "4"):
|
||||
for layer in ("1", "2", "3", "4", "5", "6", "7", "8"):
|
||||
raw = raw_overlays.get(layer)
|
||||
if raw is None:
|
||||
raw = raw_overlays.get(int(layer))
|
||||
|
||||
@@ -340,7 +340,7 @@ class HockeySettingsStore:
|
||||
source = source_team_states.get(state_key)
|
||||
source = source if isinstance(source, dict) else {}
|
||||
overlay = str(source.get("overlay") or defaults["overlay"]).strip()
|
||||
if overlay not in {"1", "2", "3", "4"}:
|
||||
if overlay not in {"1", "2", "3", "4", "5", "6", "7", "8"}:
|
||||
overlay = str(defaults["overlay"])
|
||||
normalised_team_states[state_key] = {
|
||||
"ru": str(source.get("ru", defaults["ru"]) or "").strip()[:48],
|
||||
|
||||
@@ -653,14 +653,14 @@
|
||||
function scoreboardTeamStatesMarkup(settings) {
|
||||
return SCOREBOARD_TEAM_STATE_ROWS.map((row) => {
|
||||
const value = scoreboardTeamStateValue(settings, row.key);
|
||||
const overlay = ["1", "2", "3", "4"].includes(String(value.overlay || "")) ? String(value.overlay) : (row.key.includes("empty_net") ? "3" : "2");
|
||||
const overlay = ["1", "2", "3", "4", "5", "6", "7", "8"].includes(String(value.overlay || "")) ? String(value.overlay) : (row.key.includes("empty_net") ? "3" : "2");
|
||||
return `
|
||||
<div class="hockey-team-state-setting-row">
|
||||
<div class="hockey-team-state-setting-kind"><b>${escapeHtml(row.side)}</b><strong>${escapeHtml(row.title)}</strong></div>
|
||||
<label><span>Русская надпись</span><input name="team_state_${row.key}_ru" maxlength="48" value="${escapeHtml(value.ru || row.defaultRu)}"></label>
|
||||
<label><span>English label</span><input name="team_state_${row.key}_en" maxlength="48" value="${escapeHtml(value.en || row.defaultEn)}"></label>
|
||||
<label><span>vMix Input</span><select name="team_state_${row.key}_input">${scoreboardInputOptions(value.input, value.input_title)}</select></label>
|
||||
<label><span>Overlay</span><select name="team_state_${row.key}_overlay">${[1,2,3,4].map((item) => `<option value="${item}" ${String(item) === overlay ? "selected" : ""}>Overlay ${item}</option>`).join("")}</select></label>
|
||||
<label><span>Overlay</span><select name="team_state_${row.key}_overlay">${[1,2,3,4,5,6,7,8].map((item) => `<option value="${item}" ${String(item) === overlay ? "selected" : ""}>Overlay ${item}</option>`).join("")}</select></label>
|
||||
<label class="hockey-rules-switch compact"><input name="team_state_${row.key}_enabled" type="checkbox" ${value.enabled !== false ? "checked" : ""}><i></i><span><strong>Использовать</strong></span></label>
|
||||
</div>`;
|
||||
}).join("");
|
||||
|
||||
Reference in New Issue
Block a user