From 3be14f637ba2a739c3e6488db928134fc521a8c7 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 16:31:32 +0100 Subject: [PATCH 01/15] Update mainWindow.js --- src/mainWindow.js | 67 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 20 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index f9c23821f..5c3541aa1 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -26,32 +26,59 @@ const themesync = async () => { }; // Settings injection -setInterval(() => { - const versionInfo = document.querySelector('[class*="sidebar"] [class*="compactInfo"]'); - if (!versionInfo || document.getElementById('openasar-ver')) return; - - const oaVersionInfo = versionInfo.cloneNode(true); - const oaVersion = oaVersionInfo.children[0]; - oaVersion.id = 'openasar-ver'; - oaVersion.textContent = 'OpenAsar ()'; - oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); +const injectSettings = () => { + const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); + if (!sidebar) return; + + // Version info + if (!document.getElementById('openasar-ver')) { + const footer = sidebar.lastElementChild; + const versionInfo = footer?.firstElementChild; + + if (versionInfo) { + const oaVersionInfo = versionInfo.cloneNode(true); + const oaVersion = oaVersionInfo.firstElementChild ?? oaVersionInfo; + + oaVersion.id = 'openasar-ver'; + oaVersion.textContent = 'OpenAsar ()'; + oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + + oaVersionInfo.textContent = ''; + oaVersionInfo.appendChild(oaVersion); + footer.insertAdjacentElement('beforebegin', oaVersionInfo); + } + } + + // Sidebar entry + if (document.getElementById('openasar-item')) return; - oaVersionInfo.textContent = ''; - oaVersionInfo.appendChild(oaVersion); - versionInfo.parentElement.parentElement.lastElementChild.insertAdjacentElement('beforebegin', oaVersionInfo); + const advanced = document.querySelector('[data-settings-sidebar-item="advanced_panel"]'); + if (!advanced) return; - if (document.getElementById('openasar-item')) return; - let advanced = document.querySelector('[data-list-item-id="settings-sidebar___advanced_sidebar_item"]'); - if (!advanced) advanced = document.querySelector('[class*="sidebar"] [class*="nav"] > [class*="section"]:nth-child(3) > :last-child'); - if (!advanced) advanced = [...document.querySelectorAll('[class*="item"]')].find(x => x.textContent === 'Advanced'); - const oaSetting = advanced.cloneNode(true); - oaSetting.querySelector('[class*="text"]').textContent = 'OpenAsar'; oaSetting.id = 'openasar-item'; - oaSetting.onclick = oaVersion.onclick; + oaSetting.dataset.settingsSidebarItem = 'openasar_panel'; + + const item = oaSetting.querySelector('[role="listitem"]') ?? oaSetting; + const text = item.querySelector('span, div'); + + if (text) text.textContent = 'OpenAsar'; + item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); advanced.insertAdjacentElement('afterend', oaSetting); -}, 800); +}; + +(function observeSettings() { + const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); + if (!sidebar) return setTimeout(observeSettings, 500); + + new MutationObserver(injectSettings).observe(sidebar, { + childList: true, + subtree: true + }); + + injectSettings(); +})(); const injCSS = x => { const el = document.createElement('style'); From 1f718f9aa01b6992222faf51c0821a9ec20b9384 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 16:48:50 +0100 Subject: [PATCH 02/15] Update nightly.yml --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 93d393652..ed8bf3afc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -227,7 +227,7 @@ jobs: git push origin --delete nightly || true git tag nightly git push origin nightly - curl -L -o old.asar "https://github.com/GooseMod/OpenAsar/releases/download/nightly/app.asar" + curl -L -o old.asar "https://github.com/${{ github.repository }}/releases/download/nightly/app.asar" gh release delete ${{ env.VERSION }} -y || true gh release create ${{ env.VERSION }} -t "Nightly" -n "$(bash scripts/nightlyNotes.sh)" ${{ env.FILES }} env: From ec189a8d4150305a8b654f68ebde6c2fcce527ee Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:28:27 +0100 Subject: [PATCH 03/15] Update mainWindow.js --- src/mainWindow.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mainWindow.js b/src/mainWindow.js index 5c3541aa1..0ec40eedf 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -27,15 +27,18 @@ const themesync = async () => { // Settings injection const injectSettings = () => { + console.log("Injection settings triggered 1") const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); if (!sidebar) return; // Version info if (!document.getElementById('openasar-ver')) { + console.log("Injection settings triggered 2") const footer = sidebar.lastElementChild; const versionInfo = footer?.firstElementChild; if (versionInfo) { + console.log("Injection settings triggered 3") const oaVersionInfo = versionInfo.cloneNode(true); const oaVersion = oaVersionInfo.firstElementChild ?? oaVersionInfo; From f629367de2736ecee631d685b42be6fda62c0b84 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:59:17 +0100 Subject: [PATCH 04/15] Update mainWindow.js --- src/mainWindow.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 0ec40eedf..2947c3ffb 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -27,18 +27,18 @@ const themesync = async () => { // Settings injection const injectSettings = () => { - console.log("Injection settings triggered 1") + console.log("Injection settings triggered 1"); const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); if (!sidebar) return; // Version info if (!document.getElementById('openasar-ver')) { - console.log("Injection settings triggered 2") + console.log("Injection settings triggered 2"); const footer = sidebar.lastElementChild; const versionInfo = footer?.firstElementChild; if (versionInfo) { - console.log("Injection settings triggered 3") + console.log("Injection settings triggered 3"); const oaVersionInfo = versionInfo.cloneNode(true); const oaVersion = oaVersionInfo.firstElementChild ?? oaVersionInfo; From 596b4f53cff413657ccd26e56c3e88ffecfc5f49 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 19:00:50 +0100 Subject: [PATCH 05/15] Update mainWindow.js --- src/mainWindow.js | 77 ++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 47 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 2947c3ffb..53fb4bb08 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -26,62 +26,45 @@ const themesync = async () => { }; // Settings injection -const injectSettings = () => { - console.log("Injection settings triggered 1"); - const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); - if (!sidebar) return; - - // Version info - if (!document.getElementById('openasar-ver')) { - console.log("Injection settings triggered 2"); - const footer = sidebar.lastElementChild; - const versionInfo = footer?.firstElementChild; - - if (versionInfo) { - console.log("Injection settings triggered 3"); - const oaVersionInfo = versionInfo.cloneNode(true); - const oaVersion = oaVersionInfo.firstElementChild ?? oaVersionInfo; - - oaVersion.id = 'openasar-ver'; - oaVersion.textContent = 'OpenAsar ()'; - oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); - - oaVersionInfo.textContent = ''; - oaVersionInfo.appendChild(oaVersion); - footer.insertAdjacentElement('beforebegin', oaVersionInfo); - } - } - - // Sidebar entry +setInterval(() => { + console.log("[OpenASAR] L30: Début de setInterval"); + const versionInfo = document.querySelector('[class*="sidebar"] [class*="compactInfo"]'); + if (!versionInfo || document.getElementById('openasar-ver')) return; + + console.log("[OpenASAR] L34: versionInfo existe"); + + const oaVersionInfo = versionInfo.cloneNode(true); + const oaVersion = oaVersionInfo.children[0]; + oaVersion.id = 'openasar-ver'; + oaVersion.textContent = 'OpenAsar ()'; + oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + + oaVersionInfo.textContent = ''; + oaVersionInfo.appendChild(oaVersion); + versionInfo.parentElement.parentElement.lastElementChild.insertAdjacentElement('beforebegin', oaVersionInfo); + + console.log("[OpenASAR] L46: Injection versionInfo terminée"); + if (document.getElementById('openasar-item')) return; - const advanced = document.querySelector('[data-settings-sidebar-item="advanced_panel"]'); - if (!advanced) return; + console.log("[OpenASAR] L50: openasar-item n'existe pas"); - const oaSetting = advanced.cloneNode(true); - oaSetting.id = 'openasar-item'; - oaSetting.dataset.settingsSidebarItem = 'openasar_panel'; + let advanced = document.querySelector('[data-list-item-id="settings-sidebar___advanced_sidebar_item"]'); + if (!advanced) advanced = document.querySelector('[class*="sidebar"] [class*="nav"] > [class*="section"]:nth-child(3) > :last-child'); + if (!advanced) advanced = [...document.querySelectorAll('[class*="item"]')].find(x => x.textContent === 'Advanced'); - const item = oaSetting.querySelector('[role="listitem"]') ?? oaSetting; - const text = item.querySelector('span, div'); + console.log("[OpenASAR] L56: advanced= ${advanced}"); - if (text) text.textContent = 'OpenAsar'; - item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + const oaSetting = advanced.cloneNode(true); + oaSetting.querySelector('[class*="text"]').textContent = 'OpenAsar'; + oaSetting.id = 'openasar-item'; + oaSetting.onclick = oaVersion.onclick; advanced.insertAdjacentElement('afterend', oaSetting); -}; - -(function observeSettings() { - const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); - if (!sidebar) return setTimeout(observeSettings, 500); - new MutationObserver(injectSettings).observe(sidebar, { - childList: true, - subtree: true - }); + console.log("[OpenASAR] L65: Injection itemSetting terminée"); - injectSettings(); -})(); +}, 800); const injCSS = x => { const el = document.createElement('style'); From 0df9571f0882b37c0a1b81af988b17c678368462 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 19:07:11 +0100 Subject: [PATCH 06/15] Update mainWindow.js --- src/mainWindow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 53fb4bb08..66baeb21a 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -28,7 +28,7 @@ const themesync = async () => { // Settings injection setInterval(() => { console.log("[OpenASAR] L30: Début de setInterval"); - const versionInfo = document.querySelector('[class*="sidebar"] [class*="compactInfo"]'); + const versionInfo = document.querySelector('[class*="sidebar"] :where([class*="compactInfo"], .bd-version-info)'); if (!versionInfo || document.getElementById('openasar-ver')) return; console.log("[OpenASAR] L34: versionInfo existe"); From 7efead66e9ba5a12f699ac74c1140d76627eccf3 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 21:26:40 +0100 Subject: [PATCH 07/15] Update mainWindow.js --- src/mainWindow.js | 75 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 66baeb21a..b7b002e73 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -26,45 +26,72 @@ const themesync = async () => { }; // Settings injection -setInterval(() => { - console.log("[OpenASAR] L30: Début de setInterval"); - const versionInfo = document.querySelector('[class*="sidebar"] :where([class*="compactInfo"], .bd-version-info)'); - if (!versionInfo || document.getElementById('openasar-ver')) return; +const injectSettings = () => { + const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); + if (!sidebar) return; - console.log("[OpenASAR] L34: versionInfo existe"); + console.log("[OpenASAR] L33: sidebar trouvé"); - const oaVersionInfo = versionInfo.cloneNode(true); - const oaVersion = oaVersionInfo.children[0]; - oaVersion.id = 'openasar-ver'; - oaVersion.textContent = 'OpenAsar ()'; - oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + // Version info + if (!document.getElementById('openasar-ver')) { + const footer = sidebar.lastElementChild; + const versionInfo = footer?.firstElementChild; - oaVersionInfo.textContent = ''; - oaVersionInfo.appendChild(oaVersion); - versionInfo.parentElement.parentElement.lastElementChild.insertAdjacentElement('beforebegin', oaVersionInfo); + if (versionInfo) { - console.log("[OpenASAR] L46: Injection versionInfo terminée"); + console.log("[OpenASAR] L41: versionInfo existe : " versionInfo); - if (document.getElementById('openasar-item')) return; + const oaVersionInfo = versionInfo.cloneNode(true); + const oaVersion = oaVersionInfo.firstElementChild ?? oaVersionInfo; + + oaVersion.id = 'openasar-ver'; + oaVersion.textContent = 'OpenAsar ()'; + oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + + oaVersionInfo.textContent = ''; + oaVersionInfo.appendChild(oaVersion); + footer.insertAdjacentElement('beforebegin', oaVersionInfo); - console.log("[OpenASAR] L50: openasar-item n'existe pas"); + console.log("[OpenASAR] L55: versionInfo injecté"); + + } + } + + // Sidebar entry + if (document.getElementById('openasar-item')) return; - let advanced = document.querySelector('[data-list-item-id="settings-sidebar___advanced_sidebar_item"]'); - if (!advanced) advanced = document.querySelector('[class*="sidebar"] [class*="nav"] > [class*="section"]:nth-child(3) > :last-child'); - if (!advanced) advanced = [...document.querySelectorAll('[class*="item"]')].find(x => x.textContent === 'Advanced'); + const advanced = document.querySelector('[data-settings-sidebar-item="advanced_panel"]'); + if (!advanced) return; - console.log("[OpenASAR] L56: advanced= ${advanced}"); + console.log("[OpenASAR] L66: Advanced trouvé"); const oaSetting = advanced.cloneNode(true); - oaSetting.querySelector('[class*="text"]').textContent = 'OpenAsar'; oaSetting.id = 'openasar-item'; - oaSetting.onclick = oaVersion.onclick; + oaSetting.dataset.settingsSidebarItem = 'openasar_panel'; + + const item = oaSetting.querySelector('[role="listitem"]') ?? oaSetting; + const text = item.querySelector('span, div'); + + if (text) text.textContent = 'OpenAsar'; + item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); advanced.insertAdjacentElement('afterend', oaSetting); - console.log("[OpenASAR] L65: Injection itemSetting terminée"); + console.log("[OpenASAR] L80: OpenAsar injecté"); + +}; + +(function observeSettings() { + const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); + if (!sidebar) return setTimeout(observeSettings, 500); + + new MutationObserver(injectSettings).observe(sidebar, { + childList: true, + subtree: true + }); -}, 800); + injectSettings(); +})(); const injCSS = x => { const el = document.createElement('style'); From 3db7b1c5b3a14f33a09cd4d625cdc4079d117f3a Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Thu, 29 Jan 2026 21:40:08 +0100 Subject: [PATCH 08/15] Update mainWindow.js --- src/mainWindow.js | 106 ++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 59 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index b7b002e73..1c9c5f329 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -26,72 +26,60 @@ const themesync = async () => { }; // Settings injection -const injectSettings = () => { - const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); - if (!sidebar) return; - - console.log("[OpenASAR] L33: sidebar trouvé"); - - // Version info - if (!document.getElementById('openasar-ver')) { - const footer = sidebar.lastElementChild; - const versionInfo = footer?.firstElementChild; - - if (versionInfo) { - - console.log("[OpenASAR] L41: versionInfo existe : " versionInfo); +const injectOpenAsar = () => { + if (document.getElementById('openasar-ver')) return true; - const oaVersionInfo = versionInfo.cloneNode(true); - const oaVersion = oaVersionInfo.firstElementChild ?? oaVersionInfo; - - oaVersion.id = 'openasar-ver'; - oaVersion.textContent = 'OpenAsar ()'; - oaVersion.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); - - oaVersionInfo.textContent = ''; - oaVersionInfo.appendChild(oaVersion); - footer.insertAdjacentElement('beforebegin', oaVersionInfo); - - console.log("[OpenASAR] L55: versionInfo injecté"); - - } + const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); + if (!sidebar) return false; + + // Inject version info before links + const links = sidebar.querySelector('div[class*="links"]'); + if (links) { + const versionDiv = document.createElement('div'); + versionDiv.className = 'clickable__2debe compact__2debe'; + versionDiv.style.cssText = 'cursor: pointer; margin-bottom: 8px;'; + + const versionSpan = document.createElement('span'); + versionSpan.id = 'openasar-ver'; + versionSpan.className = 'text-xxs/normal_cf4812'; + versionSpan.setAttribute('data-text-variant', 'text-xxs/normal'); + versionSpan.style.color = 'var(--text-muted)'; + versionSpan.textContent = 'OpenAsar ()'; + versionSpan.onclick = () => window.open('https://openasar.dev', '_blank'); + + versionDiv.appendChild(versionSpan); + links.parentElement.insertBefore(versionDiv, links); + console.log('[OpenAsar] Version info injected'); } - // Sidebar entry - if (document.getElementById('openasar-item')) return; - - const advanced = document.querySelector('[data-settings-sidebar-item="advanced_panel"]'); - if (!advanced) return; - - console.log("[OpenASAR] L66: Advanced trouvé"); - - const oaSetting = advanced.cloneNode(true); - oaSetting.id = 'openasar-item'; - oaSetting.dataset.settingsSidebarItem = 'openasar_panel'; - - const item = oaSetting.querySelector('[role="listitem"]') ?? oaSetting; - const text = item.querySelector('span, div'); - - if (text) text.textContent = 'OpenAsar'; - item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); - - advanced.insertAdjacentElement('afterend', oaSetting); - - console.log("[OpenASAR] L80: OpenAsar injecté"); + if (document.getElementById('openasar-item')) return true; + + // Inject menu item after Advanced + let advanced = sidebar.querySelector('[data-list-item-id*="advanced"]') + || sidebar.querySelector('[data-settings-sidebar-item="advanced_panel"]')?.querySelector('[class*="item"]') + || (() => { + const sections = sidebar.querySelectorAll('[class*="section"]'); + return sections[2]?.querySelectorAll('[class*="item"]')[sections[2]?.querySelectorAll('[class*="item"]').length - 1]; + })(); + + if (advanced) { + const item = advanced.cloneNode(true); + item.id = 'openasar-item'; + item.querySelector('[class*="text"]').textContent = 'OpenAsar'; + item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + advanced.insertAdjacentElement('afterend', item); + console.log('[OpenAsar] Menu item injected'); + } + return true; }; -(function observeSettings() { - const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); - if (!sidebar) return setTimeout(observeSettings, 500); - - new MutationObserver(injectSettings).observe(sidebar, { - childList: true, - subtree: true - }); +const observer = new MutationObserver(() => { + if (injectOpenAsar()) observer.disconnect(); +}); - injectSettings(); -})(); +observer.observe(document.body, { childList: true, subtree: true }); +setTimeout(() => { if (injectOpenAsar()) observer.disconnect(); }, 500); const injCSS = x => { const el = document.createElement('style'); From 105b37a1d52efa2229f623a512e2e7f413d94ef5 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Fri, 30 Jan 2026 22:51:34 +0100 Subject: [PATCH 09/15] Update mainWindow.js --- src/mainWindow.js | 87 +++++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 41 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 1c9c5f329..a4fd11d40 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -27,59 +27,64 @@ const themesync = async () => { // Settings injection const injectOpenAsar = () => { - if (document.getElementById('openasar-ver')) return true; + if (document.getElementById('openasar-ver') && document.getElementById('openasar-item')) return; const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); - if (!sidebar) return false; + if (!sidebar) return; // Inject version info before links - const links = sidebar.querySelector('div[class*="links"]'); - if (links) { - const versionDiv = document.createElement('div'); - versionDiv.className = 'clickable__2debe compact__2debe'; - versionDiv.style.cssText = 'cursor: pointer; margin-bottom: 8px;'; + if (!document.getElementById('openasar-ver')) { + const versionInfo = sidebar.querySelector('[class*="compactInfo"]'); + const links = sidebar.querySelector('div[class*="links"]'); - const versionSpan = document.createElement('span'); - versionSpan.id = 'openasar-ver'; - versionSpan.className = 'text-xxs/normal_cf4812'; - versionSpan.setAttribute('data-text-variant', 'text-xxs/normal'); - versionSpan.style.color = 'var(--text-muted)'; - versionSpan.textContent = 'OpenAsar ()'; - versionSpan.onclick = () => window.open('https://openasar.dev', '_blank'); - - versionDiv.appendChild(versionSpan); - links.parentElement.insertBefore(versionDiv, links); - console.log('[OpenAsar] Version info injected'); + if (links) { + let oaVersionInfo, oaVersion; + + if (versionInfo) { + // Clone Discord native versionInfo + oaVersionInfo = versionInfo.cloneNode(true); + oaVersion = oaVersionInfo.children[0]; + } else { + // Fallback: create minimal element + oaVersionInfo = document.createElement('div'); + oaVersion = document.createElement('span'); + oaVersionInfo.appendChild(oaVersion); + } + + oaVersion.id = 'openasar-ver'; + oaVersion.textContent = 'OpenAsar ()'; + oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); + + oaVersionInfo.textContent = ''; + oaVersionInfo.appendChild(oaVersion); + links.parentElement.insertBefore(oaVersionInfo, links); + console.log('[OpenAsar] Version info injected'); + } } - if (document.getElementById('openasar-item')) return true; - // Inject menu item after Advanced - let advanced = sidebar.querySelector('[data-list-item-id*="advanced"]') - || sidebar.querySelector('[data-settings-sidebar-item="advanced_panel"]')?.querySelector('[class*="item"]') - || (() => { - const sections = sidebar.querySelectorAll('[class*="section"]'); - return sections[2]?.querySelectorAll('[class*="item"]')[sections[2]?.querySelectorAll('[class*="item"]').length - 1]; - })(); - - if (advanced) { - const item = advanced.cloneNode(true); - item.id = 'openasar-item'; - item.querySelector('[class*="text"]').textContent = 'OpenAsar'; - item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); - advanced.insertAdjacentElement('afterend', item); - console.log('[OpenAsar] Menu item injected'); + if (!document.getElementById('openasar-item')) { + let advanced = sidebar.querySelector('[data-list-item-id*="advanced"]') + || sidebar.querySelector('[data-settings-sidebar-item="advanced_panel"]')?.querySelector('[class*="item"]') + || (() => { + const sections = sidebar.querySelectorAll('[class*="section"]'); + return sections[2]?.querySelectorAll('[class*="item"]')[sections[2]?.querySelectorAll('[class*="item"]').length - 1]; + })(); + + if (advanced) { + const item = advanced.cloneNode(true); + item.id = 'openasar-item'; + item.querySelector('[class*="text"]').textContent = 'OpenAsar'; + item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); + advanced.insertAdjacentElement('afterend', item); + console.log('[OpenAsar] Menu item injected'); + } } - - return true; }; -const observer = new MutationObserver(() => { - if (injectOpenAsar()) observer.disconnect(); -}); - +const observer = new MutationObserver(() => injectOpenAsar()); observer.observe(document.body, { childList: true, subtree: true }); -setTimeout(() => { if (injectOpenAsar()) observer.disconnect(); }, 500); +setTimeout(injectOpenAsar, 500); const injCSS = x => { const el = document.createElement('style'); From 2b3e58f142c00b60d53f007fd709b26681051a5b Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Fri, 30 Jan 2026 23:23:02 +0100 Subject: [PATCH 10/15] Update mainWindow.js --- src/mainWindow.js | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index a4fd11d40..ad1657499 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -34,30 +34,15 @@ const injectOpenAsar = () => { // Inject version info before links if (!document.getElementById('openasar-ver')) { - const versionInfo = sidebar.querySelector('[class*="compactInfo"]'); const links = sidebar.querySelector('div[class*="links"]'); if (links) { - let oaVersionInfo, oaVersion; - - if (versionInfo) { - // Clone Discord native versionInfo - oaVersionInfo = versionInfo.cloneNode(true); - oaVersion = oaVersionInfo.children[0]; - } else { - // Fallback: create minimal element - oaVersionInfo = document.createElement('div'); - oaVersion = document.createElement('span'); - oaVersionInfo.appendChild(oaVersion); - } - + const oaVersion = document.createElement('span'); oaVersion.id = 'openasar-ver'; oaVersion.textContent = 'OpenAsar ()'; oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); - oaVersionInfo.textContent = ''; - oaVersionInfo.appendChild(oaVersion); - links.parentElement.insertBefore(oaVersionInfo, links); + links.parentElement.insertBefore(oaVersion, links); console.log('[OpenAsar] Version info injected'); } } From 35a3225bb2a13f819c14b00531565beb855336fb Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Sat, 31 Jan 2026 00:04:11 +0100 Subject: [PATCH 11/15] Update mainWindow.js --- src/mainWindow.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index ad1657499..4b26b4755 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -32,17 +32,20 @@ const injectOpenAsar = () => { const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); if (!sidebar) return; - // Inject version info before links + // Inject version info in same container as Discord version if (!document.getElementById('openasar-ver')) { const links = sidebar.querySelector('div[class*="links"]'); - if (links) { - const oaVersion = document.createElement('span'); + if (links && links.parentElement) { + const container = links.parentElement; + + const oaVersion = document.createElement('div'); oaVersion.id = 'openasar-ver'; oaVersion.textContent = 'OpenAsar ()'; oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); + oaVersion.style.cssText = 'padding: 6px 10px; cursor: pointer; font-size: 12px; color: var(--text-muted);'; - links.parentElement.insertBefore(oaVersion, links); + container.insertBefore(oaVersion, links); console.log('[OpenAsar] Version info injected'); } } From 5b0f8531719c1d847505846648e8975e9c8acfdc Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Sat, 31 Jan 2026 00:36:42 +0100 Subject: [PATCH 12/15] Update mainWindow.js --- src/mainWindow.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 4b26b4755..052a9e629 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -32,21 +32,24 @@ const injectOpenAsar = () => { const sidebar = document.querySelector('[data-list-id="settings-sidebar"]'); if (!sidebar) return; - // Inject version info in same container as Discord version + // Inject version info inside clickable div if (!document.getElementById('openasar-ver')) { const links = sidebar.querySelector('div[class*="links"]'); if (links && links.parentElement) { const container = links.parentElement; + const clickableDiv = container.firstElementChild; - const oaVersion = document.createElement('div'); - oaVersion.id = 'openasar-ver'; - oaVersion.textContent = 'OpenAsar ()'; - oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); - oaVersion.style.cssText = 'padding: 6px 10px; cursor: pointer; font-size: 12px; color: var(--text-muted);'; - - container.insertBefore(oaVersion, links); - console.log('[OpenAsar] Version info injected'); + if (clickableDiv) { + const oaVersion = document.createElement('div'); + oaVersion.id = 'openasar-ver'; + oaVersion.textContent = 'OpenAsar ()'; + oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); + oaVersion.style.cssText = 'cursor: pointer;'; + + clickableDiv.appendChild(oaVersion); + console.log('[OpenAsar] Version info injected'); + } } } From f1599782004de1e2fbd19e6e243e6f9abf654ecf Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:24:56 +0100 Subject: [PATCH 13/15] Update mainWindow.js --- src/mainWindow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 052a9e629..e2146fd11 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -45,7 +45,7 @@ const injectOpenAsar = () => { oaVersion.id = 'openasar-ver'; oaVersion.textContent = 'OpenAsar ()'; oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); - oaVersion.style.cssText = 'cursor: pointer;'; + oaVersion.style.cssText = 'cursor: pointer; font-size: 12px; color: var(--text-muted);'; clickableDiv.appendChild(oaVersion); console.log('[OpenAsar] Version info injected'); From 7d52416463b71d063d17c44e8f751fe998f7907e Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Sat, 31 Jan 2026 21:56:24 +0100 Subject: [PATCH 14/15] Update mainWindow.js --- src/mainWindow.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index e2146fd11..7d84cf202 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -43,9 +43,10 @@ const injectOpenAsar = () => { if (clickableDiv) { const oaVersion = document.createElement('div'); oaVersion.id = 'openasar-ver'; + oaVersion.className = 'text-xxs/normal_cf4812'; oaVersion.textContent = 'OpenAsar ()'; oaVersion.onclick = () => window.open('https://openasar.dev', '_blank'); - oaVersion.style.cssText = 'cursor: pointer; font-size: 12px; color: var(--text-muted);'; + oaVersion.style.color = 'var(--text-muted)'; clickableDiv.appendChild(oaVersion); console.log('[OpenAsar] Version info injected'); From a4b7af8f3d4696f17e3252de8dc5d7004872f040 Mon Sep 17 00:00:00 2001 From: TirOFlanc <56934692+TirOFlanc@users.noreply.github.com> Date: Sat, 31 Jan 2026 22:12:44 +0100 Subject: [PATCH 15/15] Update mainWindow.js --- src/mainWindow.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/mainWindow.js b/src/mainWindow.js index 7d84cf202..285bb4eef 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -49,7 +49,6 @@ const injectOpenAsar = () => { oaVersion.style.color = 'var(--text-muted)'; clickableDiv.appendChild(oaVersion); - console.log('[OpenAsar] Version info injected'); } } } @@ -69,7 +68,6 @@ const injectOpenAsar = () => { item.querySelector('[class*="text"]').textContent = 'OpenAsar'; item.onclick = () => DiscordNative.ipc.send('DISCORD_UPDATED_QUOTES', 'o'); advanced.insertAdjacentElement('afterend', item); - console.log('[OpenAsar] Menu item injected'); } } };