owncast/webroot/js/status.js

46 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-06-19 05:46:00 +02:00
var playerRestartTimer;
2020-06-18 01:35:47 +02:00
2020-07-05 10:08:22 +02:00
function handleStatus(status) {
clearTimeout(playerRestartTimer);
if (!app.isOnline && status.online) {
// The stream was offline, but now it's online. Force start of playback after an arbitrary delay to make sure the stream has actual data ready to go.
playerRestartTimer = setTimeout(restartPlayer, 3000);
}
2020-06-19 05:46:00 +02:00
2020-07-05 10:08:22 +02:00
app.streamStatus = status.online ? MESSAGE_ONLINE : MESSAGE_OFFLINE;
2020-06-18 01:35:47 +02:00
2020-07-05 10:08:22 +02:00
app.viewerCount = status.viewerCount;
app.sessionMaxViewerCount = status.sessionMaxViewerCount;
app.overallMaxViewerCount = status.overallMaxViewerCount;
app.isOnline = status.online;
setVideoPoster(app.isOnline);
2020-06-18 01:35:47 +02:00
2020-07-05 10:08:22 +02:00
}
2020-07-05 10:08:22 +02:00
function handleOffline() {
const player = videojs(VIDEO_ID);
player.poster(POSTER_DEFAULT);
app.streamStatus = MESSAGE_OFFLINE;
app.viewerCount = 0;
}
2020-06-18 01:35:47 +02:00
2020-07-05 10:08:22 +02:00
function getStatus() {
const options = {
// mode: 'no-cors',
2020-06-18 01:35:47 +02:00
}
2020-07-05 10:08:22 +02:00
fetch(URL_STATUS, options)
.then(response => {
if (!response.ok) {
throw new Error(`Network response was not ok ${response.ok}`);
}
return response.json();
})
.then(json => {
handleStatus(json);
})
.catch(error => {
handleOffline();
});
}