From 596c0d730c4c77b61452b66230d80531ad3af523 Mon Sep 17 00:00:00 2001 From: sh4dow Date: Mon, 1 Aug 2022 21:49:35 +0200 Subject: fix dislike text box not being found for some users --- Extensions/UserScript/Return Youtube Dislike.user.js | 19 +++++++++++++++++-- Extensions/combined/src/buttons.js | 17 ++++++++++++++++- Extensions/combined/src/state.js | 9 ++++----- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/Extensions/UserScript/Return Youtube Dislike.user.js b/Extensions/UserScript/Return Youtube Dislike.user.js index 253344c..c45efd1 100644 --- a/Extensions/UserScript/Return Youtube Dislike.user.js +++ b/Extensions/UserScript/Return Youtube Dislike.user.js @@ -94,10 +94,25 @@ function getLikeButton() { return getButtons().children[0]; } +function getLikeTextContainer() { + return ( + getLikeButton().querySelector("#text") ?? + getLikeButton().getElementsByTagName("yt-formatted-string")[0] + ); +} + function getDislikeButton() { return getButtons().children[1]; } +function getDislikeTextContainer() { + return ( + getDislikeButton().querySelector("#text") ?? + getDislikeButton().getElementsByTagName("yt-formatted-string")[0] + ); +} + + let mutationObserver = new Object(); if (isShorts() && mutationObserver.exists !== true) { @@ -197,7 +212,7 @@ function setLikes(likesCount) { likesCount; return; } - getButtons().children[0].querySelector("#text").innerText = likesCount; + getLikeTextContainer().innerText = likesCount; } function setDislikes(dislikesCount) { @@ -205,7 +220,7 @@ function setDislikes(dislikesCount) { mobileDislikes = dislikesCount; return; } - getButtons().children[1].querySelector("#text").innerText = dislikesCount; + getDislikeTextContainer().innerText = dislikesCount; } function getLikeCountFromButton() { diff --git a/Extensions/combined/src/buttons.js b/Extensions/combined/src/buttons.js index 95ba1c6..ffb6137 100644 --- a/Extensions/combined/src/buttons.js +++ b/Extensions/combined/src/buttons.js @@ -36,10 +36,25 @@ function getLikeButton() { return getButtons().children[0]; } +function getLikeTextContainer() { + return ( + getLikeButton().querySelector("#text") ?? + getLikeButton().getElementsByTagName("yt-formatted-string")[0] + ); +} + function getDislikeButton() { return getButtons().children[1]; } +function getDislikeTextContainer() { + return ( + getDislikeButton().querySelector("#text") ?? + getDislikeButton().getElementsByTagName("yt-formatted-string")[0] + ); +} + + function checkForSignInButton() { if ( document.querySelector( @@ -52,4 +67,4 @@ function checkForSignInButton() { } } -export { getButtons, getLikeButton, getDislikeButton, checkForSignInButton }; +export { getButtons, getLikeButton, getDislikeButton, getLikeTextContainer, getDislikeTextContainer, checkForSignInButton }; diff --git a/Extensions/combined/src/state.js b/Extensions/combined/src/state.js index 73eb905..2f3a956 100644 --- a/Extensions/combined/src/state.js +++ b/Extensions/combined/src/state.js @@ -1,4 +1,4 @@ -import { getLikeButton, getDislikeButton, getButtons } from "./buttons"; +import { getLikeButton, getDislikeButton, getButtons, getLikeTextContainer, getDislikeTextContainer } from "./buttons"; import { createRateBar } from "./bar"; import { getBrowser, @@ -127,7 +127,7 @@ function getState(storedData) { //--- Sets The Likes And Dislikes Values ---// function setLikes(likesCount) { - getButtons().children[0].querySelector("#text").innerText = likesCount; + getLikeTextContainer().innerText = likesCount; } function setDislikes(dislikesCount) { @@ -138,7 +138,7 @@ function setDislikes(dislikesCount) { ).innerText = dislikesCount; return; } - getButtons().children[1].querySelector("#text").innerText = dislikesCount; + getDislikeTextContainer().innerText = dislikesCount; } else { cLog("likes count disabled by creator"); if (isMobile()) { @@ -147,8 +147,7 @@ function setDislikes(dislikesCount) { ).innerText = localize("TextLikesDisabled"); return; } - getButtons().children[1].querySelector("#text").innerText = - localize("TextLikesDisabled"); + getDislikeTextContainer().innerText = localize("TextLikesDisabled"); } } -- cgit v1.2.3