stuff
This commit is contained in:
parent
efc64b234d
commit
f9b5b626d8
|
@ -3258,8 +3258,8 @@
|
|||
catch (err) {template.innerHTML = html.replace(/>[\t\r\n]+<(?!pre)/g, "><");}
|
||||
if (template.content.childNodes.length == 1) return template.content.firstElementChild;
|
||||
else {
|
||||
var wrapper = document.createElement("span");
|
||||
var nodes = Array.from(template.content.childNodes);
|
||||
let wrapper = document.createElement("span");
|
||||
let nodes = Array.from(template.content.childNodes);
|
||||
while (nodes.length) wrapper.appendChild(nodes.shift());
|
||||
return wrapper;
|
||||
}
|
||||
|
@ -3352,29 +3352,31 @@
|
|||
}
|
||||
return 0;
|
||||
};
|
||||
BDFDB.DOMUtils.appendWebScript = function (path, container) {
|
||||
BDFDB.DOMUtils.appendWebScript = function (url, container) {
|
||||
if (!container && !document.head.querySelector("bd-head bd-scripts")) document.head.appendChild(BDFDB.DOMUtils.create(`<bd-head><bd-scripts></bd-scripts></bd-head>`));
|
||||
container = container || document.head.querySelector("bd-head bd-scripts") || document.head;
|
||||
container = Node.prototype.isPrototypeOf(container) ? container : document.head;
|
||||
BDFDB.DOMUtils.removeWebScript(path, container);
|
||||
container.appendChild(BDFDB.DOMUtils.create(`<script src="${path}"></script>`));
|
||||
BDFDB.DOMUtils.removeWebScript(url, container);
|
||||
let script = document.createElement("script");
|
||||
script.src = url;
|
||||
container.appendChild(script);
|
||||
};
|
||||
BDFDB.DOMUtils.removeWebScript = function (path, container) {
|
||||
BDFDB.DOMUtils.removeWebScript = function (url, container) {
|
||||
container = container || document.head.querySelector("bd-head bd-scripts") || document.head;
|
||||
container = Node.prototype.isPrototypeOf(container) ? container : document.head;
|
||||
BDFDB.DOMUtils.remove(container.querySelectorAll(`script[src="${path}"]`));
|
||||
BDFDB.DOMUtils.remove(container.querySelectorAll(`script[src="${url}"]`));
|
||||
};
|
||||
BDFDB.DOMUtils.appendWebStyle = function (path, container) {
|
||||
BDFDB.DOMUtils.appendWebStyle = function (url, container) {
|
||||
if (!container && !document.head.querySelector("bd-head bd-styles")) document.head.appendChild(BDFDB.DOMUtils.create(`<bd-head><bd-styles></bd-styles></bd-head>`));
|
||||
container = container || document.head.querySelector("bd-head bd-styles") || document.head;
|
||||
container = Node.prototype.isPrototypeOf(container) ? container : document.head;
|
||||
BDFDB.DOMUtils.removeWebStyle(path, container);
|
||||
container.appendChild(BDFDB.DOMUtils.create(`<link type="text/css" rel="Stylesheet" href="${path}"></link>`));
|
||||
BDFDB.DOMUtils.removeWebStyle(url, container);
|
||||
container.appendChild(BDFDB.DOMUtils.create(`<link type="text/css" rel="Stylesheet" href="${url}"></link>`));
|
||||
};
|
||||
BDFDB.DOMUtils.removeWebStyle = function (path, container) {
|
||||
BDFDB.DOMUtils.removeWebStyle = function (url, container) {
|
||||
container = container || document.head.querySelector("bd-head bd-styles") || document.head;
|
||||
container = Node.prototype.isPrototypeOf(container) ? container : document.head;
|
||||
BDFDB.DOMUtils.remove(container.querySelectorAll(`link[href="${path}"]`));
|
||||
BDFDB.DOMUtils.remove(container.querySelectorAll(`link[href="${url}"]`));
|
||||
};
|
||||
BDFDB.DOMUtils.appendLocalStyle = function (id, css, container) {
|
||||
if (!container && !document.head.querySelector("bd-head bd-styles")) document.head.appendChild(BDFDB.DOMUtils.create(`<bd-head><bd-styles></bd-styles></bd-head>`));
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,162 +1,164 @@
|
|||
console.log("this is a test");
|
||||
|
||||
window.global = window;
|
||||
if (!window.BDFDB) {
|
||||
window.global = window;
|
||||
|
||||
window.onload = function () {
|
||||
window.parent.postMessage({origin:"DiscordPreview",reason:"OnLoad"},"*");
|
||||
};
|
||||
window.onkeyup = function (e) {
|
||||
var which = e.which;
|
||||
window.parent.postMessage({origin:"DiscordPreview",reason:"KeyUp",which},"*");
|
||||
};
|
||||
window.onmessage = function (e) {
|
||||
if (typeof e.data === "object" && (e.data.origin == "PluginRepo" || e.data.origin == "ThemeRepo")) {
|
||||
switch (e.data.reason) {
|
||||
case "OnLoad":
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/\t|\n|\r/g, "");
|
||||
if (e.data.username) {
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_USERNAMESMALL/gi, e.data.username.toLowerCase());
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_USERNAME/gi, e.data.username);
|
||||
}
|
||||
if (e.data.id) {
|
||||
window.userId = e.data.id;
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_USERID/gi, e.data.id);
|
||||
}
|
||||
if (e.data.avatar) document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_AVATAR/gi, e.data.avatar.split('"').join('') + "?size=");
|
||||
if (e.data.discriminator) document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_DISCRIMINATOR/gi, e.data.discriminator);
|
||||
if (e.data.classes) window.DiscordClasses = JSON.parse(e.data.classes);
|
||||
if (e.data.classmodules) window.DiscordClassModules = JSON.parse(e.data.classmodules);
|
||||
if (window.disCN != undefined && window.DiscordClasses != undefined && window.DiscordClassModules != undefined) {
|
||||
var oldhtml = document.body.innerHTML.split("REPLACE_CLASS_");
|
||||
window.onload = function () {
|
||||
window.parent.postMessage({origin:"DiscordPreview",reason:"OnLoad"},"*");
|
||||
};
|
||||
window.onkeyup = function (e) {
|
||||
let which = e.which;
|
||||
window.parent.postMessage({origin:"DiscordPreview",reason:"KeyUp",which},"*");
|
||||
};
|
||||
window.onmessage = function (e) {
|
||||
if (typeof e.data === "object" && (e.data.origin == "PluginRepo" || e.data.origin == "ThemeRepo")) {
|
||||
switch (e.data.reason) {
|
||||
case "OnLoad":
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/\t|\n|\r/g, "");
|
||||
if (e.data.username) {
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_USERNAMESMALL/gi, e.data.username.toLowerCase());
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_USERNAME/gi, e.data.username);
|
||||
}
|
||||
if (e.data.id) {
|
||||
window.userId = e.data.id;
|
||||
document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_USERID/gi, e.data.id);
|
||||
}
|
||||
if (e.data.avatar) document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_AVATAR/gi, e.data.avatar.split('"').join('') + "?size=");
|
||||
if (e.data.discriminator) document.body.innerHTML = document.body.innerHTML.replace(/REPLACE_DISCRIMINATOR/gi, e.data.discriminator);
|
||||
if (e.data.classes) window.DiscordClasses = JSON.parse(e.data.classes);
|
||||
if (e.data.classmodules) window.DiscordClassModules = JSON.parse(e.data.classmodules);
|
||||
if (window.disCN != undefined && window.DiscordClasses != undefined && window.DiscordClassModules != undefined) {
|
||||
var oldhtml = document.body.innerHTML.split("REPLACE_CLASS_");
|
||||
var newhtml = oldhtml.shift();
|
||||
for (let html of oldhtml) {
|
||||
let reg = /([A-z0-9_]+)(.+)/.exec(html);
|
||||
newhtml += window.disCN[reg[1]] + reg[2];
|
||||
}
|
||||
document.body.innerHTML = newhtml;
|
||||
}
|
||||
if (e.data.nativecss) {
|
||||
var theme = document.createElement("link");
|
||||
theme.classList.add(e.data.reason);
|
||||
theme.rel = "stylesheet";
|
||||
theme.href = e.data.nativecss;
|
||||
document.head.appendChild(theme);
|
||||
}
|
||||
if (e.data.html) document.documentElement.className = e.data.html;
|
||||
if (e.data.titlebar) document.querySelector(".preview-titlebar").outerHTML = e.data.titlebar;
|
||||
document.body.firstElementChild.style.removeProperty("display");
|
||||
document.documentElement.classList.add("mouse-mode");
|
||||
break;
|
||||
case "Eval":
|
||||
window.evalResult = null;
|
||||
if (e.data.jsstring) window.eval(`(_ => {${e.data.jsstring}})()`);
|
||||
window.parent.postMessage({origin:"DiscordPreview",reason:"EvalResult",result:window.evalResult},"*");
|
||||
break;
|
||||
case "NewTheme":
|
||||
case "CustomCSS":
|
||||
case "ThemeFixer":
|
||||
document.querySelectorAll("style." + e.data.reason).forEach(theme => theme.remove());
|
||||
if (e.data.checked) {
|
||||
var theme = document.createElement("style");
|
||||
theme.classList.add(e.data.reason);
|
||||
theme.innerText = e.data.css;
|
||||
document.head.appendChild(theme);
|
||||
}
|
||||
break;
|
||||
case "DarkLight":
|
||||
if (e.data.checked) document.body.innerHTML = document.body.innerHTML.replace(new RegExp(window.disCN.themedark, "g"), window.disCN.themelight);
|
||||
else document.body.innerHTML = document.body.innerHTML.replace(new RegExp(window.disCN.themelight, "g"), window.disCN.themedark);
|
||||
break;
|
||||
case "Normalize":
|
||||
var oldhtml = document.body.innerHTML.split('class="');
|
||||
var newhtml = oldhtml.shift();
|
||||
for (let html of oldhtml) {
|
||||
let reg = /([A-z0-9_]+)(.+)/.exec(html);
|
||||
newhtml += window.disCN[reg[1]] + reg[2];
|
||||
html = html.split('"');
|
||||
newhtml += 'class="' + (e.data.checked ? html[0].split(" ").map(n => n.replace(/([A-z0-9]+?)-([A-z0-9_-]{6})/g, "$1-$2 da-$1")).join(" ") : html[0].split(" ").filter(n => n.indexOf("da-") != 0).join(" ")) + '"' + html.slice(1).join('"');
|
||||
}
|
||||
document.body.innerHTML = newhtml;
|
||||
}
|
||||
if (e.data.nativecss) {
|
||||
var theme = document.createElement("link");
|
||||
theme.classList.add(e.data.reason);
|
||||
theme.rel = "stylesheet";
|
||||
theme.href = e.data.nativecss;
|
||||
document.head.appendChild(theme);
|
||||
}
|
||||
if (e.data.html) document.documentElement.className = e.data.html;
|
||||
if (e.data.titlebar) document.querySelector(".preview-titlebar").outerHTML = e.data.titlebar;
|
||||
document.body.firstElementChild.style.removeProperty("display");
|
||||
document.documentElement.classList.add("mouse-mode");
|
||||
break;
|
||||
case "Eval":
|
||||
window.evalResult = null;
|
||||
if (e.data.jsstring) window.eval(`(_ => {${e.data.jsstring}})()`);
|
||||
window.parent.postMessage({origin:"DiscordPreview",reason:"EvalResult",result:window.evalResult},"*");
|
||||
break;
|
||||
case "NewTheme":
|
||||
case "CustomCSS":
|
||||
case "ThemeFixer":
|
||||
document.querySelectorAll("style." + e.data.reason).forEach(theme => theme.remove());
|
||||
if (e.data.checked) {
|
||||
var theme = document.createElement("style");
|
||||
theme.classList.add(e.data.reason);
|
||||
theme.innerText = e.data.css;
|
||||
document.head.appendChild(theme);
|
||||
}
|
||||
break;
|
||||
case "DarkLight":
|
||||
if (e.data.checked) document.body.innerHTML = document.body.innerHTML.replace(new RegExp(window.disCN.themedark, "g"), window.disCN.themelight);
|
||||
else document.body.innerHTML = document.body.innerHTML.replace(new RegExp(window.disCN.themelight, "g"), window.disCN.themedark);
|
||||
break;
|
||||
case "Normalize":
|
||||
var oldhtml = document.body.innerHTML.split('class="');
|
||||
var newhtml = oldhtml.shift();
|
||||
for (let html of oldhtml) {
|
||||
html = html.split('"');
|
||||
newhtml += 'class="' + (e.data.checked ? html[0].split(" ").map(n => n.replace(/([A-z0-9]+?)-([A-z0-9_-]{6})/g, "$1-$2 da-$1")).join(" ") : html[0].split(" ").filter(n => n.indexOf("da-") != 0).join(" ")) + '"' + html.slice(1).join('"');
|
||||
}
|
||||
document.body.innerHTML = newhtml;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
window.require = function () {
|
||||
return _ => {};
|
||||
};
|
||||
window.getString = function (obj) {
|
||||
var string = "";
|
||||
if (typeof obj == "string") string = obj;
|
||||
else if (obj && obj.props) {
|
||||
if (typeof obj.props.children == "string") string = obj.props.children;
|
||||
else if (Array.isArray(obj.props.children)) for (let c of obj.props.children) string += typeof c == "string" ? c : getString(c);
|
||||
}
|
||||
return string;
|
||||
};
|
||||
window.webpackJsonp = function () {
|
||||
return {default:{m:{},c:{}}};
|
||||
};
|
||||
window.WebModulesFind = function (filter) {
|
||||
const id = "PluginRepo-WebModules";
|
||||
const req = typeof(window.webpackJsonp) == "function" ? window.webpackJsonp([], {[id]: (module, exports, req) => exports.default = req}, [id]).default : window.webpackJsonp.push([[], {[id]: (module, exports, req) => module.exports = req}, [[id]]]);
|
||||
delete req.m[id];
|
||||
delete req.c[id];
|
||||
for (let m in req.c) {
|
||||
if (req.c.hasOwnProperty(m)) {
|
||||
var module = req.c[m].exports;
|
||||
if (module && module.__esModule && module.default && filter(module.default)) return module.default;
|
||||
if (module && filter(module)) return module;
|
||||
};
|
||||
window.require = function () {
|
||||
return _ => {};
|
||||
};
|
||||
window.getString = function (obj) {
|
||||
var string = "";
|
||||
if (typeof obj == "string") string = obj;
|
||||
else if (obj && obj.props) {
|
||||
if (typeof obj.props.children == "string") string = obj.props.children;
|
||||
else if (Array.isArray(obj.props.children)) for (let c of obj.props.children) string += typeof c == "string" ? c : getString(c);
|
||||
}
|
||||
}
|
||||
};
|
||||
window.WebModulesFindByProperties = function (properties) {
|
||||
properties = Array.isArray(properties) ? properties : Array.from(arguments);
|
||||
var module = WebModulesFind(module => properties.every(prop => module[prop] !== undefined));
|
||||
if (!module) {
|
||||
module = {};
|
||||
for (let property of properties) module[property] = property;
|
||||
}
|
||||
return module;
|
||||
};
|
||||
window.WebModulesFindByName = function (name) {
|
||||
return WebModulesFind(module => module.displayName === name) || "";
|
||||
};
|
||||
window.disCN = new Proxy({}, {
|
||||
get: function (list, item) {
|
||||
return window.getDiscordClass(item).replace('#', '');
|
||||
}
|
||||
});
|
||||
window.getDiscordClass = function (item) {
|
||||
var classname = "Preview_undefined";
|
||||
if (window.DiscordClasses === undefined || window.DiscordClassModules === undefined) return classname;
|
||||
else if (window.DiscordClasses[item] === undefined) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', item + ' not found in window.DiscordClasses');
|
||||
return classname;
|
||||
}
|
||||
else if (!Array.isArray(window.DiscordClasses[item]) || window.DiscordClasses[item].length != 2) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', item + ' is not an Array of Length 2 in window.DiscordClasses');
|
||||
return classname;
|
||||
}
|
||||
else if (window.DiscordClassModules[window.DiscordClasses[item][0]] === undefined) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', window.DiscordClasses[item][0] + ' not found in DiscordClassModules');
|
||||
return classname;
|
||||
}
|
||||
else if (window.DiscordClassModules[window.DiscordClasses[item][0]][window.DiscordClasses[item][1]] === undefined) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', window.DiscordClasses[item][1] + ' not found in ' + window.DiscordClasses[item][0] + ' in DiscordClassModules');
|
||||
return classname;
|
||||
}
|
||||
else return classname = window.DiscordClassModules[window.DiscordClasses[item][0]][window.DiscordClasses[item][1]];
|
||||
};
|
||||
window.BDV2 = {};
|
||||
window.BDV2.react = window.React;
|
||||
window.BDV2.reactDom = window.ReactDOM;
|
||||
window.BDV2.WebpackModules = {};
|
||||
window.BDV2.WebpackModules.find = window.WebModulesFind;
|
||||
window.BDV2.WebpackModules.findByUniqueProperties = window.WebModulesFindByProperties;
|
||||
window.BDV2.WebpackModules.findByDisplayName = window.WebModulesFindByName;
|
||||
window.BdApi = {};
|
||||
window.BdApi.getData = _ => {return {};};
|
||||
window.BdApi.loadData = _ => {return {};};
|
||||
window.BdApi.saveData = _ => {};
|
||||
window.BdApi.React = window.React;
|
||||
window.BdApi.ReactDOM = window.ReactDOM;
|
||||
window.BdApi.findModule = window.WebModulesFind;
|
||||
window.BdApi.findModuleByProps = window.WebModulesFindByProperties;
|
||||
return string;
|
||||
};
|
||||
window.webpackJsonp = function () {
|
||||
return {default:{m:{},c:{}}};
|
||||
};
|
||||
window.WebModulesFind = function (filter) {
|
||||
const id = "PluginRepo-WebModules";
|
||||
const req = typeof(window.webpackJsonp) == "function" ? window.webpackJsonp([], {[id]: (module, exports, req) => exports.default = req}, [id]).default : window.webpackJsonp.push([[], {[id]: (module, exports, req) => module.exports = req}, [[id]]]);
|
||||
delete req.m[id];
|
||||
delete req.c[id];
|
||||
for (let m in req.c) {
|
||||
if (req.c.hasOwnProperty(m)) {
|
||||
var module = req.c[m].exports;
|
||||
if (module && module.__esModule && module.default && filter(module.default)) return module.default;
|
||||
if (module && filter(module)) return module;
|
||||
}
|
||||
}
|
||||
};
|
||||
window.WebModulesFindByProperties = function (properties) {
|
||||
properties = Array.isArray(properties) ? properties : Array.from(arguments);
|
||||
var module = WebModulesFind(module => properties.every(prop => module[prop] !== undefined));
|
||||
if (!module) {
|
||||
module = {};
|
||||
for (let property of properties) module[property] = property;
|
||||
}
|
||||
return module;
|
||||
};
|
||||
window.WebModulesFindByName = function (name) {
|
||||
return WebModulesFind(module => module.displayName === name) || "";
|
||||
};
|
||||
window.disCN = new Proxy({}, {
|
||||
get: function (list, item) {
|
||||
return window.getDiscordClass(item).replace('#', '');
|
||||
}
|
||||
});
|
||||
window.getDiscordClass = function (item) {
|
||||
var classname = "Preview_undefined";
|
||||
if (window.DiscordClasses === undefined || window.DiscordClassModules === undefined) return classname;
|
||||
else if (window.DiscordClasses[item] === undefined) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', item + ' not found in window.DiscordClasses');
|
||||
return classname;
|
||||
}
|
||||
else if (!Array.isArray(window.DiscordClasses[item]) || window.DiscordClasses[item].length != 2) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', item + ' is not an Array of Length 2 in window.DiscordClasses');
|
||||
return classname;
|
||||
}
|
||||
else if (window.DiscordClassModules[window.DiscordClasses[item][0]] === undefined) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', window.DiscordClasses[item][0] + ' not found in DiscordClassModules');
|
||||
return classname;
|
||||
}
|
||||
else if (window.DiscordClassModules[window.DiscordClasses[item][0]][window.DiscordClasses[item][1]] === undefined) {
|
||||
if (window.userId == "278543574059057154") console.warn(`%c[Preview]%c`, 'color:#3a71c1; font-weight:700;', '', window.DiscordClasses[item][1] + ' not found in ' + window.DiscordClasses[item][0] + ' in DiscordClassModules');
|
||||
return classname;
|
||||
}
|
||||
else return classname = window.DiscordClassModules[window.DiscordClasses[item][0]][window.DiscordClasses[item][1]];
|
||||
};
|
||||
window.BDV2 = {};
|
||||
window.BDV2.react = window.React;
|
||||
window.BDV2.reactDom = window.ReactDOM;
|
||||
window.BDV2.WebpackModules = {};
|
||||
window.BDV2.WebpackModules.find = window.WebModulesFind;
|
||||
window.BDV2.WebpackModules.findByUniqueProperties = window.WebModulesFindByProperties;
|
||||
window.BDV2.WebpackModules.findByDisplayName = window.WebModulesFindByName;
|
||||
window.BdApi = {};
|
||||
window.BdApi.getData = _ => {return {};};
|
||||
window.BdApi.loadData = _ => {return {};};
|
||||
window.BdApi.saveData = _ => {};
|
||||
window.BdApi.React = window.React;
|
||||
window.BdApi.ReactDOM = window.ReactDOM;
|
||||
window.BdApi.findModule = window.WebModulesFind;
|
||||
window.BdApi.findModuleByProps = window.WebModulesFindByProperties;
|
||||
}
|
Loading…
Reference in New Issue