presence.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const presence = new Presence({
  2. clientId: "754742129221173278",
  3. }),
  4. browsingTimestamp = Math.floor(Date.now() / 1000);
  5. let item;
  6. presence.on("UpdateData", async () => {
  7. const presenceData: PresenceData = {
  8. largeImageKey:
  9. "https://cdn.rcd.gg/PreMiD/websites/L/Linus%20Tech%20Tips/assets/logo.png",
  10. startTimestamp: browsingTimestamp,
  11. };
  12. if (document.location.hostname === "linustechtips.com") {
  13. if (document.location.pathname === "/") {
  14. presenceData.details = "Browsing";
  15. presenceData.state = "Categories";
  16. presence.setActivity(presenceData);
  17. } else if (document.location.pathname.includes("/forum/")) {
  18. item = document.querySelector("h1") as HTMLElement;
  19. presenceData.details = "Browsing Category";
  20. presenceData.state = item.textContent;
  21. presenceData.smallImageKey = Assets.Search;
  22. presence.setActivity(presenceData);
  23. } else if (document.location.pathname.includes("/topic/")) {
  24. item = document.querySelector("h1.ipsType_pageTitle") as HTMLElement;
  25. presenceData.details = "Viewing Thread";
  26. presenceData.state = item.textContent;
  27. presenceData.smallImageKey = Assets.Reading;
  28. presence.setActivity(presenceData);
  29. } else if (document.location.pathname.includes("/profile/")) {
  30. item = document.querySelector(
  31. "div.ipsColumns div.ipsColumn_fluid h1"
  32. ) as HTMLElement;
  33. presenceData.details = "Viewing Profile";
  34. presenceData.state = item.textContent;
  35. presence.setActivity(presenceData);
  36. } else presence.setActivity();
  37. }
  38. });