Corregge chiusura diretta YouTube e stop sessione senza broadcast.
transition_live_broadcast richiede status, id e part; evita 500 in chiusura diretta Match Live TV quando non c'è broadcast YouTube. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -8,7 +8,7 @@ module Sessions
|
||||
cancel_timeout_job
|
||||
Sessions::RegiaAccess.revoke!(@session)
|
||||
@session.end_stream!
|
||||
Youtube::BroadcastService.new(@session.match.team).complete_broadcast!(@session.youtube_broadcast_id)
|
||||
complete_youtube_broadcast! if @session.youtube_broadcast_id.present?
|
||||
Recordings::IndexSession.new(@session).call
|
||||
Mediamtx::Client.new.delete_path(@session)
|
||||
log_event("ended")
|
||||
@@ -27,5 +27,11 @@ module Sessions
|
||||
def log_event(type)
|
||||
@session.stream_events.create!(event_type: type, occurred_at: Time.current, metadata: {})
|
||||
end
|
||||
|
||||
def complete_youtube_broadcast!
|
||||
Youtube::BroadcastService.new(@session.match.team).complete_broadcast!(@session.youtube_broadcast_id)
|
||||
rescue Youtube::BroadcastService::Error => e
|
||||
Rails.logger.warn("[Sessions::Stop] YouTube complete: #{e.message}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -50,10 +50,11 @@ module Youtube
|
||||
end
|
||||
|
||||
def complete_broadcast!(broadcast_id)
|
||||
return if broadcast_id.blank?
|
||||
return if @credential.blank? || missing_oauth_config?
|
||||
|
||||
client = authorized_client
|
||||
client.transition_live_broadcast(broadcast_id, "complete")
|
||||
client.transition_live_broadcast("complete", broadcast_id, "id,status")
|
||||
rescue Google::Apis::Error
|
||||
nil
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user