Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Anarios/return-youtube-dislike.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitrii Selivanov <selivano.d@gmail.com>2022-04-26 19:41:41 +0300
committerGitHub <noreply@github.com>2022-04-26 19:41:41 +0300
commit37bf605573568739ab511f7b818039e520e64441 (patch)
treeef6404ec0bf04d99799840955927f4ef7a205b01
parentb23857f710a3befa1022f3506a117e2f001cdbc5 (diff)
parentadde804a01efbd2f0a67bce830cd57f9de08880f (diff)
Merge pull request #540 from cyrildtm/UserScriptUserOptions
User script user options
-rw-r--r--Extensions/UserScript/Return Youtube Dislike.user.js99
1 files changed, 95 insertions, 4 deletions
diff --git a/Extensions/UserScript/Return Youtube Dislike.user.js b/Extensions/UserScript/Return Youtube Dislike.user.js
index 9961734..af4b3c5 100644
--- a/Extensions/UserScript/Return Youtube Dislike.user.js
+++ b/Extensions/UserScript/Return Youtube Dislike.user.js
@@ -22,6 +22,20 @@
// @grant GM_addStyle
// @run-at document-end
// ==/UserScript==
+
+const extConfig = {
+// BEGIN USER OPTIONS
+// You may change the following variables to allowed values listed in the corresponding brackets (* means default). Keep the style and keywords intact.
+ showUpdatePopup: false, // [true, false*] Show a popup tab after extension update (See what's new)
+ disableVoteSubmission: false, // [true, false*] Disable like/dislike submission (Stops counting your likes and dislikes)
+ coloredThumbs: false, // [true, false*] Colorize thumbs (Use custom colors for thumb icons)
+ coloredBar: false, // [true, false*] Colorize ratio bar (Use custom colors for ratio bar)
+ colorTheme: "classic", // [classic*, accessible, neon] Color theme (red/green, blue/yellow, pink/cyan)
+ numberDisplayFormat: "compactShort", // [compactShort*, compactLong, standard] Number format (For non-English locale users, you may be able to improve appearance with a different option. Please file a feature request if your locale is not covered)
+ numberDisplayRoundDown: true, // [true*, false] Round down numbers (Show rounded down numbers)
+// END USER OPTIONS
+};
+
const LIKED_STATE = "LIKED_STATE";
const DISLIKED_STATE = "DISLIKED_STATE";
const NEUTRAL_STATE = "NEUTRAL_STATE";
@@ -205,6 +219,13 @@ function createRateBar(likes, dislikes) {
likes + dislikes > 0 ? (likes / (likes + dislikes)) * 100 : 50;
if (!rateBar && !isMobile) {
+ let colorLikeStyle = "";
+ let colorDislikeStyle = "";
+ if (extConfig.coloredBar) {
+ colorLikeStyle = "; background-color: " + getColorFromTheme(true);
+ colorDislikeStyle = "; background-color: " + getColorFromTheme(false);
+ }
+
document.getElementById("menu-container").insertAdjacentHTML(
"beforeend",
`
@@ -212,11 +233,11 @@ function createRateBar(likes, dislikes) {
<div class="ryd-tooltip-bar-container">
<div
id="return-youtube-dislike-bar-container"
- style="width: 100%; height: 2px;"
+ style="width: 100%; height: 2px;${colorDislikeStyle}"
>
<div
id="return-youtube-dislike-bar"
- style="width: ${widthPercent}%; height: 100%"
+ style="width: ${widthPercent}%; height: 100%${colorDislikeStyle}"
></div>
</div>
</div>
@@ -236,6 +257,13 @@ function createRateBar(likes, dislikes) {
document.querySelector(
"#ryd-dislike-tooltip > #tooltip"
).innerHTML = `${likes.toLocaleString()}&nbsp;/&nbsp;${dislikes.toLocaleString()}`;
+
+ if (extConfig.coloredBar) {
+ document.getElementById("return-youtube-dislike-bar-container").style.backgroundColor =
+ getColorFromTheme(false);
+ document.getElementById("return-youtube-dislike-bar").style.backgroundColor =
+ getColorFromTheme(true);
+ }
}
}
@@ -254,6 +282,10 @@ function setState() {
dislikesvalue = dislikes;
setDislikes(numberFormat(dislikes));
createRateBar(likes, dislikes);
+ if (extConfig.coloredThumbs === true) {
+ getLikeButton().style.color = getColorFromTheme(true);
+ getDislikeButton().style.color = getColorFromTheme(false);
+ }
}
});
});
@@ -347,14 +379,73 @@ function numberFormat(numberState) {
?.getAttribute("href")
)?.searchParams?.get("locale");
} catch {}
+
+ let numberDisplay;
+ if (extConfig.numberDisplayRoundDown === false) {
+ numberDisplay = numberState;
+ } else {
+ numberDisplay = roundDown(numberState);
+ }
+ return getNumberFormatter(extConfig.numberDisplayFormat).format(
+ numberDisplay
+ );
+}
+
+function getNumberFormatter(optionSelect) {
+ let formatterNotation;
+ let formatterCompactDisplay;
+
+ switch (optionSelect) {
+ case "compactLong":
+ formatterNotation = "compact";
+ formatterCompactDisplay = "long";
+ break;
+ case "standard":
+ formatterNotation = "standard";
+ formatterCompactDisplay = "short";
+ break;
+ case "compactShort":
+ default:
+ formatterNotation = "compact";
+ formatterCompactDisplay = "short";
+ }
+
const formatter = Intl.NumberFormat(
document.documentElement.lang || userLocales || navigator.language,
{
- notation: "compact",
+ notation: formatterNotation,
+ compactDisplay: formatterCompactDisplay,
}
);
+ return formatter;
+}
- return formatter.format(roundDown(numberState));
+function getColorFromTheme(voteIsLike) {
+ let colorString;
+ switch (extConfig.colorTheme) {
+ case "accessible":
+ if (voteIsLike === true) {
+ colorString = "dodgerblue";
+ } else {
+ colorString = "gold";
+ }
+ break;
+ case "neon":
+ if (voteIsLike === true) {
+ colorString = "aqua";
+ } else {
+ colorString = "magenta";
+ }
+ break;
+ case "classic":
+ default:
+ if (voteIsLike === true) {
+ colorString = "lime";
+ } else {
+ colorString = "red";
+ }
+ }
+ return colorString;
}
function setEventListeners(evt) {