12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { isMobile, isShorts } from "./state";
- import { isInViewport } from "./utils";
- function getButtons() {
- //--- If Watching Youtube Shorts: ---//
- if (isShorts()) {
- let elements = document.querySelectorAll(
- isMobile()
- ? "ytm-like-button-renderer"
- : "#like-button > ytd-like-button-renderer"
- );
- for (let element of elements) {
- //Youtube Shorts can have multiple like/dislike buttons when scrolling through videos
- //However, only one of them should be visible (no matter how you zoom)
- if (isInViewport(element)) {
- return element;
- }
- }
- }
- //--- If Watching On Mobile: ---//
- if (isMobile()) {
- return document.querySelector(".slim-video-action-bar-actions");
- }
- //--- If Menu Element Is Displayed: ---//
- if (document.getElementById("menu-container")?.offsetParent === null) {
- return document.querySelector("ytd-menu-renderer.ytd-watch-metadata > div");
- //--- If Menu Element Isnt Displayed: ---//
- } else {
- return document
- .getElementById("menu-container")
- ?.querySelector("#top-level-buttons-computed");
- }
- }
- function getLikeButton() {
- return getButtons().children[0];
- }
- function getDislikeButton() {
- return getButtons().children[1];
- }
- function checkForSignInButton() {
- if (
- document.querySelector(
- "a[href^='https://accounts.google.com/ServiceLogin']"
- )
- ) {
- return true;
- } else {
- return false;
- }
- }
- export { getButtons, getLikeButton, getDislikeButton, checkForSignInButton };
|