import { getButtons, getLikeButton, getDislikeButton, checkForSignInButton, } from "./src/buttons"; import { isMobile, isVideoDisliked, isVideoLiked, getState, setState, setInitialState, setLikes, setDislikes, getLikeCountFromButton, LIKED_STATE, DISLIKED_STATE, NEUTRAL_STATE, } from "./src/state"; import { numberFormat, getBrowser, getVideoId, isVideoLoaded, cLog } from "./src/utils"; import { createRateBar } from "./src/bar"; import { sendVideoIds, sendVote, likeClicked, dislikeClicked } from "./src/events" let storedData = { likes: 0, dislikes: 0, previousState: NEUTRAL_STATE, }; let jsInitChecktimer = null; function setEventListeners(evt) { function checkForJS_Finish() { if (getButtons()?.offsetParent && isVideoLoaded()) { clearInterval(jsInitChecktimer); jsInitChecktimer = null; const buttons = getButtons(); if (!window.returnDislikeButtonlistenersSet) { buttons.children[0].addEventListener("click", () => likeClicked(storedData)); buttons.children[1].addEventListener("click", () => dislikeClicked(storedData)); window.returnDislikeButtonlistenersSet = true; } setInitialState(storedData); } } if (window.location.href.indexOf("watch?") >= 0) { jsInitChecktimer = setInterval(checkForJS_Finish, 111); } } setEventListeners(); document.addEventListener("yt-navigate-finish", function (event) { if (jsInitChecktimer !== null) clearInterval(jsInitChecktimer); window.returnDislikeButtonlistenersSet = false; setEventListeners(); }); setTimeout(() => sendVideoIds(), 2500);