CreaZyp154 3 tahun lalu
induk
melakukan
43a7167e2b

+ 3 - 0
Extensions/combined/_locales/en/messages.json

@@ -26,6 +26,9 @@
     "textSettings": {
         "message": "Disable like/dislike submission"
     },
+    "textLikesDisabled": {
+        "message": "disabled by owner"
+    },
     "textSettingsHover": {
         "message": "Stops counting your likes and dislikes."
     },

+ 3 - 0
Extensions/combined/_locales/fr/messages.json

@@ -23,6 +23,9 @@
     "legendSettings": {
         "message": "Paramètres"
     },
+    "textLikesDisabled": {
+        "message": "Désactivé par le créateur"
+    },
     "textSettings": {
         "message": "Désactiver l'envoi des likes/dislikes"
     },

+ 6 - 3
Extensions/combined/src/bar.js

@@ -1,8 +1,9 @@
 import { getButtons } from "./buttons";
-import { likesDisabledState, extConfig, isMobile } from "./state";
+import { extConfig, isMobile, isLikesDisabled } from "./state";
 import { cLog, getColorFromTheme } from "./utils";
+
 function createRateBar(likes, dislikes) {
-  if (!likesDisabledState) {
+  if (!isLikesDisabled()) {
     let rateBar = document.getElementById("ryd-bar-container");
 
     const widthPx =
@@ -61,7 +62,9 @@ function createRateBar(likes, dislikes) {
   } else {
     cLog("removing bar");
     let ratebar = document.getElementById("ryd-bar-container");
-    ratebar.parentNode.removeChild(ratebar);
+    if(ratebar) {
+      ratebar.parentNode.removeChild(ratebar);
+    }
   }
 }
 

+ 16 - 13
Extensions/combined/src/state.js

@@ -16,8 +16,6 @@ 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,
   coloredThumbs: false,
@@ -33,8 +31,6 @@ let storedData = {
   previousState: NEUTRAL_STATE,
 };
 
-let likesDisabledState = true;
-
 function isMobile() {
   return location.hostname == "m.youtube.com";
 }
@@ -43,6 +39,16 @@ function isShorts() {
   return location.pathname.startsWith("/shorts");
 }
 
+function isLikesDisabled() {
+  // return true if the like button's text doesn't contain any number
+  if (isMobile()) {
+    return /^\D*$/.test(
+      getButtons().children[0].querySelector(".button-renderer-text").innerText
+    );
+  }
+  return /^\D*$/.test(getButtons().children[0].querySelector("#text").innerText);
+}
+
 function isVideoLiked() {
   if (isMobile()) {
     return (
@@ -79,7 +85,7 @@ function setLikes(likesCount) {
 }
 
 function setDislikes(dislikesCount) {
-  if (!likesDisabledState) {
+  if (!isLikesDisabled()) {
     if (isMobile()) {
       getButtons().children[1].querySelector(
         ".button-renderer-text"
@@ -92,11 +98,12 @@ function setDislikes(dislikesCount) {
     if (isMobile()) {
       getButtons().children[1].querySelector(
         ".button-renderer-text"
-      ).innerText = DISLIKES_DISABLED_TEXT;
+      ).innerText = localize("TextLikesDisabled");
       return;
     }
-    getButtons().children[1].querySelector("#text").innerText =
-      DISLIKES_DISABLED_TEXT;
+    getButtons().children[1].querySelector("#text").innerText = localize(
+      "TextLikesDisabled"
+    );
   }
 }
 
@@ -160,10 +167,6 @@ async function setState(storedData) {
     .catch(displayError);
   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);
   }
@@ -262,5 +265,5 @@ export {
   extConfig,
   initExtConfig,
   storedData,
-  likesDisabledState,
+  isLikesDisabled
 };