Sven vor 1 Jahr
Ursprung
Commit
1ab7edb8e8
1 geänderte Dateien mit 26 neuen und 26 gelöschten Zeilen
  1. 26 26
      dist/BetterYTM.user.js

+ 26 - 26
dist/BetterYTM.user.js

@@ -481,7 +481,7 @@ const scriptInfo = {
     name: GM.info.script.name,
     version: GM.info.script.version,
     namespace: GM.info.script.namespace,
-    lastCommit: "c5345cd", // assert as generic string instead of literal
+    lastCommit: "4ee4ebf", // assert as generic string instead of literal
 };
 
 
@@ -972,8 +972,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../events */ "./src/events.ts");
 /* harmony import */ var _menu_menu_old__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./menu/menu_old */ "./src/features/menu/menu_old.ts");
 /* harmony import */ var _lyrics__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lyrics */ "./src/features/lyrics.ts");
-/* harmony import */ var _layout_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layout.css */ "./src/features/layout.css");
-/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! . */ "./src/features/index.ts");
+/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./index */ "./src/features/index.ts");
+/* harmony import */ var _layout_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./layout.css */ "./src/features/layout.css");
 var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
     return new (P || (P = Promise))(function (resolve, reject) {
@@ -1085,15 +1085,16 @@ function addConfigMenuOption(container) {
         const cfgOptItemElem = document.createElement("div");
         cfgOptItemElem.className = "bytm-cfg-menu-option-item";
         cfgOptItemElem.ariaLabel = cfgOptItemElem.title = "Click to open BetterYTM's configuration menu";
-        cfgOptItemElem.addEventListener("click", (e) => {
+        cfgOptItemElem.addEventListener("click", (e) => __awaiter(this, void 0, void 0, function* () {
             const settingsBtnElem = document.querySelector("ytmusic-nav-bar ytmusic-settings-button tp-yt-paper-icon-button");
             settingsBtnElem === null || settingsBtnElem === void 0 ? void 0 : settingsBtnElem.click();
             menuOpenAmt++;
+            yield (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.pauseFor)(100);
             if ((!e.shiftKey || logoExchanged) && menuOpenAmt !== 5)
                 (0,_menu_menu_old__WEBPACK_IMPORTED_MODULE_4__.openMenu)();
             if ((!logoExchanged && e.shiftKey) || menuOpenAmt === 5)
                 exchangeLogo();
-        });
+        }));
         const cfgOptIconElem = document.createElement("img");
         cfgOptIconElem.className = "bytm-cfg-menu-option-icon";
         cfgOptIconElem.src = yield (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getResourceUrl)("icon");
@@ -1110,13 +1111,13 @@ function addConfigMenuOption(container) {
 //#MARKER remove upgrade tab
 /** Removes the "Upgrade" / YT Music Premium tab from the sidebar */
 function removeUpgradeTab() {
-    (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.onSelector)("ytmusic-app-layout tp-yt-app-drawer #contentContainer #guide-content #items ytmusic-guide-entry-renderer:nth-child(4)", {
+    (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.onSelector)("ytmusic-app-layout tp-yt-app-drawer #contentContainer #guide-content #items ytmusic-guide-entry-renderer:nth-of-type(4)", {
         listener: (tabElemLarge) => {
             tabElemLarge.remove();
             (0,_utils__WEBPACK_IMPORTED_MODULE_2__.log)("Removed large upgrade tab");
         },
     });
-    (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.onSelector)("ytmusic-app-layout #mini-guide ytmusic-guide-renderer #sections ytmusic-guide-section-renderer[is-primary] #items ytmusic-guide-entry-renderer:nth-child(4)", {
+    (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.onSelector)("ytmusic-app-layout #mini-guide ytmusic-guide-renderer #sections ytmusic-guide-section-renderer[is-primary] #items ytmusic-guide-entry-renderer:nth-of-type(4)", {
         listener: (tabElemSmall) => {
             tabElemSmall.remove();
             (0,_utils__WEBPACK_IMPORTED_MODULE_2__.log)("Removed small upgrade tab");
@@ -1148,7 +1149,7 @@ function addVolumeSliderLabel(sliderElem, sliderCont) {
     labelElem.addEventListener("click", (e) => e.stopPropagation());
     const getLabelTexts = (slider) => {
         const labelShort = `${slider.value}%`;
-        const sensText = features.volumeSliderStep !== ___WEBPACK_IMPORTED_MODULE_7__.featInfo.volumeSliderStep["default"] ? ` (Sensitivity: ${slider.step}%)` : "";
+        const sensText = features.volumeSliderStep !== _index__WEBPACK_IMPORTED_MODULE_6__.featInfo.volumeSliderStep["default"] ? ` (Sensitivity: ${slider.step}%)` : "";
         const labelFull = `Volume: ${labelShort}${sensText}`;
         return { labelShort, labelFull };
     };
@@ -1226,22 +1227,14 @@ function initQueueButtons() {
 /**
  * Adds the buttons to each item in the current song queue.
  * Also observes for changes to add new buttons to new items in the queue.
- * TODO:FIXME: deleting an element from the queue shifts the lyrics buttons
  * @param queueItem The element with tagname `ytmusic-player-queue-item` to add queue buttons to
  */
 function addQueueButtons(queueItem) {
+    var _a;
     return __awaiter(this, void 0, void 0, function* () {
         //#SECTION general queue item stuff
         const queueBtnsCont = document.createElement("div");
         queueBtnsCont.className = "bytm-queue-btn-container";
-        const songInfo = queueItem.querySelector(".song-info");
-        if (!songInfo)
-            return false;
-        const [songEl, artistEl] = songInfo.querySelectorAll("yt-formatted-string");
-        const song = songEl.innerText;
-        const artist = artistEl.innerText;
-        if (!song || !artist)
-            return false;
         const lyricsIconUrl = yield (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getResourceUrl)("lyrics");
         const deleteIconUrl = yield (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getResourceUrl)("delete");
         //#SECTION lyrics btn
@@ -1253,6 +1246,14 @@ function addQueueButtons(queueItem) {
             lyricsBtnElem.style.pointerEvents = "initial";
             lyricsBtnElem.addEventListener("click", (e) => __awaiter(this, void 0, void 0, function* () {
                 e.stopPropagation();
+                const songInfo = queueItem.querySelector(".song-info");
+                if (!songInfo)
+                    return false;
+                const [songEl, artistEl] = songInfo.querySelectorAll("yt-formatted-string");
+                const song = songEl === null || songEl === void 0 ? void 0 : songEl.innerText;
+                const artist = artistEl === null || artistEl === void 0 ? void 0 : artistEl.innerText;
+                if (!song || !artist)
+                    return false;
                 let lyricsUrl;
                 const artistsSan = (0,_lyrics__WEBPACK_IMPORTED_MODULE_5__.sanitizeArtists)(artist);
                 const songSan = (0,_lyrics__WEBPACK_IMPORTED_MODULE_5__.sanitizeSong)(song);
@@ -1307,15 +1308,14 @@ function addQueueButtons(queueItem) {
                     const dotsBtnElem = queueItem.querySelector("ytmusic-menu-renderer yt-button-shape button");
                     if (queuePopupCont)
                         queuePopupCont.setAttribute("data-bytm-hidden", "true");
-                    dotsBtnElem.click();
-                    yield (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.pauseFor)(25);
+                    dotsBtnElem === null || dotsBtnElem === void 0 ? void 0 : dotsBtnElem.click();
+                    yield (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.pauseFor)(20);
                     queuePopupCont = document.querySelector("ytmusic-app ytmusic-popup-container tp-yt-iron-dropdown");
-                    if (!queuePopupCont.hasAttribute("data-bytm-hidden"))
-                        queuePopupCont.setAttribute("data-bytm-hidden", "true");
+                    queuePopupCont === null || queuePopupCont === void 0 ? void 0 : queuePopupCont.setAttribute("data-bytm-hidden", "true");
                     // a little bit janky and unreliable but the only way afaik
-                    const removeFromQueueBtn = queuePopupCont.querySelector("tp-yt-paper-listbox *[role=option]:nth-child(7)");
-                    yield (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.pauseFor)(20);
-                    removeFromQueueBtn.click();
+                    const removeFromQueueBtn = queuePopupCont === null || queuePopupCont === void 0 ? void 0 : queuePopupCont.querySelector("tp-yt-paper-listbox ytmusic-menu-service-item-renderer:nth-of-type(3)");
+                    yield (0,_sv443_network_userutils__WEBPACK_IMPORTED_MODULE_0__.pauseFor)(10);
+                    removeFromQueueBtn === null || removeFromQueueBtn === void 0 ? void 0 : removeFromQueueBtn.click();
                 }
                 catch (err) {
                     (0,_utils__WEBPACK_IMPORTED_MODULE_2__.error)("Couldn't remove song from queue due to error:", err);
@@ -1332,7 +1332,7 @@ function addQueueButtons(queueItem) {
         //#SECTION append elements to DOM
         queueBtnsCont.appendChild(lyricsBtnElem);
         queueBtnsCont.appendChild(deleteBtnElem);
-        songInfo.appendChild(queueBtnsCont);
+        (_a = queueItem.querySelector(".song-info")) === null || _a === void 0 ? void 0 : _a.appendChild(queueBtnsCont);
         queueItem.classList.add("bytm-has-queue-btns");
         return true;
     });
@@ -2932,7 +2932,7 @@ yt-multi-page-menu-section-renderer.ytd-multi-page-menu-renderer {
 .side-panel.modular ytmusic-player-queue-item[play-button-state="loading"] .bytm-queue-btn-container,
 .side-panel.modular ytmusic-player-queue-item[play-button-state="playing"] .bytm-queue-btn-container,
 .side-panel.modular ytmusic-player-queue-item[play-button-state="paused"] .bytm-queue-btn-container {
-  /* using a var() is not viable since the nesting changes the actual value of the variable */
+  /* using a var() with predefined value from YTM is not viable since the nesting changes the actual value of the variable */
   background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(29, 29, 29, 1) 15%);
 }