mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Code clean up
This commit is contained in:
parent
faf3ad8e38
commit
4cfd387835
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved (Preview)
|
||||
// @version 0.9.8
|
||||
// @version 1.0.0
|
||||
// @description 增强哔哩哔哩Web端体验. (预览版分支)
|
||||
// @author Grant Howard
|
||||
// @match *://*.bilibili.com/*
|
||||
@ -18,205 +18,199 @@
|
||||
(self$ =>
|
||||
{
|
||||
const $ = unsafeWindow.$ || self$;
|
||||
$(document).ready(() =>
|
||||
const settings = {
|
||||
removeAds: true,
|
||||
touchNavBar: false,
|
||||
touchVideoPlayer: false,
|
||||
watchLaterRedirect: true,
|
||||
expandDanmakuList: true,
|
||||
customStyleColor: "#00A0D8",
|
||||
blurBackgroundOpacity: 0.382,
|
||||
overrideNavBar: true,
|
||||
showBanner: true,
|
||||
useDarkStyle: false,
|
||||
useNewStyle: true
|
||||
};
|
||||
const ajaxReload = [
|
||||
"touchVideoPlayer",
|
||||
"watchLaterRedirect",
|
||||
"expandDanmakuList"
|
||||
];
|
||||
function waitForQuery()
|
||||
{
|
||||
const settings = {
|
||||
removeAds: true,
|
||||
touchNavBar: false,
|
||||
touchVideoPlayer: false,
|
||||
watchLaterRedirect: true,
|
||||
expandDanmakuList: true,
|
||||
customStyleColor: "#00A0D8",
|
||||
blurBackgroundOpacity: 0.382,
|
||||
overrideNavBar: true,
|
||||
showBanner: true,
|
||||
useDarkStyle: false,
|
||||
useNewStyle: true
|
||||
};
|
||||
const ajaxReload = [
|
||||
"touchVideoPlayer",
|
||||
"watchLaterRedirect",
|
||||
"expandDanmakuList"
|
||||
];
|
||||
function waitForQuery()
|
||||
const MaxRetry = 30;
|
||||
let retry = 0;
|
||||
const tryQuery = (query, condition, action, failed) =>
|
||||
{
|
||||
const MaxRetry = 30;
|
||||
let retry = 0;
|
||||
const tryQuery = (query, condition, action, failed) =>
|
||||
if (retry >= MaxRetry)
|
||||
{
|
||||
if (retry >= MaxRetry)
|
||||
if (failed)
|
||||
{
|
||||
if (failed)
|
||||
failed();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const result = query();
|
||||
if (condition(result))
|
||||
{
|
||||
action(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
retry++;
|
||||
setTimeout(() => tryQuery(query, condition, action, failed), 500);
|
||||
}
|
||||
}
|
||||
};
|
||||
return tryQuery;
|
||||
}
|
||||
function ajax(url, done)
|
||||
{
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener("load", () => done(xhr.responseText));
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
}
|
||||
function loadSettings()
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
settings[key] = GM_getValue(key, settings[key]);
|
||||
}
|
||||
settings.guiSettings = true;
|
||||
}
|
||||
function saveSettings(newSettings)
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
GM_setValue(key, newSettings[key]);
|
||||
}
|
||||
}
|
||||
class ExternalResource
|
||||
{
|
||||
static get resourceUrls()
|
||||
{
|
||||
const root = "https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/";
|
||||
const urls = {
|
||||
style: "style/style.min.scss",
|
||||
oldStyle: "style/style-old.min.scss",
|
||||
darkStyle: "style/style-dark.min.scss",
|
||||
touchPlayerStyle: "style/style-touch-player.min.scss",
|
||||
navbarOverrideStyle: "style/style-navbar-override.min.css",
|
||||
noBannerStyle: "style/style-no-banner.min.css",
|
||||
guiSettingsStyle: "style/style-gui-settings.min.scss",
|
||||
guiSettingsDom: "utils/gui-settings.html",
|
||||
guiSettings: "utils/gui-settings.min.js",
|
||||
useDarkStyle: "style/dark-styles.min.js",
|
||||
useNewStyle: "style/new-styles.min.js",
|
||||
touchNavBar: "touch/touch-navbar.min.js",
|
||||
touchVideoPlayer: "touch/touch-player.min.js",
|
||||
expandDanmakuList: "utils/expand-danmaku.min.js",
|
||||
removeAds: "utils/remove-promotions.min.js",
|
||||
watchLaterRedirect: "utils/watchlater.min.js"
|
||||
};
|
||||
for (const key in urls)
|
||||
{
|
||||
urls[key] = root + urls[key];
|
||||
}
|
||||
return urls;
|
||||
}
|
||||
constructor()
|
||||
{
|
||||
this.data = {};
|
||||
const foreground = (() =>
|
||||
{
|
||||
const regex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(settings.customStyleColor);
|
||||
const color = regex ? {
|
||||
r: parseInt(regex[1], 16),
|
||||
g: parseInt(regex[2], 16),
|
||||
b: parseInt(regex[3], 16)
|
||||
} : undefined;
|
||||
if (color)
|
||||
{
|
||||
const grey = 1 - (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;
|
||||
if (grey < 0.35)
|
||||
{
|
||||
failed();
|
||||
return "#000";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#fff";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const result = query();
|
||||
if (condition(result))
|
||||
return "#fff";
|
||||
}
|
||||
})();
|
||||
settings.foreground = foreground;
|
||||
settings.brightness = `${foreground === "#000" ? "100" : "0"}%`;
|
||||
settings.filterBrightness = foreground === "#000" ? "0" : "100";
|
||||
}
|
||||
ready(callback)
|
||||
{
|
||||
this.callback = callback;
|
||||
const replaceCustomColor = (style) =>
|
||||
{
|
||||
for (const key of Object.keys(settings))
|
||||
{
|
||||
style = style.replace(new RegExp("\\$" + key, "g"), settings[key]);
|
||||
}
|
||||
return style;
|
||||
};
|
||||
const urls = ExternalResource.resourceUrls;
|
||||
const resourceCount = Object.keys(urls).length;
|
||||
let downloadedCount = 0;
|
||||
for (const key in urls)
|
||||
{
|
||||
const url = urls[key];
|
||||
ajax(url, data =>
|
||||
{
|
||||
if (url.indexOf(".scss") !== -1)
|
||||
{
|
||||
action(result);
|
||||
this.data[key] = replaceCustomColor(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
retry++;
|
||||
setTimeout(() => tryQuery(query, condition, action, failed), 500);
|
||||
this.data[key] = data;
|
||||
}
|
||||
}
|
||||
};
|
||||
return tryQuery;
|
||||
downloadedCount++;
|
||||
if (downloadedCount >= resourceCount && this.callback)
|
||||
{
|
||||
this.callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function ajax(url, done)
|
||||
getStyle(key, id)
|
||||
{
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener("load", () => done(xhr.responseText));
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
return `<style id='${id}'>${this.data[key]}</style>`;
|
||||
}
|
||||
function reload(resources)
|
||||
apply()
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
if (settings[key] === true)
|
||||
{
|
||||
const func = eval(resources.data[key]);
|
||||
const func = eval(this.data[key]);
|
||||
if (func)
|
||||
{
|
||||
func(settings, resources);
|
||||
func(settings, this);
|
||||
if (ajaxReload.indexOf(key) !== -1)
|
||||
{
|
||||
$(document).ajaxComplete(() =>
|
||||
{
|
||||
func(settings, resources);
|
||||
func(settings, this);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function loadSettings()
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
settings[key] = GM_getValue(key, settings[key]);
|
||||
}
|
||||
settings.guiSettings = true;
|
||||
}
|
||||
function saveSettings(newSettings)
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
GM_setValue(key, newSettings[key]);
|
||||
}
|
||||
}
|
||||
class ExternalResource
|
||||
{
|
||||
static get resourceUrls()
|
||||
{
|
||||
const root = "https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/";
|
||||
const urls = {
|
||||
style: "style/style.min.scss",
|
||||
oldStyle: "style/style-old.min.scss",
|
||||
darkStyle: "style/style-dark.min.scss",
|
||||
touchPlayerStyle: "style/style-touch-player.min.scss",
|
||||
navbarOverrideStyle: "style/style-navbar-override.min.css",
|
||||
noBannerStyle: "style/style-no-banner.min.css",
|
||||
guiSettingsStyle: "style/style-gui-settings.min.scss",
|
||||
guiSettingsDom: "utils/gui-settings.html",
|
||||
guiSettings: "utils/gui-settings.min.js",
|
||||
useDarkStyle: "style/dark-styles.min.js",
|
||||
useNewStyle: "style/new-styles.min.js",
|
||||
touchNavBar: "touch/touch-navbar.min.js",
|
||||
touchVideoPlayer: "touch/touch-player.min.js",
|
||||
expandDanmakuList: "utils/expand-danmaku.min.js",
|
||||
removeAds: "utils/remove-promotions.min.js",
|
||||
watchLaterRedirect: "utils/watchlater.min.js"
|
||||
};
|
||||
for (const key in urls)
|
||||
{
|
||||
urls[key] = root + urls[key];
|
||||
}
|
||||
return urls;
|
||||
}
|
||||
constructor()
|
||||
{
|
||||
this.data = {};
|
||||
const foreground = (() =>
|
||||
{
|
||||
const regex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(settings.customStyleColor);
|
||||
const color = regex ? {
|
||||
r: parseInt(regex[1], 16),
|
||||
g: parseInt(regex[2], 16),
|
||||
b: parseInt(regex[3], 16)
|
||||
} : undefined;
|
||||
if (color)
|
||||
{
|
||||
const grey = 1 - (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;
|
||||
if (grey < 0.35)
|
||||
{
|
||||
return "#000";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#fff";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#fff";
|
||||
}
|
||||
})();
|
||||
settings.foreground = foreground;
|
||||
settings.brightness = `${foreground === "#000" ? "100" : "0"}%`;
|
||||
settings.filterBrightness = foreground === "#000" ? "0" : "100";
|
||||
}
|
||||
ready(callback)
|
||||
{
|
||||
this.callback = callback;
|
||||
const replaceCustomColor = (style) =>
|
||||
{
|
||||
for (const key of Object.keys(settings))
|
||||
{
|
||||
style = style.replace(new RegExp("\\$" + key, "g"), settings[key]);
|
||||
}
|
||||
return style;
|
||||
};
|
||||
const urls = ExternalResource.resourceUrls;
|
||||
const resourceCount = Object.keys(urls).length;
|
||||
let downloadedCount = 0;
|
||||
for (const key in urls)
|
||||
{
|
||||
const url = urls[key];
|
||||
ajax(url, data =>
|
||||
{
|
||||
if (url.indexOf(".scss") !== -1)
|
||||
{
|
||||
this.data[key] = replaceCustomColor(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.data[key] = data;
|
||||
}
|
||||
downloadedCount++;
|
||||
if (downloadedCount >= resourceCount && this.callback)
|
||||
{
|
||||
this.callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
getStyle(key, id)
|
||||
{
|
||||
return `<style id='${id}'>${this.data[key]}</style>`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
loadSettings();
|
||||
const resources = new ExternalResource();
|
||||
resources.ready(() =>
|
||||
{
|
||||
reload(resources);
|
||||
});
|
||||
});
|
||||
loadSettings();
|
||||
const resources = new ExternalResource();
|
||||
resources.ready(resources.apply);
|
||||
})(window.jQuery.noConflict(true));
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved
|
||||
// @version 0.9.8
|
||||
// @version 1.0.0
|
||||
// @description 增强哔哩哔哩Web端体验.
|
||||
// @author Grant Howard
|
||||
// @match *://*.bilibili.com/*
|
||||
@ -18,205 +18,199 @@
|
||||
(self$ =>
|
||||
{
|
||||
const $ = unsafeWindow.$ || self$;
|
||||
$(document).ready(() =>
|
||||
const settings = {
|
||||
removeAds: true,
|
||||
touchNavBar: false,
|
||||
touchVideoPlayer: false,
|
||||
watchLaterRedirect: true,
|
||||
expandDanmakuList: true,
|
||||
customStyleColor: "#00A0D8",
|
||||
blurBackgroundOpacity: 0.382,
|
||||
overrideNavBar: true,
|
||||
showBanner: true,
|
||||
useDarkStyle: false,
|
||||
useNewStyle: true
|
||||
};
|
||||
const ajaxReload = [
|
||||
"touchVideoPlayer",
|
||||
"watchLaterRedirect",
|
||||
"expandDanmakuList"
|
||||
];
|
||||
function waitForQuery()
|
||||
{
|
||||
const settings = {
|
||||
removeAds: true,
|
||||
touchNavBar: false,
|
||||
touchVideoPlayer: false,
|
||||
watchLaterRedirect: true,
|
||||
expandDanmakuList: true,
|
||||
customStyleColor: "#00A0D8",
|
||||
blurBackgroundOpacity: 0.382,
|
||||
overrideNavBar: true,
|
||||
showBanner: true,
|
||||
useDarkStyle: false,
|
||||
useNewStyle: true
|
||||
};
|
||||
const ajaxReload = [
|
||||
"touchVideoPlayer",
|
||||
"watchLaterRedirect",
|
||||
"expandDanmakuList"
|
||||
];
|
||||
function waitForQuery()
|
||||
const MaxRetry = 30;
|
||||
let retry = 0;
|
||||
const tryQuery = (query, condition, action, failed) =>
|
||||
{
|
||||
const MaxRetry = 30;
|
||||
let retry = 0;
|
||||
const tryQuery = (query, condition, action, failed) =>
|
||||
if (retry >= MaxRetry)
|
||||
{
|
||||
if (retry >= MaxRetry)
|
||||
if (failed)
|
||||
{
|
||||
if (failed)
|
||||
failed();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const result = query();
|
||||
if (condition(result))
|
||||
{
|
||||
action(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
retry++;
|
||||
setTimeout(() => tryQuery(query, condition, action, failed), 500);
|
||||
}
|
||||
}
|
||||
};
|
||||
return tryQuery;
|
||||
}
|
||||
function ajax(url, done)
|
||||
{
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener("load", () => done(xhr.responseText));
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
}
|
||||
function loadSettings()
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
settings[key] = GM_getValue(key, settings[key]);
|
||||
}
|
||||
settings.guiSettings = true;
|
||||
}
|
||||
function saveSettings(newSettings)
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
GM_setValue(key, newSettings[key]);
|
||||
}
|
||||
}
|
||||
class ExternalResource
|
||||
{
|
||||
static get resourceUrls()
|
||||
{
|
||||
const root = "https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/";
|
||||
const urls = {
|
||||
style: "style/style.min.scss",
|
||||
oldStyle: "style/style-old.min.scss",
|
||||
darkStyle: "style/style-dark.min.scss",
|
||||
touchPlayerStyle: "style/style-touch-player.min.scss",
|
||||
navbarOverrideStyle: "style/style-navbar-override.min.css",
|
||||
noBannerStyle: "style/style-no-banner.min.css",
|
||||
guiSettingsStyle: "style/style-gui-settings.min.scss",
|
||||
guiSettingsDom: "utils/gui-settings.html",
|
||||
guiSettings: "utils/gui-settings.min.js",
|
||||
useDarkStyle: "style/dark-styles.min.js",
|
||||
useNewStyle: "style/new-styles.min.js",
|
||||
touchNavBar: "touch/touch-navbar.min.js",
|
||||
touchVideoPlayer: "touch/touch-player.min.js",
|
||||
expandDanmakuList: "utils/expand-danmaku.min.js",
|
||||
removeAds: "utils/remove-promotions.min.js",
|
||||
watchLaterRedirect: "utils/watchlater.min.js"
|
||||
};
|
||||
for (const key in urls)
|
||||
{
|
||||
urls[key] = root + urls[key];
|
||||
}
|
||||
return urls;
|
||||
}
|
||||
constructor()
|
||||
{
|
||||
this.data = {};
|
||||
const foreground = (() =>
|
||||
{
|
||||
const regex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(settings.customStyleColor);
|
||||
const color = regex ? {
|
||||
r: parseInt(regex[1], 16),
|
||||
g: parseInt(regex[2], 16),
|
||||
b: parseInt(regex[3], 16)
|
||||
} : undefined;
|
||||
if (color)
|
||||
{
|
||||
const grey = 1 - (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;
|
||||
if (grey < 0.35)
|
||||
{
|
||||
failed();
|
||||
return "#000";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#fff";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const result = query();
|
||||
if (condition(result))
|
||||
return "#fff";
|
||||
}
|
||||
})();
|
||||
settings.foreground = foreground;
|
||||
settings.brightness = `${foreground === "#000" ? "100" : "0"}%`;
|
||||
settings.filterBrightness = foreground === "#000" ? "0" : "100";
|
||||
}
|
||||
ready(callback)
|
||||
{
|
||||
this.callback = callback;
|
||||
const replaceCustomColor = (style) =>
|
||||
{
|
||||
for (const key of Object.keys(settings))
|
||||
{
|
||||
style = style.replace(new RegExp("\\$" + key, "g"), settings[key]);
|
||||
}
|
||||
return style;
|
||||
};
|
||||
const urls = ExternalResource.resourceUrls;
|
||||
const resourceCount = Object.keys(urls).length;
|
||||
let downloadedCount = 0;
|
||||
for (const key in urls)
|
||||
{
|
||||
const url = urls[key];
|
||||
ajax(url, data =>
|
||||
{
|
||||
if (url.indexOf(".scss") !== -1)
|
||||
{
|
||||
action(result);
|
||||
this.data[key] = replaceCustomColor(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
retry++;
|
||||
setTimeout(() => tryQuery(query, condition, action, failed), 500);
|
||||
this.data[key] = data;
|
||||
}
|
||||
}
|
||||
};
|
||||
return tryQuery;
|
||||
downloadedCount++;
|
||||
if (downloadedCount >= resourceCount && this.callback)
|
||||
{
|
||||
this.callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function ajax(url, done)
|
||||
getStyle(key, id)
|
||||
{
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener("load", () => done(xhr.responseText));
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
return `<style id='${id}'>${this.data[key]}</style>`;
|
||||
}
|
||||
function reload(resources)
|
||||
apply()
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
if (settings[key] === true)
|
||||
{
|
||||
const func = eval(resources.data[key]);
|
||||
const func = eval(this.data[key]);
|
||||
if (func)
|
||||
{
|
||||
func(settings, resources);
|
||||
func(settings, this);
|
||||
if (ajaxReload.indexOf(key) !== -1)
|
||||
{
|
||||
$(document).ajaxComplete(() =>
|
||||
{
|
||||
func(settings, resources);
|
||||
func(settings, this);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function loadSettings()
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
settings[key] = GM_getValue(key, settings[key]);
|
||||
}
|
||||
settings.guiSettings = true;
|
||||
}
|
||||
function saveSettings(newSettings)
|
||||
{
|
||||
for (const key in settings)
|
||||
{
|
||||
GM_setValue(key, newSettings[key]);
|
||||
}
|
||||
}
|
||||
class ExternalResource
|
||||
{
|
||||
static get resourceUrls()
|
||||
{
|
||||
const root = "https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/";
|
||||
const urls = {
|
||||
style: "style/style.min.scss",
|
||||
oldStyle: "style/style-old.min.scss",
|
||||
darkStyle: "style/style-dark.min.scss",
|
||||
touchPlayerStyle: "style/style-touch-player.min.scss",
|
||||
navbarOverrideStyle: "style/style-navbar-override.min.css",
|
||||
noBannerStyle: "style/style-no-banner.min.css",
|
||||
guiSettingsStyle: "style/style-gui-settings.min.scss",
|
||||
guiSettingsDom: "utils/gui-settings.html",
|
||||
guiSettings: "utils/gui-settings.min.js",
|
||||
useDarkStyle: "style/dark-styles.min.js",
|
||||
useNewStyle: "style/new-styles.min.js",
|
||||
touchNavBar: "touch/touch-navbar.min.js",
|
||||
touchVideoPlayer: "touch/touch-player.min.js",
|
||||
expandDanmakuList: "utils/expand-danmaku.min.js",
|
||||
removeAds: "utils/remove-promotions.min.js",
|
||||
watchLaterRedirect: "utils/watchlater.min.js"
|
||||
};
|
||||
for (const key in urls)
|
||||
{
|
||||
urls[key] = root + urls[key];
|
||||
}
|
||||
return urls;
|
||||
}
|
||||
constructor()
|
||||
{
|
||||
this.data = {};
|
||||
const foreground = (() =>
|
||||
{
|
||||
const regex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(settings.customStyleColor);
|
||||
const color = regex ? {
|
||||
r: parseInt(regex[1], 16),
|
||||
g: parseInt(regex[2], 16),
|
||||
b: parseInt(regex[3], 16)
|
||||
} : undefined;
|
||||
if (color)
|
||||
{
|
||||
const grey = 1 - (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;
|
||||
if (grey < 0.35)
|
||||
{
|
||||
return "#000";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#fff";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return "#fff";
|
||||
}
|
||||
})();
|
||||
settings.foreground = foreground;
|
||||
settings.brightness = `${foreground === "#000" ? "100" : "0"}%`;
|
||||
settings.filterBrightness = foreground === "#000" ? "0" : "100";
|
||||
}
|
||||
ready(callback)
|
||||
{
|
||||
this.callback = callback;
|
||||
const replaceCustomColor = (style) =>
|
||||
{
|
||||
for (const key of Object.keys(settings))
|
||||
{
|
||||
style = style.replace(new RegExp("\\$" + key, "g"), settings[key]);
|
||||
}
|
||||
return style;
|
||||
};
|
||||
const urls = ExternalResource.resourceUrls;
|
||||
const resourceCount = Object.keys(urls).length;
|
||||
let downloadedCount = 0;
|
||||
for (const key in urls)
|
||||
{
|
||||
const url = urls[key];
|
||||
ajax(url, data =>
|
||||
{
|
||||
if (url.indexOf(".scss") !== -1)
|
||||
{
|
||||
this.data[key] = replaceCustomColor(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.data[key] = data;
|
||||
}
|
||||
downloadedCount++;
|
||||
if (downloadedCount >= resourceCount && this.callback)
|
||||
{
|
||||
this.callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
getStyle(key, id)
|
||||
{
|
||||
return `<style id='${id}'>${this.data[key]}</style>`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
loadSettings();
|
||||
const resources = new ExternalResource();
|
||||
resources.ready(() =>
|
||||
{
|
||||
reload(resources);
|
||||
});
|
||||
});
|
||||
loadSettings();
|
||||
const resources = new ExternalResource();
|
||||
resources.ready(resources.apply);
|
||||
})(window.jQuery.noConflict(true));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user