diff options
author | CreaZyp154 <cyril@strahm.org> | 2022-04-12 14:43:50 +0300 |
---|---|---|
committer | CreaZyp154 <cyril@strahm.org> | 2022-04-12 14:43:50 +0300 |
commit | 43a7167e2b02a5476a98ee87cffa1f9778ae9824 (patch) | |
tree | 29a326447b01853d312e1d98501c12e66ec4bedf | |
parent | 1d2f89a38c6743489e399fd9d5021df52d3f6150 (diff) |
Closes #472
-rw-r--r-- | Extensions/combined/_locales/en/messages.json | 3 | ||||
-rw-r--r-- | Extensions/combined/_locales/fr/messages.json | 3 | ||||
-rw-r--r-- | Extensions/combined/src/bar.js | 9 | ||||
-rw-r--r-- | Extensions/combined/src/state.js | 29 |
4 files changed, 28 insertions, 16 deletions
diff --git a/Extensions/combined/_locales/en/messages.json b/Extensions/combined/_locales/en/messages.json index c53f45a..f937645 100644 --- a/Extensions/combined/_locales/en/messages.json +++ b/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." }, diff --git a/Extensions/combined/_locales/fr/messages.json b/Extensions/combined/_locales/fr/messages.json index 7556201..1fc16cb 100644 --- a/Extensions/combined/_locales/fr/messages.json +++ b/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" }, diff --git a/Extensions/combined/src/bar.js b/Extensions/combined/src/bar.js index dbd4c68..c56ab57 100644 --- a/Extensions/combined/src/bar.js +++ b/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); + } } } diff --git a/Extensions/combined/src/state.js b/Extensions/combined/src/state.js index c4abdfa..4ca7d35 100644 --- a/Extensions/combined/src/state.js +++ b/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 }; |