OpenAsar/src/mainWindowInject.js

79 lines
2.1 KiB
JavaScript
Raw Normal View History

2021-12-26 14:06:10 +00:00
let lastBgPrimary = '';
2021-12-26 17:47:04 +00:00
const themesync = async () => {
const getVar = (name, el = document.body) => el && (getComputedStyle(el).getPropertyValue(name) || getVar(name, el.parentElement))?.trim();
const bgPrimary = getVar('--background-primary');
if (!bgPrimary || bgPrimary === '#36393f' || bgPrimary === lastBgPrimary) return; // Default primary bg or same as last
lastBgPrimary = bgPrimary;
2021-12-16 16:52:25 +00:00
const vars = [ '--background-primary', '--background-secondary', '--brand-experiment', '--header-primary', '--text-muted' ];
let cached = await DiscordNative.userDataCache.getCached() || {};
const value = `body { ${vars.reduce((acc, x) => acc += `${x}: ${getVar(x)}; `, '')} }`;
const pastValue = cached['openasarSplashCSS'];
2021-12-16 16:52:25 +00:00
cached['openasarSplashCSS'] = value;
if (value !== pastValue) DiscordNative.userDataCache.cacheUserData(JSON.stringify(cached));
2021-12-16 16:52:25 +00:00
};
setInterval(() => {
try {
themesync();
} catch (e) { }
}, 5000);
2021-12-26 17:47:04 +00:00
2021-12-16 16:52:25 +00:00
2021-12-18 18:48:04 +00:00
const css = `
[class^="socialLinks-"] + [class^="info-"] [class^="colorMuted-"]:nth-last-child(2)::after {
content: " | OpenAsar <oa_version_hash>";
2021-12-18 18:48:04 +00:00
display: inline;
text-transform: none;
}
[class^="socialLinks-"] + [class^="info-"] {
2021-12-18 18:48:04 +00:00
padding-right: 0;
}
2021-12-26 17:47:04 +00:00
[class^="vertical-"] > div[style="display: flex; justify-content: space-between;"] > div > [class^="description-"] {
2021-12-26 17:47:04 +00:00
white-space: pre-wrap;
overflow-wrap: anywhere;
}
2021-12-18 18:48:04 +00:00
`;
2021-12-18 18:48:04 +00:00
const el = document.createElement('style');
el.appendChild(document.createTextNode(css));
2021-12-26 17:47:04 +00:00
document.body.appendChild(el);
const injectGMSettings = async () => {
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
await sleep(3000);
if (!window.goosemod) return;
2021-12-26 17:47:04 +00:00
goosemod.settings.items.unshift(
['item', 'OpenAsar', ['',
{
type: 'header',
text: 'Info'
},
{
type: 'text',
text: 'Version',
subtext: 'Channel: <oa_version_channel>\nHash: <oa_version_hash>'
},
{
type: 'text',
text: 'Cmd',
subtext: 'Preset: <oa_cmd_preset>\nCmd: <oa_cmd_full>'
}
], undefined, false],
['separator']
)
};
2022-01-19 11:19:09 +00:00
injectGMSettings();
window.openasar = {};