presence.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const presence = new Presence({
  2. clientId: "633795089600348160",
  3. }),
  4. browsingTimestamp = Math.floor(Date.now() / 1000);
  5. let title: HTMLElement, search: HTMLInputElement;
  6. presence.on("UpdateData", async () => {
  7. const presenceData: PresenceData = {
  8. largeImageKey:
  9. "https://cdn.rcd.gg/PreMiD/websites/Y/YAGPDB/assets/logo.png",
  10. };
  11. if (document.location.hostname === "yagpdb.xyz") {
  12. presenceData.startTimestamp = browsingTimestamp;
  13. switch (document.URL) {
  14. case "yagpdb.xyz": {
  15. presenceData.details = "Viewing the homepage";
  16. break;
  17. }
  18. case "yagpdb.xyz/#features": {
  19. presenceData.details = "Viewing the features";
  20. break;
  21. }
  22. case "yagpdb.xyz/#about": {
  23. presenceData.details = "Viewing the about section";
  24. break;
  25. }
  26. default:
  27. if (document.querySelector("#main-content > header > h2")) {
  28. title = document.querySelector("#main-content > header > h2");
  29. presenceData.details = "Control Panel - Editing:";
  30. presenceData.smallImageKey = Assets.Writing;
  31. presenceData.state = title.textContent;
  32. if (title.textContent === "News and updates") {
  33. presenceData.details = "Reading the news";
  34. presenceData.smallImageKey = Assets.Reading;
  35. delete presenceData.state;
  36. }
  37. } else if (document.location.pathname.includes("/manage/"))
  38. presenceData.details = "Viewing the Control Panel";
  39. }
  40. } else if (document.location.hostname === "docs.yagpdb.xyz") {
  41. title = document.querySelector("head > title");
  42. search = document.querySelector(
  43. "#__GITBOOK__ROOT__ > div > div.reset-3c756112--bodyContent-2f98451b > div > div.reset-3c756112--backdrop-1322b68a--sheetBackdrop-457fd54f > div > div.reset-3c756112--sheetHeader-2187bd71--small-2783b5d4 > div.reset-3c756112--sheetHeaderInner-96159b50 > div > div > div.reset-3c756112--inputInnerSizer-756c9114 > input"
  44. );
  45. presenceData.startTimestamp = browsingTimestamp;
  46. if (search) {
  47. if (search.value !== "") {
  48. presenceData.details = "Docs searching for:";
  49. presenceData.state = search.value;
  50. presenceData.smallImageKey = Assets.Search;
  51. } else {
  52. presenceData.details = "Docs going to search something up";
  53. presenceData.smallImageKey = Assets.Search;
  54. }
  55. } else if (title.textContent === "MEE6 Helpdesk")
  56. presenceData.details = "Browsing the helpdesk";
  57. else {
  58. presenceData.details = "Docs viewing:";
  59. presenceData.state = title.textContent.replace(" - YAGPDB", "");
  60. presenceData.smallImageKey = Assets.Reading;
  61. }
  62. }
  63. if (presenceData.details) presence.setActivity(presenceData);
  64. else presence.setActivity();
  65. });