Front 3 жил өмнө
parent
commit
a2eb4477dc

+ 18 - 12
Extensions/chrome/return-youtube-dislike.script.js

@@ -1,6 +1,7 @@
 (function (extensionId) {
   let storedData = {
-    dislikes: 0
+    dislikes: 0,
+    previousState: 'neutral'
   };
 
   function cLog(message, writer) {
@@ -51,15 +52,14 @@
     return getDislikeButton().classList.contains("style-text");
   }
 
-
   function getState() {
     if (isVideoLiked()) {
-      return "liked";
+      return {current: "liked", previous: storedData.previousState};
     }
     if (isVideoDisliked()) {
-      return "disliked";
+      return {current: "disliked", previous: storedData.previousState};
     }
-    return "neutral";
+    return {current: "neutral", previous: storedData.previousState};
   }
 
   //---   Sets The Likes And Dislikes Values   ---//
@@ -104,7 +104,7 @@
       {
         message: "set_state",
         videoId: getVideoId(window.location.href),
-        state: getState(),
+        state: getState().current,
       },
       function (response) {
         cLog("response from api:");
@@ -121,21 +121,27 @@
   }
 
   function likeClicked() {
-    console.log("Dislike State:", getState());
-    // setState();
+    console.log(storedData.previousState)
+    if (storedData.previousState == 'disliked') {
+      storedData.dislikes--;
+      setDislikes(numberFormat(storedData.dislikes));
+      storedData.previousState = 'liked';
+    }
   }
 
   function dislikeClicked() {
-    let state = getState();
+    let state = getState().current;
 
-    console.log("Dislike State:",state);
+    console.log("Dislike State:",getState());
 
     if (state == 'disliked') {
       storedData.dislikes++;
-      setDislikes(numberFormat( storedData.dislikes))
+      setDislikes(numberFormat(storedData.dislikes));
+      storedData.previousState = 'disliked';
     } else if (state == 'neutral') {
       storedData.dislikes--;
-      setDislikes(numberFormat(storedData.dislikes))
+      setDislikes(numberFormat(storedData.dislikes));
+      storedData.previousState = 'neutral';
     }
 
     // setState();