diff options
author | RyanBurgert219 <sqrtryan@gmail.com> | 2022-03-20 12:22:27 +0300 |
---|---|---|
committer | RyanBurgert219 <sqrtryan@gmail.com> | 2022-03-20 12:54:22 +0300 |
commit | 0630627d3bc1bdde3899932390e359514f51d7c7 (patch) | |
tree | e14571553a5abc1521fca1a6c15543acc5df8829 | |
parent | 1cc579d00d2f3f0d2235e20f15c0ec855adc2b8e (diff) |
UserScript: Supports YouTube Shorts
-rw-r--r-- | Extensions/UserScript/Return Youtube Dislike.user.js | 28 |
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(); |