presence.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. const presence = new Presence({
  2. clientId: "797879854343127040",
  3. }),
  4. browsingTimestamp = Math.floor(Date.now() / 1000);
  5. presence.on("UpdateData", async () => {
  6. const presenceData = {
  7. largeImageKey:
  8. "https://cdn.rcd.gg/PreMiD/websites/B/Brick%20Hill/assets/logo.png",
  9. details: "Viewing Page:",
  10. state: "404",
  11. startTimestamp: browsingTimestamp,
  12. };
  13. // Main Presence
  14. if (
  15. document.location.pathname === "/" ||
  16. document.location.pathname === "/dashboard"
  17. ) {
  18. presenceData.details = "Viewing Page:";
  19. presenceData.state = "Dashboard";
  20. } else if (document.location.pathname.includes("/login/")) {
  21. presenceData.details = "Viewing Page:";
  22. presenceData.state = "Login";
  23. } else if (document.location.pathname.includes("/register/")) {
  24. presenceData.details = "Viewing Page:";
  25. presenceData.state = "Register";
  26. } else if (document.location.pathname.includes("/play/")) {
  27. if (document.location.pathname === "/play/") {
  28. presenceData.details = "Viewing Page:";
  29. presenceData.state = "Games";
  30. } else {
  31. presenceData.details = "Viewing Game:";
  32. presenceData.state = document.querySelector(
  33. "body > div.main-holder.grid > div:nth-child(2) > div:nth-child(1) > div.top.blue"
  34. ).textContent;
  35. }
  36. } else if (document.location.pathname.includes("/clans/")) {
  37. presenceData.details = "Viewing Page:";
  38. presenceData.state = "Clans";
  39. } else if (document.location.pathname.includes("/clan/")) {
  40. presenceData.details = "Viewing Clan:";
  41. presenceData.state = document.querySelector(
  42. "body > div.main-holder.grid > div:nth-child(2) > div.card > div.top > span"
  43. ).textContent;
  44. } else if (document.location.pathname.includes("/search/")) {
  45. presenceData.details = "Viewing Page:";
  46. presenceData.state = "Search";
  47. } else if (document.location.pathname.includes("/user/")) {
  48. presenceData.details = "Viewing User:";
  49. presenceData.state = document.querySelector(
  50. "body > div.main-holder.grid > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div > span.ellipsis"
  51. ).textContent;
  52. } else if (document.location.pathname === "/forum/") {
  53. presenceData.details = "Viewing Page:";
  54. presenceData.state = "Forum";
  55. } else if (document.location.pathname.includes("/membership/")) {
  56. presenceData.details = "Viewing Page:";
  57. presenceData.state = "Membership";
  58. } else if (document.location.pathname.includes("/customize/")) {
  59. presenceData.details = "Viewing Page:";
  60. presenceData.state = "Avatar";
  61. } else if (document.location.pathname.includes("/client/")) {
  62. presenceData.details = "Viewing Page:";
  63. presenceData.state = "Download";
  64. } else if (document.location.pathname.includes("/trades/")) {
  65. presenceData.details = "Viewing Page:";
  66. presenceData.state = "Trades";
  67. } else if (document.location.pathname.includes("/promocodes/")) {
  68. presenceData.details = "Viewing Page:";
  69. presenceData.state = "Promocodces";
  70. } else if (document.location.pathname.includes("/currency/")) {
  71. presenceData.details = "Viewing Page:";
  72. presenceData.state = "Currency";
  73. } else if (document.location.pathname.includes("/settings/")) {
  74. presenceData.details = "Viewing Page:";
  75. presenceData.state = "Settings";
  76. } else if (document.location.pathname.includes("/thread/")) {
  77. presenceData.details = "Viewing Thread:";
  78. presenceData.state = document.querySelector(".top").textContent;
  79. } else if (document.location.pathname.includes("/shop/")) {
  80. if (document.location.pathname === "/shop/") {
  81. presenceData.details = "Viewing Page:";
  82. presenceData.state = "Shop";
  83. } else {
  84. presenceData.details = "Viewing Item:";
  85. presenceData.state = document.querySelector(".medium-text").textContent;
  86. }
  87. }
  88. // Blog Presence
  89. if (document.location.origin.includes("blog.brick-hill.com")) {
  90. if (document.location.pathname === "/") {
  91. presenceData.details = "Viewing Page:";
  92. presenceData.state = "Blog";
  93. } else if (document.location.pathname.includes("/author/")) {
  94. presenceData.details = "Viewing Blog Author:";
  95. presenceData.state = document.querySelector(
  96. "body > div > section > h1"
  97. ).textContent;
  98. } else if (document.location.pathname.includes("/page/")) {
  99. presenceData.details = "Viewing Page:";
  100. presenceData.state = `Blog (${
  101. document.querySelector("#content > div > nav > span").textContent
  102. })`;
  103. }
  104. }
  105. // API Presence
  106. if (
  107. document.location.origin.includes("api.brick-hill.com") &&
  108. document.location.pathname.includes("/docs")
  109. ) {
  110. presenceData.details = "Viewing Page:";
  111. presenceData.state = "API Docs";
  112. }
  113. if (presenceData.details) presence.setActivity(presenceData);
  114. else presence.setActivity();
  115. });