presence.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const presence = new Presence({
  2. clientId: "575756169986048004",
  3. }),
  4. strings = presence.getStrings({
  5. play: "general.playing",
  6. pause: "general.paused",
  7. });
  8. let songName: HTMLElement,
  9. songArtist: HTMLElement,
  10. songNameS: string,
  11. songArtistS: string,
  12. thumbnail: HTMLImageElement;
  13. presence.on("UpdateData", async () => {
  14. const sidePanel = document.querySelector(".MuiPaper-elevation");
  15. if (sidePanel && sidePanel.childNodes[1]) {
  16. thumbnail = sidePanel.childNodes[1].childNodes[0].childNodes[0]
  17. .childNodes[0] as HTMLImageElement;
  18. }
  19. const presenceData: PresenceData = {
  20. largeImageKey:
  21. thumbnail ??
  22. "https://cdn.rcd.gg/PreMiD/websites/L/LITT%20Live/assets/logo.png",
  23. };
  24. songName = document.querySelector(
  25. "header.MuiAppBar-root > div.music-dataview-container > span.App-Player-Song-Title-Text"
  26. );
  27. if (!songName) {
  28. songNameS = document
  29. .querySelector("#marquee1")
  30. .textContent.replace("<span>", "")
  31. .replace("</span>", "");
  32. if (songNameS === "") songNameS = "None";
  33. } else if (songName) songNameS = songName.textContent;
  34. songArtist = document.querySelector(
  35. "header.MuiAppBar-root > div.music-dataview-container > span.App-Player-Song-Artist-Text"
  36. );
  37. if (!songArtist) {
  38. songArtistS = document
  39. .querySelector("#marquee2")
  40. .textContent.replaceAll("&amp;", "&")
  41. .replace('<span class="artist">', "")
  42. .replace("</span>", "");
  43. if (songNameS === "") songArtistS = "None";
  44. } else if (songArtist)
  45. songArtistS = songArtist.textContent.replace("&amp;", "&");
  46. if ((songNameS === "None" && songArtistS === "None") || songArtistS === "") {
  47. presenceData.smallImageKey = Assets.Pause;
  48. presenceData.smallImageText = "PauseChamp";
  49. presenceData.details = (await strings).pause;
  50. } else {
  51. presenceData.smallImageKey = Assets.Play;
  52. presenceData.smallImageText = "Playing...";
  53. presenceData.details = songNameS;
  54. presenceData.state = songArtistS;
  55. }
  56. if (presenceData.details) presence.setActivity(presenceData);
  57. else presence.setActivity();
  58. });