presence.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const presence = new Presence({
  2. clientId: "811305223783448627",
  3. });
  4. presence.on("UpdateData", async () => {
  5. const presenceData: PresenceData = {
  6. largeImageKey: "https://cdn.rcd.gg/PreMiD/websites/J/JUKE/assets/logo.png",
  7. buttons: [{ label: "Radio luisteren", url: document.location.href }],
  8. };
  9. if (document.querySelector("span[class*=eC-title]")) {
  10. presenceData.details = document
  11. .querySelector("span[class*=eC-title]")
  12. .textContent.replace("De ", "de ")
  13. .replace("Het ", "het ")
  14. .replace("&", "&");
  15. if (document.querySelector("span[class*=eC-subtitle]")) {
  16. presenceData.state = document
  17. .querySelector("span[class*=eC-subtitle]")
  18. .textContent.replace("De ", "de ")
  19. .replace("Het ", "het ")
  20. .replace("&", "&");
  21. }
  22. }
  23. if (!presenceData.details) {
  24. presenceData.details = "Bladert op JUKE.nl";
  25. presenceData.state = `Pagina '${document.title
  26. .replace(" |", "|")
  27. .split("|")[0]
  28. .replace(
  29. "JUKE - Luister nu jouw favoriete radiozenders, non-stop muziek en podcasts!",
  30. "Home"
  31. )}'`;
  32. }
  33. if (document.querySelector("rect")) {
  34. presenceData.smallImageKey = Assets.Play;
  35. presenceData.smallImageText = "Wordt afgespeeld";
  36. presenceData.buttons = [
  37. { label: "Ook radio luisteren", url: document.location.href },
  38. ];
  39. } else if (document.querySelector("[class*=spinner]")) {
  40. presenceData.smallImageKey = Assets.Pause;
  41. presenceData.smallImageText = "Wordt geladen";
  42. } else if (document.querySelector("polygon")) {
  43. presenceData.smallImageKey = Assets.Pause;
  44. presenceData.smallImageText = "Gepauzeerd";
  45. }
  46. if (presenceData.details) presence.setActivity(presenceData);
  47. else presence.setActivity();
  48. });