поправлена отдача данных в vMix с помощью agent.exe
This commit is contained in:
@@ -1036,7 +1036,12 @@ function updatePeriodButtons() {
|
||||
}
|
||||
|
||||
function addPlayerEvent(side, type, playerId, playerName) {
|
||||
pushEvent(side, type, playerName, `Игрок #${playerId ?? ""}`, playerId);
|
||||
const row =
|
||||
findLineupRowByPlayerId(side, "starting", playerId) ||
|
||||
findLineupRowByPlayerId(side, "bench", playerId);
|
||||
|
||||
const displayName = getRowDisplayName(row) || String(playerName || "").trim();
|
||||
pushEvent(side, type, displayName, `Игрок #${playerId ?? ""}`, playerId);
|
||||
}
|
||||
|
||||
|
||||
@@ -1173,7 +1178,7 @@ function getPlayersForSide(side) {
|
||||
.filter((row) => row.dataset.temporary !== "1")
|
||||
.map((row) => ({
|
||||
player_id: row.dataset.playerId || "",
|
||||
player_name: row.dataset.playerName || "",
|
||||
player_name: getRowDisplayName(row),
|
||||
player_number: row.dataset.playerNumber || ""
|
||||
}))
|
||||
.filter((p) => p.player_name.trim() !== "");
|
||||
@@ -1293,19 +1298,29 @@ function getScoreSum() {
|
||||
}
|
||||
|
||||
function getSubOutName(payload) {
|
||||
const explicit = String(payload.player_name_out || "").trim();
|
||||
if (explicit) {
|
||||
return explicit;
|
||||
}
|
||||
|
||||
const raw = String(payload.player_name || "");
|
||||
if (raw.includes("→")) {
|
||||
return raw.split("→")[0].trim();
|
||||
}
|
||||
return String(payload.player_name_out || "").trim();
|
||||
return "";
|
||||
}
|
||||
|
||||
function getSubInName(payload) {
|
||||
const explicit = String(payload.player_name_in || "").trim();
|
||||
if (explicit) {
|
||||
return explicit;
|
||||
}
|
||||
|
||||
const raw = String(payload.player_name || "");
|
||||
if (raw.includes("→")) {
|
||||
return raw.split("→")[1].trim();
|
||||
}
|
||||
return String(payload.player_name_in || "").trim();
|
||||
return "";
|
||||
}
|
||||
|
||||
function escapeVmixValue(value) {
|
||||
@@ -1425,8 +1440,12 @@ function getPlayerNumberByEvent(event) {
|
||||
};
|
||||
}
|
||||
|
||||
const row = findLineupRowByPlayerId(event.side, "starting", event.player_id)
|
||||
|| findLineupRowByPlayerId(event.side, "bench", event.player_id);
|
||||
const playerSide = event.type === "own_goal"
|
||||
? getOppositeSide(event.side)
|
||||
: event.side;
|
||||
|
||||
const row = findLineupRowByPlayerId(playerSide, "starting", event.player_id)
|
||||
|| findLineupRowByPlayerId(playerSide, "bench", event.player_id);
|
||||
|
||||
return row?.dataset.playerNumber || "";
|
||||
}
|
||||
@@ -1602,6 +1621,10 @@ function renderEvents() {
|
||||
];
|
||||
|
||||
const eventNumberData = getPlayerNumberByEvent(event);
|
||||
const eventNameData = getPlayerNamesByEvent(event);
|
||||
const vmixPlayerName = event.type === "sub"
|
||||
? `${eventNameData.out || ""} → ${eventNameData.in || ""}`.trim()
|
||||
: getVmixPlayerDisplayName(event);
|
||||
|
||||
const isClickable = clickableTypes.includes(event.type);
|
||||
|
||||
@@ -1612,10 +1635,12 @@ function renderEvents() {
|
||||
side: event.side ?? "",
|
||||
minute: event.minute ?? "",
|
||||
seconds: event.seconds ?? 0,
|
||||
player_name: event.player_name ?? "",
|
||||
player_name: vmixPlayerName,
|
||||
player_id: event.player_id ?? null,
|
||||
player_out_id: event.player_out_id ?? null,
|
||||
player_in_id: event.player_in_id ?? null,
|
||||
player_name_out: eventNameData.out ?? "",
|
||||
player_name_in: eventNameData.in ?? "",
|
||||
player_number: typeof eventNumberData === "string" ? eventNumberData : "",
|
||||
player_out_number: typeof eventNumberData === "object" ? (eventNumberData.out ?? "") : "",
|
||||
player_in_number: typeof eventNumberData === "object" ? (eventNumberData.in ?? "") : "",
|
||||
@@ -1665,9 +1690,13 @@ function getVmixPlayerDisplayName(event) {
|
||||
return String(event?.player_name || "").trim();
|
||||
}
|
||||
|
||||
const playerSide = event.type === "own_goal"
|
||||
? getOppositeSide(event.side)
|
||||
: event.side;
|
||||
|
||||
const row =
|
||||
findLineupRowByPlayerId(event.side, "starting", event.player_id) ||
|
||||
findLineupRowByPlayerId(event.side, "bench", event.player_id);
|
||||
findLineupRowByPlayerId(playerSide, "starting", event.player_id) ||
|
||||
findLineupRowByPlayerId(playerSide, "bench", event.player_id);
|
||||
|
||||
if (!row) {
|
||||
return String(event.player_name || "").trim();
|
||||
@@ -2324,9 +2353,13 @@ function getDisplayNameForEvent(event) {
|
||||
}
|
||||
|
||||
if (event.player_id) {
|
||||
const playerSide = event.type === "own_goal"
|
||||
? getOppositeSide(event.side)
|
||||
: event.side;
|
||||
|
||||
const row =
|
||||
findLineupRowByPlayerId(event.side, "starting", event.player_id) ||
|
||||
findLineupRowByPlayerId(event.side, "bench", event.player_id);
|
||||
findLineupRowByPlayerId(playerSide, "starting", event.player_id) ||
|
||||
findLineupRowByPlayerId(playerSide, "bench", event.player_id);
|
||||
|
||||
if (row) {
|
||||
return getRowDisplayName(row);
|
||||
@@ -2446,6 +2479,7 @@ function renderLineupRow(row) {
|
||||
class="player-link-btn vmix-person-trigger"
|
||||
data-vmix-person-type="player"
|
||||
data-side="${escapeHtml(side)}"
|
||||
data-name="${escapeHtml(displayName)}"
|
||||
data-first-name="${escapeHtml(player.firstName || "")}"
|
||||
data-last-name="${escapeHtml(player.lastName || "")}"
|
||||
data-role="${escapeHtml(player.position || "")}"
|
||||
|
||||
Reference in New Issue
Block a user