presence.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const presence = new Presence({
  2. clientId: "993215633351245964",
  3. }),
  4. browsingTimestamp = Math.floor(Date.now() / 1000);
  5. presence.on("UpdateData", async () => {
  6. const presenceData: PresenceData = {
  7. largeImageKey:
  8. "https://cdn.rcd.gg/PreMiD/websites/N/Nightride.fm/assets/logo.png",
  9. },
  10. songName = `${document.querySelector("#npArtist").textContent} ${
  11. document.querySelector("#npTitle").textContent
  12. }`;
  13. let state;
  14. if (document.querySelector("body").className.includes("playing")) {
  15. state = "Playing";
  16. presenceData.smallImageKey = Assets.Play;
  17. presenceData.smallImageText = "Playing";
  18. presenceData.startTimestamp = browsingTimestamp;
  19. } else {
  20. state = "Paused";
  21. presenceData.smallImageKey = Assets.Pause;
  22. presenceData.smallImageText = "Paused";
  23. presenceData.endTimestamp;
  24. }
  25. presenceData.state = `${state}: ${songName}`;
  26. presenceData.buttons = [
  27. { label: "Go to station", url: document.location.href },
  28. ];
  29. if (document.location.pathname.includes("/stations"))
  30. presenceData.details = "Viewing stations";
  31. else if (document.location.pathname.includes("/news"))
  32. presenceData.details = "Viewing news";
  33. else if (document.location.pathname.includes("/milkdrop"))
  34. presenceData.details = "Viewing milkdrop";
  35. else if (document.location.pathname.includes("/chat"))
  36. presenceData.details = "Viewing chat";
  37. else if (document.location.pathname.includes("/archive"))
  38. presenceData.details = "Viewing archives";
  39. else if (document.location.pathname.includes("releases"))
  40. presenceData.details = "Viewing releases";
  41. else if (document.location.pathname.includes("/about"))
  42. presenceData.details = "Viewing details of Nightride.fm";
  43. else delete presenceData.details;
  44. presence.setActivity(presenceData);
  45. });