Fix regia basket e stabilità diretta iOS.

La regia remota non va più in 500 su basket/timed; iOS gestisce chiusura set, riconnessione RTMP e avanzamento quarti in modo affidabile.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Emiliano Frascaro
2026-06-20 12:30:34 +02:00
parent 731b43ea88
commit 270bf680a4
16 changed files with 665 additions and 441 deletions

View File

@@ -17,7 +17,10 @@ module Public
@score = @session.score_state || Scoring::Engine.ensure_score_for(@session)
@rules = Scoring::Rules.from_match(@match)
@stream_closed = @session.terminal?
@on_air = !@stream_closed && mediamtx_stream_playable?(@session)
@on_air = !@stream_closed && (
mediamtx_stream_playable?(@session) ||
@session.status.in?(%w[connecting live reconnecting paused])
)
@regia_share_url = request.original_url
@regia_share_title = "Regia — #{@team.name} vs #{@match.opponent_name}"
@live_share_url = @session.share_url
@@ -70,17 +73,18 @@ module Public
score = @session.score_state
closed = @session.terminal?
playable = !closed && mediamtx_stream_playable?(@session)
publisher_online = !closed && mediamtx_publisher_online?(@session)
{
status: @session.status,
paused: @session.paused?,
stream_closed: closed,
live: !closed && (@session.live? || @session.paused? || mediamtx_publisher_online?(@session)),
on_air: playable,
publisher_online: !closed && mediamtx_publisher_online?(@session),
live: !closed && (@session.live? || @session.paused? || publisher_online),
on_air: playable || (!closed && @session.status.in?(%w[connecting live reconnecting paused])),
publisher_online: publisher_online,
ended_at: @session.ended_at,
home_name: @session.match.team.name,
away_name: @session.match.opponent_name,
points_target: Scoring::Rules.from_match(@session.match).points_target(score&.current_set || 1),
points_target: Scoring::Rules.points_target_for_match(@session.match, current_set: score&.current_set || 1),
score: score&.as_cable_payload
}
end