BetterYTM.user.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { getFeatures } from "./config";
  2. import { dbg, info } from "./constants";
  3. import { addMediaCtrlGeniusBtn, addMenu, addQueueGeniusBtns, addWatermark, geniUrlBase, initArrowKeySkip, initChangelog, initLayout as preInitLayout, initSiteSwitch, removeUpgradeTab, setVolSliderSize, setVolSliderStep } from "./features/index";
  4. import { getDomain } from "./utils";
  5. (async () => {
  6. //#MARKER init
  7. const features = await getFeatures();
  8. await preInitLayout();
  9. try {
  10. // TODO: add some style
  11. console.log(`${info.name} v${info.version} - ${info.namespace}`);
  12. console.log(`Powered by lots of ambition and my song metadata API called geniURL: ${geniUrlBase}`);
  13. document.addEventListener("DOMContentLoaded", onDomLoad);
  14. }
  15. catch(err) {
  16. console.error("BetterYTM - General Error:", err);
  17. }
  18. await initChangelog();
  19. /** Called when the DOM has finished loading (after `DOMContentLoaded` is emitted) */
  20. async function onDomLoad() {
  21. const domain = getDomain();
  22. dbg && console.log(`BetterYTM: Initializing features for domain '${domain}'`);
  23. try {
  24. if(domain === "ytm") {
  25. if(features.arrowKeySupport)
  26. initArrowKeySkip();
  27. if(features.removeUpgradeTab)
  28. removeUpgradeTab();
  29. if(features.watermarkEnabled)
  30. addWatermark();
  31. if(features.geniusLyrics)
  32. await addMediaCtrlGeniusBtn();
  33. if(features.lyricsButtonsOnSongQueue)
  34. await addQueueGeniusBtns();
  35. if(typeof features.volumeSliderSize === "number")
  36. setVolSliderSize();
  37. setVolSliderStep();
  38. }
  39. if(["ytm", "yt"].includes(domain)) {
  40. if(features.switchBetweenSites)
  41. initSiteSwitch(domain);
  42. try {
  43. addMenu();
  44. }
  45. catch(err) {
  46. console.error("BetterYTM: Couldn't add menu:", err);
  47. }
  48. }
  49. }
  50. catch(err) {
  51. console.error("BetterYTM: General error while executing feature:", err);
  52. }
  53. }
  54. })();