Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Anarios/return-youtube-dislike.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhyperstown <experynt@gmail.com>2022-10-18 01:39:21 +0300
committerhyperstown <experynt@gmail.com>2022-10-18 01:39:21 +0300
commit87e922d41fb2e801df97d6441de330b9512b639d (patch)
treea23b25331d86a90180f71d26a4aa97d747608c08
parentde1831f2c74032f8ccfe42a8eb174088363e011f (diff)
fix like reformat option to work with new design
-rw-r--r--Extensions/UserScript/Return Youtube Dislike.user.js27
-rw-r--r--Extensions/combined/src/buttons.js5
-rw-r--r--Extensions/combined/src/state.js14
3 files changed, 30 insertions, 16 deletions
diff --git a/Extensions/UserScript/Return Youtube Dislike.user.js b/Extensions/UserScript/Return Youtube Dislike.user.js
index 4dd048c..f3062fa 100644
--- a/Extensions/UserScript/Return Youtube Dislike.user.js
+++ b/Extensions/UserScript/Return Youtube Dislike.user.js
@@ -100,7 +100,8 @@ function getLikeButton() {
function getLikeTextContainer() {
return (
getLikeButton().querySelector("#text") ??
- getLikeButton().getElementsByTagName("yt-formatted-string")[0]
+ getLikeButton().getElementsByTagName("yt-formatted-string")[0] ??
+ getLikeButton().querySelector("span[role='text']")
);
}
@@ -227,16 +228,24 @@ 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.
+ try {
+ if (isShorts()) {
+ //Youtube Shorts don't work with this query. It's not necessary; 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 likeButton = getLikeButton()
+ .querySelector("yt-formatted-string#text") ??
+ getLikeButton().querySelector("button");
+
+ let likesStr = likeButton.getAttribute("aria-label")
+ .replace(/\D/g, "");
+ return likesStr.length > 0 ? parseInt(likesStr) : false;
+ }
+ catch {
return false;
}
- let likesStr = getLikeButton()
- .querySelector("yt-formatted-string#text")
- .getAttribute("aria-label")
- .replace(/\D/g, "");
- return likesStr.length > 0 ? parseInt(likesStr) : false;
+
}
(typeof GM_addStyle != "undefined"
diff --git a/Extensions/combined/src/buttons.js b/Extensions/combined/src/buttons.js
index ab413a6..b78670c 100644
--- a/Extensions/combined/src/buttons.js
+++ b/Extensions/combined/src/buttons.js
@@ -24,7 +24,7 @@ function getButtons() {
//--- If Menu Element Is Displayed: ---//
if (document.getElementById("menu-container")?.offsetParent === null) {
return document.querySelector("ytd-menu-renderer.ytd-watch-metadata > div");
- //--- If Menu Element Isnt Displayed: ---//
+ //--- If Menu Element Isn't Displayed: ---//
} else {
return document
.getElementById("menu-container")
@@ -42,7 +42,8 @@ function getLikeButton() {
function getLikeTextContainer() {
return (
getLikeButton().querySelector("#text") ??
- getLikeButton().getElementsByTagName("yt-formatted-string")[0]
+ getLikeButton().getElementsByTagName("yt-formatted-string")[0] ??
+ getLikeButton().querySelector("span[role='text']")
);
}
diff --git a/Extensions/combined/src/state.js b/Extensions/combined/src/state.js
index 0876e10..444a203 100644
--- a/Extensions/combined/src/state.js
+++ b/Extensions/combined/src/state.js
@@ -133,10 +133,12 @@ function getState(storedData) {
//--- Sets The Likes And Dislikes Values ---//
function setLikes(likesCount) {
+ cLog(`SET likes ${likesCount}`)
getLikeTextContainer().innerText = likesCount;
}
function setDislikes(dislikesCount) {
+ cLog(`SET dislikes ${dislikesCount}`)
getDislikeTextContainer()?.removeAttribute('is-empty');
if (!isLikesDisabled()) {
if (isMobile()) {
@@ -161,13 +163,15 @@ function setDislikes(dislikesCount) {
function getLikeCountFromButton() {
try {
if (isShorts()) {
- //Youtube Shorts don't work with this query. It's not nessecary; we can skip it and still see the results.
+ //Youtube Shorts don't work with this query. It's not necessary; 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")
+ let likeButton = getLikeButton()
+ .querySelector("yt-formatted-string#text") ??
+ getLikeButton().querySelector("button");
+
+ let likesStr = likeButton.getAttribute("aria-label")
.replace(/\D/g, "");
return likesStr.length > 0 ? parseInt(likesStr) : false;
}
@@ -191,7 +195,7 @@ function processResponse(response, storedData) {
createRateBar(storedData.likes, storedData.dislikes);
if (extConfig.coloredThumbs === true) {
if (isShorts()) {
- // for shorts, leave deactived buttons in default color
+ // for shorts, leave deactivated buttons in default color
let shortLikeButton = getLikeButton().querySelector(
"tp-yt-paper-button#button"
);