[Fix] Hide video quality if not available

This commit is contained in:
PrestonN 2018-09-21 15:56:59 -04:00
parent 0ad8213f78
commit 74feb75d8a
5 changed files with 19 additions and 16 deletions

View File

@ -34,7 +34,9 @@ function playVideo(videoId) {
playerView.playerSeen = true;
playerView.videoId = videoId;
playerView.video480p = undefined;
playerView.valid480p = true;
playerView.video720p = undefined;
playerView.valid720p = true;
playerView.embededHtml = "<iframe width='560' height='315' src='https://www.youtube-nocookie.com/embed/" + videoId + "?rel=0' frameborder='0' allow='autoplay; encrypted-media' allowfullscreen></iframe>";
let videoHtml = '';
@ -79,7 +81,7 @@ function playVideo(videoId) {
playerView.videoThumbnail = data.videoThumbnails[0].url;
// Format the date to a more readable format.
let dateString = new Date(data.published);
let dateString = new Date(data.published * 1000);
dateString.setDate(dateString.getDate() + 1);
playerView.publishedDate = dateFormat(dateString, "mmm dS, yyyy");

View File

@ -84,6 +84,7 @@ function loadSubscriptions() {
} else {
showToast('Refreshing Subscription List. Please wait...');
checkSubscriptions = false;
progressView.seen = true;
}
let videoList = [];

View File

@ -409,7 +409,9 @@ let playerView = new Vue({
subtitleHtml: '',
currentQuality: '',
video480p: '',
valid480p: false,
video720p: '',
valid720p: false,
embededHtml: '',
currentSpeed: 1,
videoTitle: '',

View File

@ -459,15 +459,13 @@ function checkVideoUrls(video480p, video720p) {
switch (status.status) {
case 404:
showToast('Found valid URL for 480p, but returned a 404. Video type might be available in the future.');
$(document).off('click', '#quality480p');
$(document).on('click', '#quality480p', (event) => {
changeQuality('');
});
playerView.valid480p = false;
buttonEmbed.click();
return;
break;
case 403:
showToast('This video is unavailable in your country.');
playerView.valid480p = false;
$(document).off('click', '#quality480p');
$(document).on('click', '#quality480p', (event) => {
changeQuality('');
@ -483,6 +481,9 @@ function checkVideoUrls(video480p, video720p) {
}
});
}
else{
playerView.valid480p = false;
}
if (typeof (video720p) !== 'undefined') {
let get720pUrl = fetch(video720p);
@ -490,20 +491,14 @@ function checkVideoUrls(video480p, video720p) {
switch (status.status) {
case 404:
showToast('Found valid URL for 720p, but returned a 404. Video type might be available in the future.');
$(document).off('click', '#quality720p');
$(document).on('click', '#quality720p', (event) => {
changeQuality('');
});
playerView.valid720p = false;
if (typeof (valid480) !== 'undefined') {
changeQuality(video480p, '480p');
}
break;
case 403:
showToast('This video is unavailable in your country.');
$(document).off('click', '#quality720p');
$(document).on('click', '#quality720p', (event) => {
changeQuality('');
});
playerView.valid720p = false;
return;
break;
default:
@ -512,4 +507,7 @@ function checkVideoUrls(video480p, video720p) {
}
});
}
else{
playerView.valid720p = false;
}
}

View File

@ -1,6 +1,6 @@
<div v-if='seen'>
<div v-if='playerSeen'>
<video class="videoPlayer" id='videoPlayer' type="application/x-mpegURL" onmousemove="hideMouseTimeout()" onmouseleave="removeMouseTimeout()" onloadstart='checkVideoSettings()' onvolumechange='updateVolume()' controls="" :src='videoUrl' :poster="videoThumbnail" v-html="subtitleHtml">
<video class="videoPlayer" id='videoPlayer' type="application/x-mpegURL" object-fit='cover' onmousemove="hideMouseTimeout()" onmouseleave="removeMouseTimeout()" onloadstart='checkVideoSettings()' onvolumechange='updateVolume()' controls="" :src='videoUrl' :poster="videoThumbnail" v-html="subtitleHtml">
</video>
</div>
<div v-else>
@ -14,8 +14,8 @@
<span id='currentQuality'>{{currentQuality}}</span> <i class="fas fa-angle-down"></i>
<div class='qualityTypes'>
<ul>
<li id='quality480p' v-on:click='quality(video480p, "480p")'>480p</li>
<li id='quality720p' v-on:click='quality(video720p, "720p")'>720p</li>
<li v-if='valid480p' id='quality480p' v-on:click='quality(video480p, "480p")'>480p</li>
<li v-if='valid720p' id='quality720p' v-on:click='quality(video720p, "720p")'>720p</li>
<li id='qualityEmbed' v-on:click='embededPlayer()'>EMBED</li>
</ul>
</div>