merge frontend-improvments #18

Merged
knotteye merged 2 commits from frontend-improvments into develop 2021-01-08 16:18:05 -06:00
2 changed files with 52 additions and 41 deletions

View File

@ -167,7 +167,7 @@ function handleLoad() {
function modifyLinks() { function modifyLinks() {
for (var ls = document.links, numLinks = ls.length, i=0; i<numLinks; i++){ for (var ls = document.links, numLinks = ls.length, i=0; i<numLinks; i++){
if(ls[i].href.indexOf(location.protocol+'//'+location.host) !== -1) { if(ls[i].href.indexOf(location.protocol+'//'+location.host) !== -1 && ls[i].href.match(new RegExp(/\/\w+\.\w+$/)) === null) {
//should be a regular link //should be a regular link
ls[i].setAttribute('onclick', 'return internalLink(\"'+ls[i].href.substring((location.protocol+'//'+location.host).length)+'\")'); ls[i].setAttribute('onclick', 'return internalLink(\"'+ls[i].href.substring((location.protocol+'//'+location.host).length)+'\")');
} }
@ -190,27 +190,32 @@ async function initPlayer(usr) {
shaka.polyfill.installAll(); shaka.polyfill.installAll();
shakaPolyFilled = true; shakaPolyFilled = true;
} }
// Create a Player instance. var live = JSON.parse(await makeRequest("GET", "/api/"+usr+"/config")).live;
const video = document.getElementById('video'); if(live){
const player = new shaka.Player(video); // Create a Player instance.
// Listen for error events. const video = document.getElementById('video');
player.addEventListener('error', onErrorEvent); const player = new shaka.Player(video);
// Listen for error events.
player.addEventListener('error', onErrorEvent);
video.addEventListener('play', () => { video.addEventListener('play', () => {
document.getElementById('playbtn').style.visibility = 'hidden'; document.getElementById('playbtn').style.visibility = 'hidden';
}); });
video.addEventListener('pause', () => { video.addEventListener('pause', () => {
document.getElementById('playbtn').style.visibility = 'visible'; document.getElementById('playbtn').style.visibility = 'visible';
}); });
// Try to load a manifest. // Try to load a manifest.
// This is an asynchronous process. // This is an asynchronous process.
try { try {
await player.load(manifestUri); await player.load(manifestUri);
// This runs if the asynchronous load is successful. // This runs if the asynchronous load is successful.
console.log('The video has now been loaded!'); console.log('The video has now been loaded!');
} catch (e) { } catch (e) {
// onError is executed if the asynchronous load fails. // onError is executed if the asynchronous load fails.
onError(e); onError(e);
}
} else {
setTimeout(initPlayer, 5000, usr);
} }
} }

View File

@ -5,31 +5,37 @@
shakaPolyFilled = false; shakaPolyFilled = false;
var manifestUri = document.location.protocol+'//'+document.location.host+'/live/{{ username }}/index.mpd'; var manifestUri = document.location.protocol+'//'+document.location.host+'/live/{{ username }}/index.mpd';
async function initPlayer() { async function initPlayer() {
console.log('Trying to initialize player.');
if(!shakaPolyFilled){ if(!shakaPolyFilled){
shaka.polyfill.installAll(); shaka.polyfill.installAll();
shakaPolyFilled = true; shakaPolyFilled = true;
} }
// Create a Player instance. var live = JSON.parse(await makeRequest("GET", "/api/{{ username }}/config")).live;
const video = document.getElementById('video'); if(live){
const player = new shaka.Player(video); // Create a Player instance.
// Listen for error events. const video = document.getElementById('video');
player.addEventListener('error', onErrorEvent); const player = new shaka.Player(video);
// Listen for error events.
player.addEventListener('error', onErrorEvent);
video.addEventListener('play', () => { video.addEventListener('play', () => {
document.getElementById('playbtn').style.visibility = 'hidden'; document.getElementById('playbtn').style.visibility = 'hidden';
}); });
video.addEventListener('pause', () => { video.addEventListener('pause', () => {
document.getElementById('playbtn').style.visibility = 'visible'; document.getElementById('playbtn').style.visibility = 'visible';
}); });
// Try to load a manifest. // Try to load a manifest.
// This is an asynchronous process. // This is an asynchronous process.
try { try {
await player.load(manifestUri); await player.load(manifestUri);
// This runs if the asynchronous load is successful. // This runs if the asynchronous load is successful.
console.log('The video has now been loaded!'); console.log('The video has now been loaded!');
} catch (e) { } catch (e) {
// onError is executed if the asynchronous load fails. // onError is executed if the asynchronous load fails.
onError(e); onError(e);
}
} else {
setTimeout(initPlayer, 5000);
} }
} }