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:
authorRyanBurgert219 <sqrtryan@gmail.com>2022-03-20 12:22:27 +0300
committerRyanBurgert219 <sqrtryan@gmail.com>2022-03-20 12:54:22 +0300
commit0630627d3bc1bdde3899932390e359514f51d7c7 (patch)
treee14571553a5abc1521fca1a6c15543acc5df8829
parent1cc579d00d2f3f0d2235e20f15c0ec855adc2b8e (diff)
UserScript: Supports YouTube Shorts
-rw-r--r--Extensions/UserScript/Return Youtube Dislike.user.js28
1 files changed, 26 insertions, 2 deletions
diff --git a/Extensions/UserScript/Return Youtube Dislike.user.js b/Extensions/UserScript/Return Youtube Dislike.user.js
index 0f831b4..8e46192 100644
--- a/Extensions/UserScript/Return Youtube Dislike.user.js
+++ b/Extensions/UserScript/Return Youtube Dislike.user.js
@@ -30,13 +30,34 @@ let likesvalue = 0;
let dislikesvalue = 0;
let isMobile = location.hostname == "m.youtube.com";
+let isShorts = () => location.pathname.startsWith("/shorts")
let mobileDislikes = 0;
function cLog(text, subtext = "") {
subtext = subtext.trim() === "" ? "" : `(${subtext})`;
console.log(`[Return YouTube Dislikes] ${text} ${subtext}`);
}
+function isInViewport(element) {
+ const rect = element.getBoundingClientRect();
+ const height = innerHeight || document.documentElement.clientHeight;
+ const width = innerWidth || document.documentElement.clientWidth;
+ return (
+ rect.top >= 0 &&
+ rect.left >= 0 &&
+ rect.bottom <= height &&
+ rect.right <= width
+ );
+}
+
function getButtons() {
+ if(isShorts()) {
+ let elements=document.querySelectorAll("#like-button > ytd-like-button-renderer");
+ for(let element of elements) {
+ if(isInViewport(element)) {
+ return element;
+ }
+ }
+ }
if (isMobile) {
return document.querySelector(".slim-video-action-bar-actions");
}
@@ -214,6 +235,7 @@ function createRateBar(likes, dislikes) {
}
}
+
function setState() {
cLog("Fetching votes...");
let statsSet = false;
@@ -232,7 +254,6 @@ function setState() {
}
});
});
- setState = function(){};
}
function likeClicked() {
@@ -288,6 +309,9 @@ function getVideoId() {
if (pathname.startsWith("/clip")) {
return document.querySelector("meta[itemprop='videoId']").content;
} else {
+ if (pathname.startsWith("/shorts")) {
+ return pathname.substr(8);
+ }
return urlObject.searchParams.get("v");
}
}
@@ -335,7 +359,7 @@ function setEventListeners(evt) {
function checkForJS_Finish(check) {
console.log();
- if (getButtons()?.offsetParent && isVideoLoaded()) {
+ if (isShorts() || getButtons()?.offsetParent && isVideoLoaded()) {
clearInterval(jsInitChecktimer);
const buttons = getButtons();