From ce4580605df07ae25eb4535508be2dd4415c55e5 Mon Sep 17 00:00:00 2001 From: Araxeus <78568641+Araxeus@users.noreply.github.com> Date: Fri, 15 Oct 2021 15:40:34 +0300 Subject: [PATCH 1/2] remove upgrade button + makes img unselectable --- menu.js | 8 ++++++++ preload.js | 5 +++++ youtube-music.css | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/menu.js b/menu.js index 72b2cc66..b179e188 100644 --- a/menu.js +++ b/menu.js @@ -76,6 +76,14 @@ const mainMenuTemplate = (win) => { config.set("options.resumeOnStart", item.checked); }, }, + { + label: "Remove upgrade button", + type: "checkbox", + checked: config.get("options.removeUpgradeButton"), + click: (item) => { + config.set("options.removeUpgradeButton", item.checked); + }, + }, ...(is.windows() || is.linux() ? [ { diff --git a/preload.js b/preload.js index 5a09c845..aa213071 100644 --- a/preload.js +++ b/preload.js @@ -38,6 +38,11 @@ document.addEventListener("DOMContentLoaded", () => { }); }); + // Remove upgrade button + if (config.get("options.removeUpgradeButton")) { + document.querySelector('[tab-id*="SPunlimited"]').style.display = "none"; + } + // inject song-info provider setupSongInfo(); diff --git a/youtube-music.css b/youtube-music.css index fe5eb326..67a74dc0 100644 --- a/youtube-music.css +++ b/youtube-music.css @@ -28,3 +28,9 @@ ytmusic-search-box.ytmusic-nav-bar { ytmusic-mealbar-promo-renderer { display: none !important; } + +/* Disable Image Selection */ +img { + -webkit-user-select: none; + user-select: none; +} From 38449f003affcdcd131b0ccaacebf420e1edbb76 Mon Sep 17 00:00:00 2001 From: Araxeus <78568641+Araxeus@users.noreply.github.com> Date: Sat, 23 Oct 2021 18:28:38 +0300 Subject: [PATCH 2/2] use apiLoad event --- preload.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/preload.js b/preload.js index aa213071..65e55300 100644 --- a/preload.js +++ b/preload.js @@ -10,6 +10,8 @@ const setupSongInfo = require("./providers/song-info-front"); const plugins = config.plugins.getEnabled(); +let api; + plugins.forEach(([plugin, options]) => { const preloadPath = path.join(__dirname, "plugins", plugin, "preload.js"); fileExists(preloadPath, () => { @@ -38,10 +40,8 @@ document.addEventListener("DOMContentLoaded", () => { }); }); - // Remove upgrade button - if (config.get("options.removeUpgradeButton")) { - document.querySelector('[tab-id*="SPunlimited"]').style.display = "none"; - } + // wait for complete load of youtube api + listenForApiLoad(); // inject song-info provider setupSongInfo(); @@ -56,3 +56,30 @@ document.addEventListener("DOMContentLoaded", () => { global.reload = () => remote.getCurrentWindow().webContents.loadURL(config.get("url")); }); + +function listenForApiLoad() { + api = document.querySelector('#movie_player'); + if (api) { + onApiLoaded(); + return; + } + + const observer = new MutationObserver(() => { + api = document.querySelector('#movie_player'); + if (api) { + observer.disconnect(); + onApiLoaded(); + } + }) + + observer.observe(document.documentElement, { childList: true, subtree: true }); +} + +function onApiLoaded() { + document.dispatchEvent(new CustomEvent('apiLoaded', { detail: api })); + + // Remove upgrade button + if (config.get("options.removeUpgradeButton")) { + document.querySelector('ytmusic-pivot-bar-item-renderer[tab-id="SPunlimited"]').style.display = "none"; + } +}