ryd.content-script.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import {
  2. getButtons,
  3. getLikeButton,
  4. getDislikeButton,
  5. checkForSignInButton,
  6. } from "./src/buttons";
  7. import {
  8. isMobile,
  9. isVideoDisliked,
  10. isVideoLiked,
  11. getState,
  12. setState,
  13. setLikes,
  14. setDislikes,
  15. getLikeCountFromButton,
  16. LIKED_STATE,
  17. DISLIKED_STATE,
  18. NEUTRAL_STATE,
  19. } from "./src/state";
  20. import { numberFormat, getBrowser, getVideoId, isVideoLoaded, cLog } from "./src/utils";
  21. import { createRateBar } from "./src/bar";
  22. import { sendVideoIds, sendVote, likeClicked, dislikeClicked } from "./src/events"
  23. let storedData = {
  24. likes: 0,
  25. dislikes: 0,
  26. previousState: NEUTRAL_STATE,
  27. };
  28. function setInitialState() {
  29. setState(storedData);
  30. setTimeout(() => {
  31. sendVideoIds();
  32. }, 1500);
  33. }
  34. let jsInitChecktimer = null;
  35. function setEventListeners(evt) {
  36. function checkForJS_Finish() {
  37. if (getButtons()?.offsetParent && isVideoLoaded()) {
  38. clearInterval(jsInitChecktimer);
  39. jsInitChecktimer = null;
  40. const buttons = getButtons();
  41. if (!window.returnDislikeButtonlistenersSet) {
  42. buttons.children[0].addEventListener("click", () => likeClicked(storedData));
  43. buttons.children[1].addEventListener("click", () => dislikeClicked(storedData));
  44. window.returnDislikeButtonlistenersSet = true;
  45. }
  46. setInitialState();
  47. }
  48. }
  49. if (window.location.href.indexOf("watch?") >= 0) {
  50. jsInitChecktimer = setInterval(checkForJS_Finish, 111);
  51. }
  52. }
  53. setEventListeners();
  54. document.addEventListener("yt-navigate-finish", function (event) {
  55. if (jsInitChecktimer !== null) clearInterval(jsInitChecktimer);
  56. window.returnDislikeButtonlistenersSet = false;
  57. setEventListeners();
  58. });
  59. setTimeout(() => sendVideoIds(), 2500);