Explorar o código

update rating bar on user input

cupiditys %!s(int64=3) %!d(string=hai) anos
pai
achega
cb0cfda482
Modificáronse 1 ficheiros con 45 adicións e 7 borrados
  1. 45 7
      Extensions/UserScript/Return Youtube Dislike.user.js

+ 45 - 7
Extensions/UserScript/Return Youtube Dislike.user.js

@@ -25,6 +25,9 @@
 const LIKED_STATE = "LIKED_STATE";
 const DISLIKED_STATE = "DISLIKED_STATE";
 const NEUTRAL_STATE = "NEUTRAL_STATE";
+var previousState = 3; //1=LIKED, 2=DISLIKED, 3=NEUTRAL
+var likesvalue = 0;
+var dislikesvalue = 0;
 
 var isMobile = (location.hostname == "m.youtube.com");
 var mobileDislikes = 0;
@@ -208,9 +211,11 @@ function setState() {
         if (result) {
           cLog("response from youtube:");
           cLog(JSON.stringify(result));
-          if (result.likes && result.dislikes) {
+          if (result.viewCount) {
             const formattedDislike = numberFormat(result.dislikes);
             setDislikes(formattedDislike);
+            likesvalue = result.likes
+            dislikesvalue = result.dislikes
             createRateBar(result.likes, result.dislikes);
             statsSet = true;
           }
@@ -225,9 +230,11 @@ function setState() {
         if (result) {
           cLog("response from youtube:");
           cLog(JSON.stringify(result));
-          if (result.likes && result.dislikes) {
+          if (result.viewCount) {
             const formattedDislike = numberFormat(result.dislikes);
             setDislikes(formattedDislike);
+            likesvalue = result.likes;
+            dislikesvalue = result.dislikes;
             createRateBar(result.likes, result.dislikes);
             statsSet = true;
           }
@@ -243,6 +250,8 @@ function setState() {
       if (json && !statsSet) {
         const { dislikes, likes } = json;
         cLog(`Received count: ${dislikes}`);
+        likesvalue = likes;
+        dislikesvalue = dislikes;
         setDislikes(numberFormat(dislikes));
         createRateBar(likes, dislikes);
       }
@@ -251,13 +260,42 @@ function setState() {
 }
 
 function likeClicked() {
-  cLog("Like clicked", getState());
-  setState();
-}
+    if (previousState == 1) {
+      likesvalue--;
+      createRateBar(likesvalue, dislikesvalue);
+      setDislikes(numberFormat(dislikesvalue));
+      previousState = 3
+    } else if (previousState == 2) {
+      likesvalue++;
+      dislikesvalue--;
+      setDislikes(numberFormat(dislikesvalue))
+      createRateBar(likesvalue, dislikesvalue);
+      previousState = 1
+    } else if (previousState == 3) {
+      likesvalue++;
+      createRateBar(likesvalue, dislikesvalue)
+      previousState = 1
+    }
+  }
 
 function dislikeClicked() {
-  cLog("Dislike clicked", getState());
-  setState();
+    if (previousState == 3) {
+      dislikesvalue++;
+      setDislikes(numberFormat(dislikesvalue));
+      createRateBar(likesvalue, dislikesvalue);
+      previousState = 2
+    } else if (previousState == 2) {
+      dislikesvalue--;
+      setDislikes(numberFormat(dislikesvalue));
+      createRateBar(likesvalue, dislikesvalue);
+      previousState = 3
+    } else if (previousState == 1) {
+      likesvalue--;
+      dislikesvalue++;
+      setDislikes(numberFormat(dislikesvalue));
+      createRateBar(likesvalue, dislikesvalue);
+      previousState = 2
+    }
 }
 
 function setInitialState() {