plyr: use strict and fix undefined quality variable

This commit is contained in:
Jesús 2021-09-01 12:42:44 -05:00
parent 98d9b35765
commit 7143e1b321
No known key found for this signature in database
GPG Key ID: F6EE7BC59A315766

View File

@ -1,38 +1,40 @@
let captionsActive; (function main() {
'use strict';
switch(true) { let captionsActive;
case data.settings.subtitles_mode == 2:
switch(true) {
case data.settings.subtitles_mode == 2:
captionsActive = true; captionsActive = true;
break; break;
case data.settings.subtitles_mode == 1 && data.has_manual_captions: case data.settings.subtitles_mode == 1 && data.has_manual_captions:
captionsActive = true; captionsActive = true;
break; break;
default: default:
captionsActive = false; captionsActive = false;
} }
var qualityOptions = []; let qualityOptions = [];
var qualityDefault; let qualityDefault;
for (var src of data['uni_sources']) { for (var src of data['uni_sources']) {
qualityOptions.push(src.quality_string) qualityOptions.push(src.quality_string)
} }
for (var src of data['pair_sources']) { for (var src of data['pair_sources']) {
qualityOptions.push(src[0].quality_string) qualityOptions.push(src[0].quality_string)
} }
if (data['using_pair_sources']) if (data['using_pair_sources'])
qualityDefault = data['pair_sources'][data['pair_idx']][0].quality_string; qualityDefault = data['pair_sources'][data['pair_idx']][0].quality_string;
else if (data['uni_sources'].length != 0) else if (data['uni_sources'].length != 0)
qualityDefault = data['uni_sources'][data['uni_idx']].quality_string; qualityDefault = data['uni_sources'][data['uni_idx']].quality_string;
else else
qualityDefault = 'None'; qualityDefault = 'None';
// Fix plyr refusing to work with qualities that are strings
Object.defineProperty(Plyr.prototype, 'quality', {
// Fix plyr refusing to work with qualities that are strings
Object.defineProperty(Plyr.prototype, 'quality', {
set: function(input) { set: function(input) {
const config = this.config.quality; const config = this.config.quality;
const options = this.options.quality; const options = this.options.quality;
let quality;
if (!options.length) { if (!options.length) {
return; return;
@ -67,9 +69,9 @@ Object.defineProperty(Plyr.prototype, 'quality', {
}); });
} }
} }
}); });
const player = new Plyr(document.getElementById('js-video-player'), { const player = new Plyr(document.getElementById('js-video-player'), {
disableContextMenu: false, disableContextMenu: false,
captions: { captions: {
active: captionsActive, active: captionsActive,
@ -115,11 +117,12 @@ const player = new Plyr(document.getElementById('js-video-player'), {
}, },
}, },
settings: ['captions', 'quality', 'speed', 'loop'], settings: ['captions', 'quality', 'speed', 'loop'],
}); });
// Hide the external quality selector // Hide the external quality selector
window.addEventListener('DOMContentLoaded', function(){ window.addEventListener('DOMContentLoaded', function(){
var qs = document.getElementById('quality-select'); const qs = document.getElementById('quality-select');
if (qs) if (qs)
qs.hidden = true; qs.hidden = true;
}); });
}());