1
0

integrations.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { getDomain } from "../utils/misc.js";
  2. import { addStyleFromResource } from "../utils/dom.js";
  3. import { error, info } from "../utils/logging.js";
  4. import { getFeature } from "../config.js";
  5. import "./integrations.css";
  6. //#region Dark Reader
  7. /** Disables Dark Reader if it is present */
  8. export async function disableDarkReader() {
  9. if(getFeature("disableDarkReaderSites") !== getDomain() && getFeature("disableDarkReaderSites") !== "all")
  10. return;
  11. const metaElem = document.createElement("meta");
  12. metaElem.name = "darkreader-lock";
  13. metaElem.id = "bytm-disable-dark-reader";
  14. document.head.appendChild(metaElem);
  15. info("Disabled Dark Reader");
  16. }
  17. //#region SponsorBlock
  18. /** Fixes the z-index of the SponsorBlock panel */
  19. export async function fixSponsorBlock() {
  20. try {
  21. return addStyleFromResource("css-fix_sponsorblock");
  22. }
  23. catch(err) {
  24. error("Failed to fix SponsorBlock styling:", err);
  25. }
  26. }
  27. //#region ThemeSong
  28. /** Adjust the BetterYTM styles if ThemeSong is ***not*** used */
  29. export async function fixPlayerPageTheming() {
  30. try {
  31. return addStyleFromResource("css-fix_playerpage_theming");
  32. }
  33. catch(err) {
  34. error("Failed to fix BetterYTM player page theming:", err);
  35. }
  36. }
  37. /** Sets the lightness of the theme color used by BYTM according to the configured lightness value */
  38. export async function fixThemeSong() {
  39. try {
  40. const cssVarName = (() => {
  41. switch(getFeature("themeSongLightness")) {
  42. default:
  43. case "darker":
  44. return "--ts-palette-darkmuted-hex";
  45. case "normal":
  46. return "--ts-palette-muted-hex";
  47. case "lighter":
  48. return "--ts-palette-lightmuted-hex";
  49. };
  50. })();
  51. document.documentElement.style.setProperty("--bytm-themesong-bg-accent-col", `var(${cssVarName})`);
  52. }
  53. catch(err) {
  54. error("Failed to set ThemeSong integration color lightness:", err);
  55. }
  56. }