presence.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. const presence = new Presence({
  2. clientId: "1234183805380857907",
  3. }),
  4. browsingTimestamp = Math.floor(Date.now() / 1000);
  5. const enum Assets {
  6. Logo = "https://cdn.rcd.gg/PreMiD/websites/W/WriterDuet/assets/logo.png",
  7. }
  8. const enum Pages {
  9. home = "",
  10. script = "script",
  11. blog = "blog",
  12. help = "category",
  13. pricing = "pricing",
  14. article = "article",
  15. }
  16. presence.on("UpdateData", async () => {
  17. const presenceData: PresenceData = {
  18. largeImageKey: Assets.Logo,
  19. startTimestamp: browsingTimestamp,
  20. },
  21. [, page, subpage] = document.location.pathname.split("/");
  22. switch (page.split("#")[0]) {
  23. case Pages.script:
  24. {
  25. presenceData.details = document.title;
  26. presenceData.state = document
  27. .querySelector(".Mui-selected")
  28. .querySelector("[data-tip]").textContent;
  29. presence.setActivity(presenceData);
  30. }
  31. break;
  32. case Pages.home:
  33. {
  34. presenceData.details = "Browsing Home";
  35. }
  36. break;
  37. case Pages.help:
  38. case Pages.article:
  39. {
  40. (presenceData.details = "Browsing Help"),
  41. (presenceData.state =
  42. document.querySelector("#categoryHead > h1")?.textContent ||
  43. document.querySelector(".title").textContent);
  44. }
  45. break;
  46. case Pages.pricing:
  47. presenceData.details = "Reviewing Payement Plans";
  48. break;
  49. case Pages.blog:
  50. {
  51. if (subpage) {
  52. presenceData.details = "Reading Blog Article";
  53. presenceData.state = document.querySelector(
  54. ".jupiterx-post-title"
  55. ).textContent;
  56. } else presenceData.details = "Reading the Blog";
  57. }
  58. break;
  59. default:
  60. presenceData.details = "Browsing the Site";
  61. }
  62. presence.setActivity(presenceData);
  63. });