ultrawidify/js/conf/Settings.js
2018-02-22 22:10:13 +01:00

104 lines
3.4 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");
var uwVersion = browser.runtime.getManifest().version;
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(actualSettings.version === undefined || actualSettings.version != uwVersion){
console.log("[Settings::_se_init()] extension was updated, replacing settings");
StorageManager.setopt({"uw-settings": JSON.stringify(this)});
}
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"
},
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,
}