mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-09-22 05:37:56 +02:00
Merge pull request #235 from OfficialNoob/patch-2
Formatting changes & proxy delete support
This commit is contained in:
commit
5348496768
1 changed files with 57 additions and 52 deletions
109
SB.js
109
SB.js
|
@ -24,33 +24,33 @@ class MapIO {
|
|||
|
||||
SB.config.handler.set(undefined, this.id, encodeStoredItem(this.map));
|
||||
|
||||
return this.map;
|
||||
return this.map;
|
||||
}
|
||||
|
||||
get(key) {
|
||||
return this.map.get(key);
|
||||
}
|
||||
|
||||
has(key) {
|
||||
return this.map.has(key);
|
||||
}
|
||||
|
||||
deleteProperty(key) {
|
||||
if (this.map.has(key)) {
|
||||
this.map.delete(key);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
get(key) {
|
||||
return this.map.get(key);
|
||||
}
|
||||
|
||||
size() {
|
||||
return this.map.size;
|
||||
has(key) {
|
||||
return this.map.has(key);
|
||||
}
|
||||
|
||||
delete(key) {
|
||||
this.map.delete(key);
|
||||
|
||||
deleteProperty(key) {
|
||||
if (this.map.has(key)) {
|
||||
this.map.delete(key);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
size() {
|
||||
return this.map.size;
|
||||
}
|
||||
|
||||
delete(key) {
|
||||
this.map.delete(key);
|
||||
|
||||
SB.config.handler.set(undefined, this.id, encodeStoredItem(this.map));
|
||||
}
|
||||
}
|
||||
|
@ -75,11 +75,11 @@ function encodeStoredItem(data) {
|
|||
function decodeStoredItem(data) {
|
||||
if(typeof data !== "string") return data;
|
||||
|
||||
try {
|
||||
try {
|
||||
let str = JSON.parse(data);
|
||||
|
||||
if(!Array.isArray(str)) return data;
|
||||
return new Map(str);
|
||||
if(!Array.isArray(str)) return data;
|
||||
return new Map(str);
|
||||
} catch(e) {
|
||||
|
||||
// If all else fails, return the data
|
||||
|
@ -99,18 +99,23 @@ function configProxy() {
|
|||
});
|
||||
|
||||
var handler = {
|
||||
set: function(obj, prop, value) {
|
||||
set(obj, prop, value) {
|
||||
SB.localConfig[prop] = value;
|
||||
|
||||
chrome.storage.sync.set({
|
||||
[prop]: encodeStoredItem(value)
|
||||
});
|
||||
},
|
||||
get: function(obj, prop) {
|
||||
|
||||
get(obj, prop) {
|
||||
let data = SB.localConfig[prop];
|
||||
if(data instanceof Map) data = new MapIO(prop);
|
||||
|
||||
return obj[prop] || data;
|
||||
return obj[prop] || data;
|
||||
},
|
||||
|
||||
deleteProperty(obj, prop) {
|
||||
chrome.storage.sync.remove(prop);
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -128,37 +133,37 @@ function fetchConfig() {
|
|||
}
|
||||
|
||||
function migrateOldFormats() { // Convert sponsorTimes format
|
||||
for (key in SB.localConfig) {
|
||||
for (const key in SB.localConfig) {
|
||||
if (key.startsWith("sponsorTimes") && key !== "sponsorTimes" && key !== "sponsorTimesContributed") {
|
||||
SB.config.sponsorTimes.set(key.substr(12), SB.config[key]);
|
||||
chrome.storage.sync.remove(key);
|
||||
delete SB.config[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function setupConfig() {
|
||||
await fetchConfig();
|
||||
addDefaults();
|
||||
convertJSON();
|
||||
SB.config = configProxy();
|
||||
addDefaults();
|
||||
convertJSON();
|
||||
SB.config = configProxy();
|
||||
migrateOldFormats();
|
||||
}
|
||||
|
||||
SB.defaults = {
|
||||
"sponsorTimes": new Map(),
|
||||
"startSponsorKeybind": ";",
|
||||
"submitKeybind": "'",
|
||||
"minutesSaved": 0,
|
||||
"skipCount": 0,
|
||||
"sponsorTimesContributed": 0,
|
||||
"disableSkipping": false,
|
||||
"disableAutoSkip": false,
|
||||
"trackViewCount": true,
|
||||
"dontShowNotice": false,
|
||||
"hideVideoPlayerControls": false,
|
||||
"hideInfoButtonPlayerControls": false,
|
||||
"hideDeleteButtonPlayerControls": false,
|
||||
"hideDiscordLaunches": 0,
|
||||
"sponsorTimes": new Map(),
|
||||
"startSponsorKeybind": ";",
|
||||
"submitKeybind": "'",
|
||||
"minutesSaved": 0,
|
||||
"skipCount": 0,
|
||||
"sponsorTimesContributed": 0,
|
||||
"disableSkipping": false,
|
||||
"disableAutoSkip": false,
|
||||
"trackViewCount": true,
|
||||
"dontShowNotice": false,
|
||||
"hideVideoPlayerControls": false,
|
||||
"hideInfoButtonPlayerControls": false,
|
||||
"hideDeleteButtonPlayerControls": false,
|
||||
"hideDiscordLaunches": 0,
|
||||
"hideDiscordLink": false,
|
||||
"invidiousInstances": ["invidio.us", "invidiou.sh", "invidious.snopyta.org"],
|
||||
"invidiousUpdateInfoShowCount": 0,
|
||||
|
@ -167,21 +172,21 @@ SB.defaults = {
|
|||
|
||||
// Reset config
|
||||
function resetConfig() {
|
||||
SB.config = SB.defaults;
|
||||
SB.config = SB.defaults;
|
||||
};
|
||||
|
||||
function convertJSON() {
|
||||
Object.keys(SB.defaults).forEach(key => {
|
||||
SB.localConfig[key] = decodeStoredItem(SB.localConfig[key], key);
|
||||
});
|
||||
Object.keys(SB.defaults).forEach(key => {
|
||||
SB.localConfig[key] = decodeStoredItem(SB.localConfig[key], key);
|
||||
});
|
||||
}
|
||||
|
||||
// Add defaults
|
||||
function addDefaults() {
|
||||
for (const key in SB.defaults) {
|
||||
if(!SB.localConfig.hasOwnProperty(key)) {
|
||||
SB.localConfig[key] = SB.defaults[key];
|
||||
}
|
||||
SB.localConfig[key] = SB.defaults[key];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue