Pārlūkot izejas kodu

Fixed issue #389

Fixed issue #389 with dislikes count showing up as 0 on videos that have the like and dislike count hidden by the creator
thesusian 3 gadi atpakaļ
vecāks
revīzija
9ac8d312f9

+ 39 - 16
Extensions/combined/dist/chrome/bundled-content-script.js

@@ -5,17 +5,20 @@ var __webpack_exports__ = {};
 ;// CONCATENATED MODULE: ./Extensions/combined/src/bar.js
 
 
+
 function createRateBar(likes, dislikes) {
-  var rateBar = document.getElementById("ryd-bar-container");
-  var widthPx = buttons_getButtons().children[0].clientWidth + buttons_getButtons().children[1].clientWidth + 8;
-  var widthPercent = likes + dislikes > 0 ? likes / (likes + dislikes) * 100 : 50;
+  if (!likesDisabledState) {
+    var rateBar = document.getElementById("ryd-bar-container");
+    var widthPx = buttons_getButtons().children[0].clientWidth + buttons_getButtons().children[1].clientWidth + 8;
+    var widthPercent = likes + dislikes > 0 ? likes / (likes + dislikes) * 100 : 50;
 
-  if (!rateBar) {
-    (document.getElementById("menu-container") || document.querySelector("ytm-slim-video-action-bar-renderer")).insertAdjacentHTML("beforeend", "\n          <div class=\"ryd-tooltip\" style=\"width: ".concat(widthPx, "px\">\n          <div class=\"ryd-tooltip-bar-container\">\n             <div\n                id=\"ryd-bar-container\"\n                style=\"width: 100%; height: 2px;\"\n                >\n                <div\n                   id=\"ryd-bar\"\n                   style=\"width: ").concat(widthPercent, "%; height: 100%\"\n                   ></div>\n             </div>\n          </div>\n          <tp-yt-paper-tooltip position=\"top\" id=\"ryd-dislike-tooltip\" class=\"style-scope ytd-sentiment-bar-renderer\" role=\"tooltip\" tabindex=\"-1\">\n             <!--css-build:shady-->").concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString(), "\n          </tp-yt-paper-tooltip>\n          </div>\n  "));
-  } else {
-    document.getElementById("ryd-bar-container").style.width = widthPx + "px";
-    document.getElementById("ryd-bar").style.width = widthPercent + "%";
-    document.querySelector("#ryd-dislike-tooltip > #tooltip").innerHTML = "".concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString());
+    if (!rateBar) {
+      (document.getElementById("menu-container") || document.querySelector("ytm-slim-video-action-bar-renderer")).insertAdjacentHTML("beforeend", "\n            <div class=\"ryd-tooltip\" style=\"width: ".concat(widthPx, "px\">\n            <div class=\"ryd-tooltip-bar-container\">\n              <div\n                  id=\"ryd-bar-container\"\n                  style=\"width: 100%; height: 2px;\"\n                  >\n                  <div\n                    id=\"ryd-bar\"\n                    style=\"width: ").concat(widthPercent, "%; height: 100%\"\n                    ></div>\n              </div>\n            </div>\n            <tp-yt-paper-tooltip position=\"top\" id=\"ryd-dislike-tooltip\" class=\"style-scope ytd-sentiment-bar-renderer\" role=\"tooltip\" tabindex=\"-1\">\n              <!--css-build:shady-->").concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString(), "\n            </tp-yt-paper-tooltip>\n            </div>\n    "));
+    } else {
+      document.getElementById("ryd-bar-container").style.width = widthPx + "px";
+      document.getElementById("ryd-bar").style.width = widthPercent + "%";
+      document.querySelector("#ryd-dislike-tooltip > #tooltip").innerHTML = "".concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString());
+    }
   }
 }
 
@@ -197,6 +200,7 @@ function handleDisableVoteSubmissionChangeEvent(value) {
 var LIKED_STATE = "LIKED_STATE";
 var DISLIKED_STATE = "DISLIKED_STATE";
 var NEUTRAL_STATE = "NEUTRAL_STATE";
+var DISLIKES_DISABLED_TEXT = "DISLIKES DISABLED";
 var extConfig = {
   disableVoteSubmission: false
 };
@@ -205,6 +209,7 @@ var storedData = {
   dislikes: 0,
   previousState: NEUTRAL_STATE
 };
+var likesDisabledState = true;
 
 function isMobile() {
   return location.hostname == "m.youtube.com";
@@ -253,12 +258,23 @@ function setLikes(likesCount) {
 }
 
 function setDislikes(dislikesCount) {
-  if (isMobile()) {
-    buttons_getButtons().children[1].querySelector(".button-renderer-text").innerText = dislikesCount;
-    return;
-  }
+  if (!likesDisabledState) {
+    if (isMobile()) {
+      buttons_getButtons().children[1].querySelector(".button-renderer-text").innerText = dislikesCount;
+      return;
+    }
 
-  buttons_getButtons().children[1].querySelector("#text").innerText = dislikesCount;
+    buttons_getButtons().children[1].querySelector("#text").innerText = dislikesCount;
+  } else {
+    cLog("likes count diabled by creator");
+
+    if (isMobile()) {
+      buttons_getButtons().children[1].querySelector(".button-renderer-text").innerText = DISLIKES_DISABLED_TEXT;
+      return;
+    }
+
+    buttons_getButtons().children[1].querySelector("#text").innerText = DISLIKES_DISABLED_TEXT;
+  }
 }
 
 function getLikeCountFromButton() {
@@ -271,7 +287,10 @@ function processResponse(response, storedData) {
   setDislikes(formattedDislike);
   storedData.dislikes = parseInt(response.dislikes);
   storedData.likes = getLikeCountFromButton() || parseInt(response.likes);
-  createRateBar(storedData.likes, storedData.dislikes);
+
+  if (!likesDisabledState) {
+    createRateBar(storedData.likes, storedData.dislikes);
+  }
 }
 
 function setState(storedData) {
@@ -285,10 +304,11 @@ function setState(storedData) {
   }, function (response) {
     cLog("response from api:");
     cLog(JSON.stringify(response));
+    likesDisabledState = numberFormat(response.dislikes) == 0 && numberFormat(response.likes) == 0 && numberFormat(response.viewCount) == 0;
 
     if (response !== undefined && !("traceId" in response) && !statsSet) {
       processResponse(response, storedData);
-    } else {}
+    }
   });
 }
 
@@ -354,7 +374,10 @@ function checkForSignInButton() {
 
 
 ;// CONCATENATED MODULE: ./Extensions/combined/ryd.content-script.js
+//---   Import Button Functions   ---//
+ //---   Import State Functions   ---//
 
+ //---   Import Video & Browser Functions   ---//
 
 
 

+ 1 - 0
Extensions/combined/dist/chrome/popup.html

@@ -24,6 +24,7 @@
       <img id="server-status" src="./icons/server.svg" alt="" />
       <p>API Status: <span id="status"></span></p>
       <p>by Dmitrii Selivanov & Community</p>
+      <p id="ext-version"></p>
 
       <button id="link_website">Website</button>
       <button id="link_github">GitHub</button>

+ 10 - 0
Extensions/combined/dist/chrome/popup.js

@@ -4,7 +4,17 @@ const config = {
   showAdvancedMessage: "Show Settings",
   hideAdvancedMessage: "Hide Settings",
   disableVoteSubmission: false,
+}
+
+ function initConfig() {
+  initializeVersionNumber();
+  }
 
+ function initializeVersionNumber() {
+  const version = chrome.runtime.getManifest().version;
+  document.getElementById('ext-version').innerHTML = 'v' + version;
+}
+  
   links: {
     website: "https://returnyoutubedislike.com",
     github: "https://github.com/Anarios/return-youtube-dislike",

+ 39 - 16
Extensions/combined/dist/firefox/bundled-content-script.js

@@ -5,17 +5,20 @@ var __webpack_exports__ = {};
 ;// CONCATENATED MODULE: ./Extensions/combined/src/bar.js
 
 
+
 function createRateBar(likes, dislikes) {
-  var rateBar = document.getElementById("ryd-bar-container");
-  var widthPx = buttons_getButtons().children[0].clientWidth + buttons_getButtons().children[1].clientWidth + 8;
-  var widthPercent = likes + dislikes > 0 ? likes / (likes + dislikes) * 100 : 50;
+  if (!likesDisabledState) {
+    var rateBar = document.getElementById("ryd-bar-container");
+    var widthPx = buttons_getButtons().children[0].clientWidth + buttons_getButtons().children[1].clientWidth + 8;
+    var widthPercent = likes + dislikes > 0 ? likes / (likes + dislikes) * 100 : 50;
 
-  if (!rateBar) {
-    (document.getElementById("menu-container") || document.querySelector("ytm-slim-video-action-bar-renderer")).insertAdjacentHTML("beforeend", "\n          <div class=\"ryd-tooltip\" style=\"width: ".concat(widthPx, "px\">\n          <div class=\"ryd-tooltip-bar-container\">\n             <div\n                id=\"ryd-bar-container\"\n                style=\"width: 100%; height: 2px;\"\n                >\n                <div\n                   id=\"ryd-bar\"\n                   style=\"width: ").concat(widthPercent, "%; height: 100%\"\n                   ></div>\n             </div>\n          </div>\n          <tp-yt-paper-tooltip position=\"top\" id=\"ryd-dislike-tooltip\" class=\"style-scope ytd-sentiment-bar-renderer\" role=\"tooltip\" tabindex=\"-1\">\n             <!--css-build:shady-->").concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString(), "\n          </tp-yt-paper-tooltip>\n          </div>\n  "));
-  } else {
-    document.getElementById("ryd-bar-container").style.width = widthPx + "px";
-    document.getElementById("ryd-bar").style.width = widthPercent + "%";
-    document.querySelector("#ryd-dislike-tooltip > #tooltip").innerHTML = "".concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString());
+    if (!rateBar) {
+      (document.getElementById("menu-container") || document.querySelector("ytm-slim-video-action-bar-renderer")).insertAdjacentHTML("beforeend", "\n            <div class=\"ryd-tooltip\" style=\"width: ".concat(widthPx, "px\">\n            <div class=\"ryd-tooltip-bar-container\">\n              <div\n                  id=\"ryd-bar-container\"\n                  style=\"width: 100%; height: 2px;\"\n                  >\n                  <div\n                    id=\"ryd-bar\"\n                    style=\"width: ").concat(widthPercent, "%; height: 100%\"\n                    ></div>\n              </div>\n            </div>\n            <tp-yt-paper-tooltip position=\"top\" id=\"ryd-dislike-tooltip\" class=\"style-scope ytd-sentiment-bar-renderer\" role=\"tooltip\" tabindex=\"-1\">\n              <!--css-build:shady-->").concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString(), "\n            </tp-yt-paper-tooltip>\n            </div>\n    "));
+    } else {
+      document.getElementById("ryd-bar-container").style.width = widthPx + "px";
+      document.getElementById("ryd-bar").style.width = widthPercent + "%";
+      document.querySelector("#ryd-dislike-tooltip > #tooltip").innerHTML = "".concat(likes.toLocaleString(), "&nbsp;/&nbsp;").concat(dislikes.toLocaleString());
+    }
   }
 }
 
@@ -197,6 +200,7 @@ function handleDisableVoteSubmissionChangeEvent(value) {
 var LIKED_STATE = "LIKED_STATE";
 var DISLIKED_STATE = "DISLIKED_STATE";
 var NEUTRAL_STATE = "NEUTRAL_STATE";
+var DISLIKES_DISABLED_TEXT = "DISLIKES DISABLED";
 var extConfig = {
   disableVoteSubmission: false
 };
@@ -205,6 +209,7 @@ var storedData = {
   dislikes: 0,
   previousState: NEUTRAL_STATE
 };
+var likesDisabledState = true;
 
 function isMobile() {
   return location.hostname == "m.youtube.com";
@@ -253,12 +258,23 @@ function setLikes(likesCount) {
 }
 
 function setDislikes(dislikesCount) {
-  if (isMobile()) {
-    buttons_getButtons().children[1].querySelector(".button-renderer-text").innerText = dislikesCount;
-    return;
-  }
+  if (!likesDisabledState) {
+    if (isMobile()) {
+      buttons_getButtons().children[1].querySelector(".button-renderer-text").innerText = dislikesCount;
+      return;
+    }
 
-  buttons_getButtons().children[1].querySelector("#text").innerText = dislikesCount;
+    buttons_getButtons().children[1].querySelector("#text").innerText = dislikesCount;
+  } else {
+    cLog("likes count diabled by creator");
+
+    if (isMobile()) {
+      buttons_getButtons().children[1].querySelector(".button-renderer-text").innerText = DISLIKES_DISABLED_TEXT;
+      return;
+    }
+
+    buttons_getButtons().children[1].querySelector("#text").innerText = DISLIKES_DISABLED_TEXT;
+  }
 }
 
 function getLikeCountFromButton() {
@@ -271,7 +287,10 @@ function processResponse(response, storedData) {
   setDislikes(formattedDislike);
   storedData.dislikes = parseInt(response.dislikes);
   storedData.likes = getLikeCountFromButton() || parseInt(response.likes);
-  createRateBar(storedData.likes, storedData.dislikes);
+
+  if (!likesDisabledState) {
+    createRateBar(storedData.likes, storedData.dislikes);
+  }
 }
 
 function setState(storedData) {
@@ -285,10 +304,11 @@ function setState(storedData) {
   }, function (response) {
     cLog("response from api:");
     cLog(JSON.stringify(response));
+    likesDisabledState = numberFormat(response.dislikes) == 0 && numberFormat(response.likes) == 0 && numberFormat(response.viewCount) == 0;
 
     if (response !== undefined && !("traceId" in response) && !statsSet) {
       processResponse(response, storedData);
-    } else {}
+    }
   });
 }
 
@@ -354,7 +374,10 @@ function checkForSignInButton() {
 
 
 ;// CONCATENATED MODULE: ./Extensions/combined/ryd.content-script.js
+//---   Import Button Functions   ---//
+ //---   Import State Functions   ---//
 
+ //---   Import Video & Browser Functions   ---//
 
 
 

+ 1 - 0
Extensions/combined/dist/firefox/popup.html

@@ -24,6 +24,7 @@
       <img id="server-status" src="./icons/server.svg" alt="" />
       <p>API Status: <span id="status"></span></p>
       <p>by Dmitrii Selivanov & Community</p>
+      <p id="ext-version"></p>
 
       <button id="link_website">Website</button>
       <button id="link_github">GitHub</button>

+ 10 - 0
Extensions/combined/dist/firefox/popup.js

@@ -4,7 +4,17 @@ const config = {
   showAdvancedMessage: "Show Settings",
   hideAdvancedMessage: "Hide Settings",
   disableVoteSubmission: false,
+}
+
+ function initConfig() {
+  initializeVersionNumber();
+  }
 
+ function initializeVersionNumber() {
+  const version = chrome.runtime.getManifest().version;
+  document.getElementById('ext-version').innerHTML = 'v' + version;
+}
+  
   links: {
     website: "https://returnyoutubedislike.com",
     github: "https://github.com/Anarios/return-youtube-dislike",

+ 42 - 38
Extensions/combined/src/bar.js

@@ -1,48 +1,52 @@
 import { getButtons } from "./buttons";
+import { likesDisabledState } from "./state";
 
 function createRateBar(likes, dislikes) {
-  let rateBar = document.getElementById("ryd-bar-container");
+  if (!likesDisabledState)
+  {
+    let rateBar = document.getElementById("ryd-bar-container");
 
-  const widthPx =
-    getButtons().children[0].clientWidth +
-    getButtons().children[1].clientWidth +
-    8;
+    const widthPx =
+      getButtons().children[0].clientWidth +
+      getButtons().children[1].clientWidth +
+      8;
 
-  const widthPercent =
-    likes + dislikes > 0 ? (likes / (likes + dislikes)) * 100 : 50;
+    const widthPercent =
+      likes + dislikes > 0 ? (likes / (likes + dislikes)) * 100 : 50;
 
-  if (!rateBar) {
-    (
-      document.getElementById("menu-container") ||
-      document.querySelector("ytm-slim-video-action-bar-renderer")
-    ).insertAdjacentHTML(
-      "beforeend",
-      `
-          <div class="ryd-tooltip" style="width: ${widthPx}px">
-          <div class="ryd-tooltip-bar-container">
-             <div
-                id="ryd-bar-container"
-                style="width: 100%; height: 2px;"
-                >
-                <div
-                   id="ryd-bar"
-                   style="width: ${widthPercent}%; height: 100%"
-                   ></div>
-             </div>
-          </div>
-          <tp-yt-paper-tooltip position="top" id="ryd-dislike-tooltip" class="style-scope ytd-sentiment-bar-renderer" role="tooltip" tabindex="-1">
-             <!--css-build:shady-->${likes.toLocaleString()}&nbsp;/&nbsp;${dislikes.toLocaleString()}
-          </tp-yt-paper-tooltip>
-          </div>
-  `
-    );
-  } else {
-    document.getElementById("ryd-bar-container").style.width = widthPx + "px";
-    document.getElementById("ryd-bar").style.width = widthPercent + "%";
+    if (!rateBar) {
+      (
+        document.getElementById("menu-container") ||
+        document.querySelector("ytm-slim-video-action-bar-renderer")
+      ).insertAdjacentHTML(
+        "beforeend",
+        `
+            <div class="ryd-tooltip" style="width: ${widthPx}px">
+            <div class="ryd-tooltip-bar-container">
+              <div
+                  id="ryd-bar-container"
+                  style="width: 100%; height: 2px;"
+                  >
+                  <div
+                    id="ryd-bar"
+                    style="width: ${widthPercent}%; height: 100%"
+                    ></div>
+              </div>
+            </div>
+            <tp-yt-paper-tooltip position="top" id="ryd-dislike-tooltip" class="style-scope ytd-sentiment-bar-renderer" role="tooltip" tabindex="-1">
+              <!--css-build:shady-->${likes.toLocaleString()}&nbsp;/&nbsp;${dislikes.toLocaleString()}
+            </tp-yt-paper-tooltip>
+            </div>
+    `
+      );
+    } else {
+      document.getElementById("ryd-bar-container").style.width = widthPx + "px";
+      document.getElementById("ryd-bar").style.width = widthPercent + "%";
 
-    document.querySelector(
-      "#ryd-dislike-tooltip > #tooltip"
-    ).innerHTML = `${likes.toLocaleString()}&nbsp;/&nbsp;${dislikes.toLocaleString()}`;
+      document.querySelector(
+        "#ryd-dislike-tooltip > #tooltip"
+      ).innerHTML = `${likes.toLocaleString()}&nbsp;/&nbsp;${dislikes.toLocaleString()}`;
+    }
   }
 }
 

+ 1 - 1
Extensions/combined/src/events.js

@@ -1,6 +1,6 @@
 import { getBrowser, getVideoId, numberFormat, cLog } from "./utils"
 import { checkForSignInButton, getButtons } from "./buttons"
-import { NEUTRAL_STATE, LIKED_STATE, DISLIKED_STATE, setDislikes, extConfig, storedData } from "./state"
+import { NEUTRAL_STATE, LIKED_STATE, DISLIKED_STATE, setDislikes, extConfig, storedData, setLikes } from "./state"
 import { createRateBar } from "./bar"
 
 function sendVote(vote) {

+ 24 - 7
Extensions/combined/src/state.js

@@ -7,6 +7,8 @@ const LIKED_STATE = "LIKED_STATE";
 const DISLIKED_STATE = "DISLIKED_STATE";
 const NEUTRAL_STATE = "NEUTRAL_STATE";
 
+const DISLIKES_DISABLED_TEXT = "DISLIKES DISABLED"
+
 let extConfig = {
   disableVoteSubmission: false,
 };
@@ -17,6 +19,8 @@ let storedData = {
   previousState: NEUTRAL_STATE,
 };
 
+let likesDisabledState = true;
+
 function isMobile() {
   return location.hostname == "m.youtube.com";
 }
@@ -57,12 +61,22 @@ function setLikes(likesCount) {
 }
 
 function setDislikes(dislikesCount) {
-  if (isMobile()) {
-    getButtons().children[1].querySelector(".button-renderer-text").innerText =
-      dislikesCount;
-    return;
+  if(!likesDisabledState) {
+    if (isMobile()) {
+      getButtons().children[1].querySelector(".button-renderer-text").innerText =
+        dislikesCount;
+      return;
+    }
+    getButtons().children[1].querySelector("#text").innerText = dislikesCount;
+  } else {
+    cLog("likes count diabled by creator");
+    if (isMobile()) {
+      getButtons().children[1].querySelector(".button-renderer-text").innerText =
+      DISLIKES_DISABLED_TEXT;
+      return;
+    }
+    getButtons().children[1].querySelector("#text").innerText = DISLIKES_DISABLED_TEXT;
   }
-  getButtons().children[1].querySelector("#text").innerText = dislikesCount;
 }
 
 function getLikeCountFromButton() {
@@ -78,7 +92,9 @@ function processResponse(response, storedData) {
   setDislikes(formattedDislike);
   storedData.dislikes = parseInt(response.dislikes);
   storedData.likes = getLikeCountFromButton() || parseInt(response.likes);
-  createRateBar(storedData.likes, storedData.dislikes);
+  if(!likesDisabledState) {
+    createRateBar(storedData.likes, storedData.dislikes);
+  }
 }
 
 function setState(storedData) {
@@ -99,9 +115,9 @@ function setState(storedData) {
     function (response) {
       cLog("response from api:");
       cLog(JSON.stringify(response));
+      likesDisabledState = numberFormat(response.dislikes) == 0 && numberFormat(response.likes) == 0 && numberFormat(response.viewCount) == 0;
       if (response !== undefined && !("traceId" in response) && !statsSet) {
         processResponse(response, storedData);
-      } else {
       }
     }
   );
@@ -145,4 +161,5 @@ export {
   extConfig,
   initExtConfig,
   storedData,
+  likesDisabledState,
 };