From 2d9809ad3189a286e6d3c5335794435151f601c4 Mon Sep 17 00:00:00 2001 From: Anarios Date: Fri, 5 Aug 2022 22:57:27 +0200 Subject: New layout fix --- Extensions/combined/manifest-chrome.json | 2 +- Extensions/combined/manifest-firefox.json | 2 +- Extensions/combined/src/buttons.js | 23 ++++++++++++++++++----- Extensions/combined/src/events.js | 11 +++++------ Extensions/combined/src/state.js | 22 ++++++++++++++-------- 5 files changed, 39 insertions(+), 21 deletions(-) diff --git a/Extensions/combined/manifest-chrome.json b/Extensions/combined/manifest-chrome.json index 95fe7e9..3e396a0 100644 --- a/Extensions/combined/manifest-chrome.json +++ b/Extensions/combined/manifest-chrome.json @@ -2,7 +2,7 @@ "name": "__MSG_extensionName__", "description": "__MSG_extensionDesc__", "default_locale": "en", - "version": "3.0.0.4", + "version": "3.0.0.5", "manifest_version": 3, "background": { "service_worker": "ryd.background.js" diff --git a/Extensions/combined/manifest-firefox.json b/Extensions/combined/manifest-firefox.json index 04f5162..efb42a4 100644 --- a/Extensions/combined/manifest-firefox.json +++ b/Extensions/combined/manifest-firefox.json @@ -2,7 +2,7 @@ "name": "__MSG_extensionName__", "description": "__MSG_extensionDesc__", "default_locale": "en", - "version": "3.0.0.4", + "version": "3.0.0.5", "manifest_version": 2, "background": { "scripts": ["ryd.background.js"] diff --git a/Extensions/combined/src/buttons.js b/Extensions/combined/src/buttons.js index 3b8cab4..6b344d9 100644 --- a/Extensions/combined/src/buttons.js +++ b/Extensions/combined/src/buttons.js @@ -33,7 +33,10 @@ function getButtons() { } function getLikeButton() { - return getButtons().children[0]; + return getButtons().children[0].tagName === + "YTD-SEGMENTED-LIKE-DISLIKE-BUTTON-RENDERER" + ? getButtons().children[0].children[0] + : getButtons().children[0]; } function getLikeTextContainer() { @@ -44,14 +47,24 @@ function getLikeTextContainer() { } function getDislikeButton() { - return getButtons().children[1]; + return getButtons().children[0].tagName === + "YTD-SEGMENTED-LIKE-DISLIKE-BUTTON-RENDERER" + ? getButtons().children[0].children[1] + : getButtons().children[1]; } function getDislikeTextContainer() { - return ( + let result = getDislikeButton().querySelector("#text") ?? - getDislikeButton().getElementsByTagName("yt-formatted-string")[0] - ); + getDislikeButton().getElementsByTagName("yt-formatted-string")[0]; + if (result == null) { + let textSpan = document.createElement("span"); + textSpan.id = "text"; + getDislikeButton().querySelector("button").appendChild(textSpan); + getDislikeButton().querySelector("button").style.width = "auto"; + result = getDislikeButton().querySelector("#text"); + } + return result; } function checkForSignInButton() { diff --git a/Extensions/combined/src/events.js b/Extensions/combined/src/events.js index 47d0bce..a7638dc 100644 --- a/Extensions/combined/src/events.js +++ b/Extensions/combined/src/events.js @@ -1,5 +1,5 @@ import { getBrowser, getVideoId, numberFormat, cLog } from "./utils"; -import { checkForSignInButton, getButtons } from "./buttons"; +import { checkForSignInButton, getButtons, getDislikeButton, getLikeButton } from './buttons'; import { NEUTRAL_STATE, LIKED_STATE, @@ -83,12 +83,11 @@ function dislikeClicked() { } function addLikeDislikeEventListener() { - const buttons = getButtons(); if (!window.returnDislikeButtonlistenersSet) { - buttons.children[0].addEventListener("click", likeClicked); - buttons.children[1].addEventListener("click", dislikeClicked); - buttons.children[0].addEventListener("touchstart", likeClicked); - buttons.children[1].addEventListener("touchstart", dislikeClicked); + getLikeButton().addEventListener("click", likeClicked); + getDislikeButton().addEventListener("click", dislikeClicked); + getLikeButton().addEventListener("touchstart", likeClicked); + getLikeButton().addEventListener("touchstart", dislikeClicked); window.returnDislikeButtonlistenersSet = true; } } diff --git a/Extensions/combined/src/state.js b/Extensions/combined/src/state.js index 24fa435..cda281b 100644 --- a/Extensions/combined/src/state.js +++ b/Extensions/combined/src/state.js @@ -97,7 +97,7 @@ function isLikesDisabled() { ); } return /^\D*$/.test( - getButtons().children[0].querySelector("#text").innerText + getButtons().children[0].innerText ); } @@ -158,16 +158,22 @@ function setDislikes(dislikesCount) { } function getLikeCountFromButton() { - if (isShorts()) { - //Youtube Shorts don't work with this query. It's not nessecary; we can skip it and still see the results. - //It should be possible to fix this function, but it's not critical to showing the dislike count. - return false; - } - let likesStr = getLikeButton() + try { + if (isShorts()) { + //Youtube Shorts don't work with this query. It's not nessecary; we can skip it and still see the results. + //It should be possible to fix this function, but it's not critical to showing the dislike count. + return false; + } + let likesStr = getLikeButton() .querySelector("yt-formatted-string#text") .getAttribute("aria-label") .replace(/\D/g, ""); - return likesStr.length > 0 ? parseInt(likesStr) : false; + return likesStr.length > 0 ? parseInt(likesStr) : false; + } + catch { + return false; + } + } function processResponse(response, storedData) { -- cgit v1.2.3