ultrawidify/js/conf/Settings.js
2018-02-15 00:17:58 +01:00

110 lines
3.8 KiB
JavaScript

// Extension settings are in this file. Site configuration is in Sites.js
// todo: move keybinds here
if(Debug.debug)
console.log("Loading: Settings.js");
var _se_init = async function(neverFlushStored){
// if(Debug.flushStoredSettings && neverFlushStored === false)
// StorageManager.delopt("uw-settings");
if(Debug.debug)
console.log("[Settings::_se_init()] -------- starting init! ---------");
var newSettings = await StorageManager.getopt_async("uw-settings");
if (Debug.debug)
console.log("[Settings::_se_init()] settings saved in localstorage are:", newSettings, " - if that's empty, it's gonna be replaced by this:", JSON.stringify(this), ")");
if ((Object.keys(newSettings).length === 0 && newSettings.constructor === Object)){
console.log("[Settings::_se_init()] replacing settings");
StorageManager.setopt({"uw-settings": JSON.stringify(this)});
}
else{
var actualSettings = JSON.parse(newSettings["uw-settings"]);
if(Debug.debug)
console.log("[Settings::_se_init()] parsed settings:", actualSettings);
for (var k in actualSettings)
this[k] = actualSettings[k];
}
if(Debug.debug)
console.log("[Settings::_se_init] settings have been loaded/reloaded. Current state: ", this);
}
var _se_save = function(settings){
StorageManager.delopt("uw-settings");
if(settings !== undefined){
StorageManager.setopt({"uw-settings": JSON.stringify(settings)});
}
else{
StorageManager.setopt({"uw-settings": JSON.stringify(this)});
}
if (Debug.debug)
console.log("[Settings::_se_save()] saving settings:", JSON.stringify(settings));
}
var _se_reload = function(){
this.init(true);
}
var _se_isBlacklisted = function(site){
return this.blacklist.indexOf(site) > -1;
}
var _se_isWhitelisted = function(site){
return this.whitelist.indexOf(site) > -1;
}
var Settings = {
arDetect: {
enabled: "global", // thats my csgo rank kappa
allowedMisaligned: 0.05, // top and bottom letterbox thickness can differ by this much.
// Any more and we don't adjust ar.
allowedArVariance: 0.075, // amount by which old ar can differ from the new (1 = 100%)
timer_playing: 30,
timer_paused: 3000,
timer_error: 3000,
hSamples: 1280,
vSamples: 720,
staticSampleCols: 9, // we take a column at [0-n]/n-th parts along the width and sample it
randomSampleCols: 0, // we add this many randomly selected columns to the static columns
staticSampleRows: 9, // forms grid with staticSampleCols. Determined in the same way. For black frame checks
blacklist: [], // banned on enabled: "global"
whitelist: [], // enabled on enabled: "whitelist-only", disabled on "disabled"
guardLine: { // all pixels on the guardline need to be black, or else we trigger AR recalculation
// (if AR fails to be recalculated, we reset AR)
enabled: true,
ignoreEdgeMargin: 0.20, // we ignore anything that pokes over the black line this close to the edge
// (relative to width of the sample)
ignoreThis: "we just don't want to remove the comma in previous line. this reserved."
},
arSwitchLimiter: { // to be implemented
switches: 2, // we can switch this many times
period: 2.0 // per this period
}
},
arChange: {
samenessTreshold: 0.025, // if aspect ratios are within 2.5% within each other, don't resize
},
miscFullscreenSettings: {
videoFloat: "center"
},
colors:{
// criticalFail: "background: #fa2; color: #000"
},
whitelist: [],
blacklist: ["vimeo.com"],
isBlacklisted: _se_isBlacklisted,
isWhitelisted: _se_isWhitelisted,
init: _se_init,
save: _se_save,
reload: _se_reload,
}