Added improved settings panel.

This commit is contained in:
rainbow napkin 2025-09-06 10:34:06 -04:00
parent 306f22aa93
commit 132fdabb29
105 changed files with 3447 additions and 252 deletions

View file

@ -875,7 +875,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2602,7 +2602,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -377,7 +377,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="channel.js.html">channel.js</a>, <a href="channel.js.html#line226">line 226</a>
<a href="channel.js.html">channel.js</a>, <a href="channel.js.html#line286">line 286</a>
</li></ul></dd>
@ -1254,7 +1254,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -194,6 +194,9 @@ class channel{
* @param {*} value - Value to set setting to
*/
processConfig(key, value){
//Unfortunately we can't scope constants to switch-cases so this is the best we got if we wanna re-use the name
let nowPlaying;
//Switch/case by config key
switch(key){
case 'ytPlayerType':
@ -233,18 +236,75 @@ class channel{
return;
}
//Get current video
const nowPlaying = this.player.mediaHandler.nowPlaying;
nowPlaying = this.player.mediaHandler.nowPlaying;
//If we're playing a youtube video
if(nowPlaying != null &amp;&amp; nowPlaying.type == 'yt'){
//Restart the video
this.player.start({media: nowPlaying});
this.player.hardReload();
}
//Stop while we're ahead
return;
case 'IACDN':
//If the player or mediaHandler isn't loaded
if(this.player == null || this.player.mediaHandler == null){
//We're fuggin done here
return;
}
//Get current video
nowPlaying = this.player.mediaHandler.nowPlaying;
//If we're playing a video from Internet Archive
if(nowPlaying != null &amp;&amp; nowPlaying.type == 'ia'){
//Hard reload the media, forcing media handler re-creation
this.player.hardReload();
}
return;
case 'syncTolerance':
//If the player isn't loaded
if(this.player == null){
//We're fuckin' done here
return;
}
//Set syncronization tolerance
this.player.syncTolerance = value;
return;
case 'liveSyncTolerance':
//If the player isn't loaded
if(this.player == null){
//We're fuckin' done here
return;
}
//Set syncronization tolerance
this.player.streamSyncTolerance = value;
return;
case 'syncDelta':
//If the player isn't loaded
if(this.player == null){
//We're fuckin' done here
return;
}
//Set syncronization delta
this.player.syncDelta = value;
return;
case 'chatWidthMin':
//If the chat isn't loaded
if(this.chatBox == null){
//We're fuckin' done here
return;
}
//Set Chat Box Width minimum while Locked to Aspect-Ratio
this.chatBox.chatWidthMinimum = value / 100;
return;
}
}
@ -252,7 +312,12 @@ class channel{
* Default channel config
*/
static defaultConfig = new Map([
["ytPlayerType","raw"]
["ytPlayerType","raw"],
["IACDN",""],
["syncTolerance",0.4],
["liveSyncTolerance", 2],
["syncDelta", 6],
["chatWidthMin", 20]
]);
}
@ -289,7 +354,7 @@ const client = new channel();</code></pre>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -66,6 +66,11 @@ class chatBox{
*/
this.autoScroll = true;
/**
* Chat-Width Minimum while sized to media Aspect-Ratio
*/
this.chatWidthMinimum = localStorage.getItem('chatWidthMin') / 100;
/**
* Chat Buffer Scroll Top on last scroll
*/
@ -528,10 +533,10 @@ L /**
var targetVidWidth = this.client.player.getRatio() * this.chatPanel.getBoundingClientRect().height;
const targetChatWidth = window.innerWidth - targetVidWidth;
//This should be changeable in settings later on, for now it defaults to 20%
const limit = window.innerWidth * .2;
const limit = window.innerWidth * this.chatWidthMinimum;
//Set width to target or 20vh depending on whether or not we've hit the width limit
this.chatPanel.style.flexBasis = targetChatWidth > limit ? `${targetChatWidth}px` : '20vh';
//Set width to target or 20vw depending on whether or not we've hit the width limit
this.chatPanel.style.flexBasis = targetChatWidth > limit ? `${targetChatWidth}px` : `${this.chatWidthMinimum * 100}vw`;
//Fix busted layout
var pageBreak = document.body.scrollWidth - document.body.getBoundingClientRect().width;
@ -662,7 +667,7 @@ L /**
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -240,7 +240,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line115">line 115</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line120">line 120</a>
</li></ul></dd>
@ -365,7 +365,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line131">line 131</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line136">line 136</a>
</li></ul></dd>
@ -489,7 +489,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line105">line 105</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line110">line 110</a>
</li></ul></dd>
@ -551,7 +551,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line100">line 100</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line105">line 105</a>
</li></ul></dd>
@ -613,7 +613,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line90">line 90</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line95">line 95</a>
</li></ul></dd>
@ -675,7 +675,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line75">line 75</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line80">line 80</a>
</li></ul></dd>
@ -737,7 +737,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line69">line 69</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line74">line 74</a>
</li></ul></dd>
@ -799,7 +799,69 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line95">line 95</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line100">line 100</a>
</li></ul></dd>
</dl>
<h4 class="name" id="chatWidthMinimum"><span class="type-signature"></span>chatWidthMinimum<span class="type-signature"></span></h4>
<div class="description">
Chat-Width Minimum while sized to media Aspect-Ratio
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line44">line 44</a>
</li></ul></dd>
@ -861,7 +923,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line59">line 59</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line64">line 64</a>
</li></ul></dd>
@ -985,7 +1047,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line64">line 64</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line69">line 69</a>
</li></ul></dd>
@ -1047,7 +1109,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line120">line 120</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line125">line 125</a>
</li></ul></dd>
@ -1109,7 +1171,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line85">line 85</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line90">line 90</a>
</li></ul></dd>
@ -1171,7 +1233,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line136">line 136</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line141">line 141</a>
</li></ul></dd>
@ -1233,7 +1295,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line80">line 80</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line85">line 85</a>
</li></ul></dd>
@ -1295,7 +1357,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line49">line 49</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line54">line 54</a>
</li></ul></dd>
@ -1357,7 +1419,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line44">line 44</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line49">line 49</a>
</li></ul></dd>
@ -1419,7 +1481,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line54">line 54</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line59">line 59</a>
</li></ul></dd>
@ -1481,7 +1543,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line125">line 125</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line130">line 130</a>
</li></ul></dd>
@ -1543,7 +1605,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line110">line 110</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line115">line 115</a>
</li></ul></dd>
@ -1605,7 +1667,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line141">line 141</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line146">line 146</a>
</li></ul></dd>
@ -1734,7 +1796,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line262">line 262</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line267">line 267</a>
</li></ul></dd>
@ -1871,7 +1933,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line336">line 336</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line341">line 341</a>
</li></ul></dd>
@ -2030,7 +2092,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line191">line 191</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line196">line 196</a>
</li></ul></dd>
@ -2118,7 +2180,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line182">line 182</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line187">line 187</a>
</li></ul></dd>
@ -2255,7 +2317,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line293">line 293</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line298">line 298</a>
</li></ul></dd>
@ -2392,7 +2454,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line210">line 210</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line215">line 215</a>
</li></ul></dd>
@ -2480,7 +2542,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line614">line 614</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line619">line 619</a>
</li></ul></dd>
@ -2617,7 +2679,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line388">line 388</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line393">line 393</a>
</li></ul></dd>
@ -2754,7 +2816,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line539">line 539</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line544">line 544</a>
</li></ul></dd>
@ -2891,7 +2953,7 @@ Seems weird to stick this in here, but the split is dictated by chat width :P
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line453">line 453</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line458">line 458</a>
</li></ul></dd>
@ -3029,7 +3091,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line479">line 479</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line484">line 484</a>
</li></ul></dd>
@ -3166,7 +3228,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line567">line 567</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line572">line 572</a>
</li></ul></dd>
@ -3303,7 +3365,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line279">line 279</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line284">line 284</a>
</li></ul></dd>
@ -3440,7 +3502,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line407">line 407</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line412">line 412</a>
</li></ul></dd>
@ -3577,7 +3639,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line397">line 397</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line402">line 402</a>
</li></ul></dd>
@ -3665,7 +3727,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line152">line 152</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line157">line 157</a>
</li></ul></dd>
@ -3753,7 +3815,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line498">line 498</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line503">line 503</a>
</li></ul></dd>
@ -3890,7 +3952,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line308">line 308</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line313">line 313</a>
</li></ul></dd>
@ -4027,7 +4089,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line522">line 522</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line527">line 527</a>
</li></ul></dd>
@ -4164,7 +4226,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line271">line 271</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line276">line 276</a>
</li></ul></dd>
@ -4301,7 +4363,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line466">line 466</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line471">line 471</a>
</li></ul></dd>
@ -4461,7 +4523,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line426">line 426</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line431">line 431</a>
</li></ul></dd>
@ -4598,7 +4660,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line417">line 417</a>
<a href="chat.js.html">chat.js</a>, <a href="chat.js.html#line422">line 422</a>
</li></ul></dd>
@ -4650,7 +4712,7 @@ Also prevents horizontal scroll-bars from chat/window resizing
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1794,7 +1794,7 @@ Internal command used by several text filters to prevent code re-writes
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -671,7 +671,7 @@ class chatPostprocessor{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -790,7 +790,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1912,7 +1912,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -371,7 +371,7 @@ class commandProcessor{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -421,7 +421,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -515,7 +515,7 @@ class poppedPanel{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -960,7 +960,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2249,7 +2249,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -156,7 +156,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="channel.js.html">channel.js</a>, <a href="channel.js.html#line234">line 234</a>
<a href="channel.js.html">channel.js</a>, <a href="channel.js.html#line299">line 299</a>
</li></ul></dd>
@ -208,7 +208,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2919,7 +2919,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2896,7 +2896,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -87,7 +87,7 @@ This new codebase intends to solve the following issues with the current CyTube
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2701,7 +2701,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -787,7 +787,7 @@ class hlsLiveStreamHandler extends hlsBase{
super.onBuffer(event);
//If we're synced by the end of buffering
//If we're supposed to be synced by the end of buffering
if(this.player.syncLock){
//Throw flag to manually sync since this works entirely differently from literally every other fucking media source
this.reSync = true;
@ -835,7 +835,7 @@ class hlsLiveStreamHandler extends hlsBase{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -705,7 +705,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2873,7 +2873,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -909,7 +909,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -353,7 +353,7 @@ class emotePanel extends panelObj{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -983,7 +983,7 @@ class renamePopup{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1679,7 +1679,7 @@ class clearPopup{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -60,8 +60,36 @@ class settingsPanel extends panelObj{
}
docSwitch(){
/**
* Youtube Source Selector
*/
this.youtubeSource = this.panelDocument.querySelector("#settings-panel-youtube-source select");
/**
* Internet Archive CDN Server Input
*/
this.iaCDN = this.panelDocument.querySelector("#settings-panel-ia-server input");
/**
* Syncronization Tolerance Input
*/
this.syncTolerance = this.panelDocument.querySelector("#settings-panel-sync-tolerance input");
/**
* Livestream Syncronization Tolerance Input
*/
this.liveSyncTolerance = this.panelDocument.querySelector("#settings-panel-live-sync-tolerance input");
/**
* Syncronization Tolerance Delta
*/
this.syncDelta = this.panelDocument.querySelector("#settings-panel-sync-delta input");
/**
* Chat Width Minimum while Size-Locked to Media Aspect Ratio
*/
this.chatWidthMinimum = this.panelDocument.querySelector("#settings-panel-min-chat-width input");
this.renderSettings();
this.setupInput();
}
@ -71,6 +99,11 @@ class settingsPanel extends panelObj{
*/
setupInput(){
this.youtubeSource.addEventListener('change', this.updateYoutubeSource.bind(this));
this.iaCDN.addEventListener('keydown', this.updateIACDN.bind(this));
this.syncTolerance.addEventListener('change', this.updateSyncTolerance.bind(this));
this.liveSyncTolerance.addEventListener('change', this.updateLiveSyncTolerance.bind(this));
this.syncDelta.addEventListener('change', this.updateSyncDelta.bind(this));
this.chatWidthMinimum.addEventListener('change', this.updateChatWidthMinimum.bind(this));
}
/**
@ -78,6 +111,11 @@ class settingsPanel extends panelObj{
*/
renderSettings(){
this.youtubeSource.value = localStorage.getItem("ytPlayerType");
this.iaCDN.value = localStorage.getItem("IACDN");
this.syncTolerance.value = localStorage.getItem("syncTolerance");
this.liveSyncTolerance.value = localStorage.getItem("liveSyncTolerance");
this.syncDelta.value = localStorage.getItem("syncDelta");
this.chatWidthMinimum.value = localStorage.getItem("chatWidthMin");
}
/**
@ -87,6 +125,95 @@ class settingsPanel extends panelObj{
localStorage.setItem("ytPlayerType", this.youtubeSource.value);
client.processConfig("ytPlayerType", this.youtubeSource.value);
}
/**
* Event handler for Internet Archive CDN Server input
* @param {Event} event - Event handed down by event listener
*/
updateIACDN(event){
//If we hit enter
if(event.key == "Enter"){
//If we have an invalid server string
if(!(this.iaCDN.value.match(/^ia[0-9]{6}\...$/g) || this.iaCDN.value == "")){
//reset back to what was set before
this.iaCDN.value = localStorage.getItem('IACDN');
//BAIL!
return;
}
localStorage.setItem("IACDN", this.iaCDN.value);
client.processConfig("IACDN", this.iaCDN.value);
}
}
/**
* Handles Sync Tolerance Changes
*/
updateSyncTolerance(){
//If sync tolerance was set to a negative number
if(this.syncTolerance.value &lt; 0){
//Reset setting back to stored value
this.syncTolerance.value = localStorage.getItem('syncTolerance');
//BAIL!
return;
}
localStorage.setItem("syncTolerance", this.syncTolerance.value);
client.processConfig("syncTolerance", this.syncTolerance.value);
}
/**
* Handles Live Sync Tolerance Changes
*/
updateLiveSyncTolerance(){
//If sync tolerance was set to a negative number
if(this.liveSyncTolerance.value &lt; 0){
//Reset setting back to stored value
this.liveSyncTolerance.value = localStorage.getItem('liveSyncTolerance');
//BAIL!
return;
}
localStorage.setItem("liveSyncTolerance", this.liveSyncTolerance.value);
client.processConfig("liveSyncTolerance", this.liveSyncTolerance.value);
}
/**
* Handles Sync Delta Changes
*/
updateSyncDelta(){
//If sync tolerance was set to a negative number
if(this.syncDelta.value &lt; 0){
//Reset setting back to stored value
this.syncDelta.value = localStorage.getItem('syncDelta');
//BAIL!
return;
}
localStorage.setItem("syncDelta", this.syncDelta.value);
client.processConfig("syncDelta", this.syncDelta.value);
}
/**
* Handles Chat Width minimum Changes
*/
updateChatWidthMinimum(){
//If sync tolerance was set to a negative number
if(this.chatWidthMinimum.value &lt; 0 || this.chatWidthMinimum > 100){
//Reset setting back to stored value
this.syncDelta.value = localStorage.getItem('chatWidthMin');
//BAIL!
return;
}
localStorage.setItem("chatWidthMin", this.chatWidthMinimum.value);
client.processConfig("chatWidthMin", this.chatWidthMinimum.value);
}
}</code></pre>
</article>
</section>
@ -103,7 +230,7 @@ class settingsPanel extends panelObj{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1588,7 +1588,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line250">line 250</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line283">line 283</a>
</li></ul></dd>
@ -1676,7 +1676,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line318">line 318</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line351">line 351</a>
</li></ul></dd>
@ -1764,7 +1764,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line340">line 340</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line373">line 373</a>
</li></ul></dd>
@ -1852,7 +1852,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line424">line 424</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line457">line 457</a>
</li></ul></dd>
@ -1904,6 +1904,94 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<h4 class="name" id="hardReload"><span class="type-signature"></span>hardReload<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Destroys and Re-Creates media handler
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line262">line 262</a>
</li></ul></dd>
</dl>
@ -1962,7 +2050,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line285">line 285</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line318">line 318</a>
</li></ul></dd>
@ -2099,7 +2187,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line363">line 363</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line396">line 396</a>
</li></ul></dd>
@ -2187,7 +2275,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line241">line 241</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line253">line 253</a>
</li></ul></dd>
@ -2324,7 +2412,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line415">line 415</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line448">line 448</a>
</li></ul></dd>
@ -2686,7 +2774,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line218">line 218</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line230">line 230</a>
</li></ul></dd>
@ -2823,7 +2911,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line400">line 400</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line433">line 433</a>
</li></ul></dd>
@ -2960,7 +3048,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line375">line 375</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line408">line 408</a>
</li></ul></dd>
@ -3097,7 +3185,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line383">line 383</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line416">line 416</a>
</li></ul></dd>
@ -3185,7 +3273,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line307">line 307</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line340">line 340</a>
</li></ul></dd>
@ -3322,7 +3410,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line265">line 265</a>
<a href="player.js.html">player.js</a>, <a href="player.js.html#line298">line 298</a>
</li></ul></dd>
@ -3374,7 +3462,7 @@ Might seem weird to keep this here instead of the HLS handler, but remember we m
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -135,19 +135,19 @@ class player{
/**
* Tolerance between timestamp from server and actual media before corrective seek for pre-recorded media
*/
this.syncTolerance = 0.4;
this.syncTolerance = localStorage.getItem('syncTolerance');
/**
* Tolerance in livestream delay before corrective seek to live.
*
* Might seem weird to keep this here instead of the HLS handler, but remember we may want to support other livestream services in the future...
*/
this.streamSyncTolerance = 2;
this.streamSyncTolerance = localStorage.getItem('liveSyncTolerance');
/**
* Forced time to wait between sync checks, heavily decreases chance of seek-banging without reducing syncornization accuracy
*/
this.syncDelta = 6;
this.syncDelta = localStorage.getItem('syncDelta');
/**
* Current Player Volume
@ -220,6 +220,18 @@ class player{
this.mediaHandler = new hlsDailymotionHandler(this.client, this, data.media);
//Otherwise, if we have a raw-file compatible source
}else if(data.media.type == 'ia' || data.media.type == 'raw' || data.media.type == 'yt' || data.media.type == 'dm'){
//If we're running a source from IA
if(data.media.type == 'ia'){
//Replace specified CDN with generic URL, in-case of hard reload
data.media.rawLink = data.media.rawLink.replace(/^https(.*)archive\.org(.*)items/g, "https://archive.org/download")
//If we have an IA source and a custom IA CDN Server set
if(data.media.type == 'ia' &amp;&amp; localStorage.getItem("IACDN") != ""){
//Generate and set new link
data.media.rawLink = data.media.rawLink.replace("https://archive.org/download", `https://${localStorage.getItem("IACDN")}.archive.org/0/items`);
}
}
//Create a new raw file handler for it
this.mediaHandler = new rawFileHandler(client, this, data.media);
//Sync to time stamp
@ -272,6 +284,27 @@ class player{
}
}
/**
* Destroys and Re-Creates media handler
*/
hardReload(){
if(this.mediaHandler != null){
//Re-create data we'd get from server
const data = {
media: this.mediaHandler.nowPlaying,
timestamp: this.mediaHandler.getTimestamp()
}
//End current media handler
this.end();
console.log(data);
//Restart from last media handlers
this.start(data);
}
}
/**
* Handles End-Media Commands from the Server
*/
@ -474,7 +507,7 @@ class player{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -3631,7 +3631,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1442,7 +1442,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -5313,7 +5313,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2914,7 +2914,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2896,7 +2896,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -875,7 +875,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1050,7 +1050,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -960,7 +960,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -230,6 +230,68 @@
<h4 class="name" id="chatWidthMinimum"><span class="type-signature"></span>chatWidthMinimum<span class="type-signature"></span></h4>
<div class="description">
Chat Width Minimum while Size-Locked to Media Aspect Ratio
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line63">line 63</a>
</li></ul></dd>
</dl>
<h4 class="name" id="client"><span class="type-signature"></span>client<span class="type-signature"></span></h4>
@ -297,6 +359,130 @@
<h4 class="name" id="iaCDN"><span class="type-signature"></span>iaCDN<span class="type-signature"></span></h4>
<div class="description">
Internet Archive CDN Server Input
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line43">line 43</a>
</li></ul></dd>
</dl>
<h4 class="name" id="liveSyncTolerance"><span class="type-signature"></span>liveSyncTolerance<span class="type-signature"></span></h4>
<div class="description">
Livestream Syncronization Tolerance Input
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line53">line 53</a>
</li></ul></dd>
</dl>
<h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"></span></h4>
@ -564,6 +750,192 @@
<h4 class="name" id="syncDelta"><span class="type-signature"></span>syncDelta<span class="type-signature"></span></h4>
<div class="description">
Syncronization Tolerance Delta
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line58">line 58</a>
</li></ul></dd>
</dl>
<h4 class="name" id="syncTolerance"><span class="type-signature"></span>syncTolerance<span class="type-signature"></span></h4>
<div class="description">
Syncronization Tolerance Input
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line48">line 48</a>
</li></ul></dd>
</dl>
<h4 class="name" id="youtubeSource"><span class="type-signature"></span>youtubeSource<span class="type-signature"></span></h4>
<div class="description">
Youtube Source Selector
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line38">line 38</a>
</li></ul></dd>
</dl>
@ -928,7 +1300,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line51">line 51</a>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line84">line 84</a>
</li></ul></dd>
@ -1016,7 +1388,496 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line44">line 44</a>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line72">line 72</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateChatWidthMinimum"><span class="type-signature"></span>updateChatWidthMinimum<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Handles Chat Width minimum Changes
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line176">line 176</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateIACDN"><span class="type-signature"></span>updateIACDN<span class="signature">(event)</span><span class="type-signature"></span></h4>
<div class="description">
Event handler for Internet Archive CDN Server input
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type">Event</span>
</td>
<td class="description last">Event handed down by event listener</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line105">line 105</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateLiveSyncTolerance"><span class="type-signature"></span>updateLiveSyncTolerance<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Handles Live Sync Tolerance Changes
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line142">line 142</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateSyncDelta"><span class="type-signature"></span>updateSyncDelta<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Handles Sync Delta Changes
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line159">line 159</a>
</li></ul></dd>
</dl>
<h4 class="name" id="updateSyncTolerance"><span class="type-signature"></span>updateSyncTolerance<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
Handles Sync Tolerance Changes
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line125">line 125</a>
</li></ul></dd>
@ -1104,7 +1965,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line58">line 58</a>
<a href="panels_settingsPanel.js.html">panels/settingsPanel.js</a>, <a href="panels_settingsPanel.js.html#line96">line 96</a>
</li></ul></dd>
@ -1156,7 +2017,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -1191,7 +1191,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -252,7 +252,7 @@ class userList{
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>

View file

@ -2891,7 +2891,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 01:36:01 GMT-0400 (Eastern Daylight Time)
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sat Sep 06 2025 10:33:49 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>