From e169913122906918a11d3494b1fac390254cfeef Mon Sep 17 00:00:00 2001 From: Front <27463495+Frontesque@users.noreply.github.com> Date: Wed, 1 Dec 2021 17:31:28 -0500 Subject: Live Disliking Feature (issue #59, #93) For Chrome --- Extensions/chrome/return-youtube-dislike.script.js | 30 +++++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/Extensions/chrome/return-youtube-dislike.script.js b/Extensions/chrome/return-youtube-dislike.script.js index d51cc00..199b3c0 100644 --- a/Extensions/chrome/return-youtube-dislike.script.js +++ b/Extensions/chrome/return-youtube-dislike.script.js @@ -9,10 +9,13 @@ } function getButtons() { - if (document.getElementById("menu-container").offsetParent === null) { + + //--- 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: ---// } else { return document .getElementById("menu-container") @@ -44,6 +47,7 @@ return getDislikeButton().classList.contains("style-text"); } + function getState() { if (isVideoLiked()) { return "liked"; @@ -54,14 +58,23 @@ return "neutral"; } + //--- Sets The Likes And Dislikes Values ---// function setLikes(likesCount) { getButtons().children[0].querySelector("#text").innerText = likesCount; } - function setDislikes(dislikesCount) { getButtons().children[1].querySelector("#text").innerText = dislikesCount; } + //--- Gets Current Dislike Value From Local Device ---// + function getDislikes() { + let dislikes = getButtons().children[1].querySelector("#text").innerText; + dislikes = parseInt(dislikes); + return dislikes; + } + + + function setState() { let statsSet = false; chrome.runtime.sendMessage( @@ -110,12 +123,21 @@ } function likeClicked() { - // console.log("like" + getState()); + console.log("Dislike State:",getState()); // setState(); } function dislikeClicked() { - // console.log("dislike" + getState()); + let state = getState(); + + console.log("Dislike State:",state); + + if (state == 'disliked') { + setDislikes(getDislikes() + 1) + } else if (state == 'neutral') { + setDislikes(getDislikes() + -1) + } + // setState(); } -- cgit v1.2.3 From 454be4e41cd6f1ed902cedf839fef11c8a615af0 Mon Sep 17 00:00:00 2001 From: Front <27463495+Frontesque@users.noreply.github.com> Date: Wed, 1 Dec 2021 17:37:09 -0500 Subject: Live Disliking Feature (issue #59, #93) For Firefox --- .../firefox/return-youtube-dislike.script.js | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Extensions/firefox/return-youtube-dislike.script.js b/Extensions/firefox/return-youtube-dislike.script.js index 293388b..a00ed18 100644 --- a/Extensions/firefox/return-youtube-dislike.script.js +++ b/Extensions/firefox/return-youtube-dislike.script.js @@ -8,8 +8,11 @@ function cLog(message, writer) { } 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: ---// } else { return document .getElementById("menu-container") @@ -51,14 +54,22 @@ function getState() { return "neutral"; } +//--- Sets The Likes And Dislikes Values ---// function setLikes(likesCount) { getButtons().children[0].querySelector("#text").innerText = likesCount; } - function setDislikes(dislikesCount) { getButtons().children[1].querySelector("#text").innerText = dislikesCount; } +//--- Gets Current Dislike Value From Local Device ---// +function getDislikes() { + let dislikes = getButtons().children[1].querySelector("#text").innerText; + dislikes = parseInt(dislikes); + return dislikes; +} + + function setState() { let statsSet = false; browser.runtime.sendMessage( @@ -106,12 +117,21 @@ function setState() { } function likeClicked() { - // console.log("like" + getState()); + console.log("Dislike State:",getState()); // setState(); } function dislikeClicked() { - // console.log("dislike" + getState()); + let state = getState(); + + console.log("Dislike State:",state); + + if (state == 'disliked') { + setDislikes(getDislikes() + 1) + } else if (state == 'neutral') { + setDislikes(getDislikes() + -1) + } + // setState(); } -- cgit v1.2.3