|
@@ -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;
|
|
@@ -82,6 +85,17 @@ function isVideoNotDisliked() {
|
|
|
return getDislikeButton().classList.contains("style-text");
|
|
|
}
|
|
|
|
|
|
+function checkForSignInButton() {
|
|
|
+ if (isMobile) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (document.querySelector('[aria-label="Sign in"]')) {
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function getState() {
|
|
|
if (isVideoLiked()) {
|
|
|
return LIKED_STATE;
|
|
@@ -211,6 +225,8 @@ function setState() {
|
|
|
if ("likes" in result && "dislikes" in result) {
|
|
|
const formattedDislike = numberFormat(result.dislikes);
|
|
|
setDislikes(formattedDislike);
|
|
|
+ likesvalue = result.likes
|
|
|
+ dislikesvalue = result.dislikes
|
|
|
createRateBar(result.likes, result.dislikes);
|
|
|
statsSet = true;
|
|
|
}
|
|
@@ -228,6 +244,8 @@ function setState() {
|
|
|
if ("likes" in result && "dislikes" in result) {
|
|
|
const formattedDislike = numberFormat(result.dislikes);
|
|
|
setDislikes(formattedDislike);
|
|
|
+ likesvalue = result.likes;
|
|
|
+ dislikesvalue = result.dislikes;
|
|
|
createRateBar(result.likes, result.dislikes);
|
|
|
statsSet = true;
|
|
|
}
|
|
@@ -243,6 +261,8 @@ function setState() {
|
|
|
if (json && !("traceId" in response) && !statsSet) {
|
|
|
const { dislikes, likes } = json;
|
|
|
cLog(`Received count: ${dislikes}`);
|
|
|
+ likesvalue = likes;
|
|
|
+ dislikesvalue = dislikes;
|
|
|
setDislikes(numberFormat(dislikes));
|
|
|
createRateBar(likes, dislikes);
|
|
|
}
|
|
@@ -251,13 +271,46 @@ function setState() {
|
|
|
}
|
|
|
|
|
|
function likeClicked() {
|
|
|
- cLog("Like clicked", getState());
|
|
|
- setState();
|
|
|
+ if (checkForSignInButton() == false) {
|
|
|
+ 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 (checkForSignInButton() == false) {
|
|
|
+ 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() {
|