presence.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. const presence = new Presence({
  2. clientId: "633005889619755038",
  3. });
  4. presence.on("UpdateData", async () => {
  5. const presenceData: PresenceData = {
  6. largeImageKey:
  7. "https://cdn.rcd.gg/PreMiD/websites/W/Wish/assets/logo.png",
  8. },
  9. itemsetting = await presence.getSetting<boolean>("items"),
  10. languagesetting = await presence.getSetting<string>("language");
  11. let itemsite = null,
  12. itemdesc;
  13. // _________________________________________________________________________________________________________________________ Product item
  14. if (
  15. document.querySelector("#related-products-scroll-container > div") === null
  16. ) {
  17. // Ask for item-site
  18. itemsite = false;
  19. } else itemsite = true;
  20. if (itemsetting === true && itemsite === true) {
  21. // Ask for Settings
  22. // ------- important line -------
  23. itemdesc = document.querySelector(
  24. "#related-products-scroll-container > div > div > div.ProductContainer__ProductMainSection-sc-1vbd28u-1.dXQSMR > div.ProductContainer__RightColumn-sc-1vbd28u-3.cgensx > div > div.PurchaseContainer__UpperWrapper-sc-1qlezk8-1.gwTXit > h1"
  25. ).textContent;
  26. // ------------------------------
  27. itemdesc = `${itemdesc.substring(0, itemdesc.length / 2)}...`;
  28. } else if (languagesetting === "0") itemdesc = "Watching an item...";
  29. else if (languagesetting === "1") itemdesc = "Beobachtet ein Produkt...";
  30. // ___________________________________________________________________________________________________________________________
  31. if (document.location.pathname === "/") {
  32. if (languagesetting === "0") {
  33. presenceData.details = "Browsing in mainpage...";
  34. presence.setActivity(presenceData);
  35. } else if (languagesetting === "1") {
  36. presenceData.details = "Stöbert durch";
  37. presenceData.state = "die Startseite...";
  38. presence.setActivity(presenceData);
  39. }
  40. } else if (document.location.pathname === "/wishlist") {
  41. const nameuser = document.querySelector(
  42. "#react-app > div > div.TabBarWrapper__Wrapper-sc-1p5ocnd-0.wZbPl > div.FlexScrollContainer__FlexGrandparent-o9gi86-0.jXFTEW > div > div > div.NavPanel__Wrapper-sc-1uxerbb-0.kFfmiE > div.NavPanel__Name-sc-1uxerbb-1.kHdhxC"
  43. ).textContent;
  44. if (languagesetting === "0") {
  45. presenceData.details = "Browsing thought Wishlist";
  46. presenceData.state = `${nameuser}'s Wishlist`;
  47. presence.setActivity(presenceData);
  48. } else if (languagesetting === "1") {
  49. presenceData.details = "Störbert durch Wunschliste";
  50. presenceData.state = `${nameuser}'s Wunschliste`;
  51. presence.setActivity(presenceData);
  52. }
  53. } else if (document.location.pathname.includes("/wishlist/")) {
  54. const wishlist = document.querySelector(
  55. "#react-app > div > div.TabBarWrapper__Wrapper-sc-1p5ocnd-0.fjpSHM > div.TabBarWrapper__MainRowContainer-sc-1p5ocnd-1.idAkGy > div.Feed__FeedWrapper-sc-10q7yh-0.fiGIea > div.Feed__FeedHeader-sc-10q7yh-1.gOYbXb > h1"
  56. ).textContent;
  57. if (languagesetting === "0") {
  58. presenceData.details = "Browsing thought Wishlist";
  59. presenceData.state = wishlist;
  60. presence.setActivity(presenceData);
  61. } else if (languagesetting === "1") {
  62. presenceData.details = "Stöbert durch Wunschliste";
  63. presenceData.state = wishlist;
  64. presence.setActivity(presenceData);
  65. }
  66. } else if (document.location.pathname.includes("/product/")) {
  67. if (languagesetting === "0") {
  68. presenceData.details = "Viewing product";
  69. presenceData.state = itemdesc;
  70. presence.setActivity(presenceData);
  71. } else if (languagesetting === "1") {
  72. presenceData.details = "Schaut auf ein Produkt";
  73. presenceData.state = itemdesc;
  74. presence.setActivity(presenceData);
  75. }
  76. } else {
  77. switch (document.location.pathname) {
  78. case "/cart": {
  79. if (languagesetting === "0") {
  80. presenceData.details = "Viewing cart...";
  81. presenceData.state = "Someone have Promocodes?";
  82. presence.setActivity(presenceData);
  83. } else if (languagesetting === "1") {
  84. presenceData.details = "Schaut in Warenkorb";
  85. presenceData.state = "Hat jemand Promocodes?";
  86. presence.setActivity(presenceData);
  87. }
  88. break;
  89. }
  90. case "/notifications": {
  91. if (languagesetting === "0") {
  92. presenceData.details = "Looking for Notifications";
  93. presenceData.state = "Many deals today owo";
  94. presence.setActivity(presenceData);
  95. } else if (languagesetting === "1") {
  96. presenceData.details = "Schaut nach Nachrichten";
  97. presenceData.state = "So viele Deals owo";
  98. presence.setActivity(presenceData);
  99. }
  100. break;
  101. }
  102. case "/refer": {
  103. const code = document.querySelector(
  104. "#react-app > div > div.TabBarWrapper__Wrapper-sc-1p5ocnd-0.wZbPl > div.ReferralPage__MainWrapper-zs6pzr-0.bDMHGd > div.ReferralPage__ContentWrapper-zs6pzr-2.cHgkEg > div.ReferralPage__CodeSectionWrapper-zs6pzr-8.eOMTZS > div.ReferralPage__CodeBoxWrapper-zs6pzr-10.eoklod > div.ReferralPage__CodeBox-zs6pzr-14.bupEiO"
  105. ).textContent;
  106. if (languagesetting === "0") {
  107. presenceData.details = "Looking for new Customers";
  108. presenceData.state = `50% discount > Code: ${code}`;
  109. presence.setActivity(presenceData);
  110. } else if (languagesetting === "1") {
  111. presenceData.details = "Sucht neue Kunden";
  112. presenceData.state = `50% Rabatt > Code: ${code}`;
  113. presence.setActivity(presenceData);
  114. }
  115. break;
  116. }
  117. default:
  118. if (document.location.pathname.includes("/transaction/")) {
  119. if (languagesetting === "0") {
  120. presenceData.details = "Viewing transactions...";
  121. presenceData.state = "Waiting for a product";
  122. presence.setActivity(presenceData);
  123. } else if (languagesetting === "1") {
  124. presenceData.details = "Schaut auf Bestellungen";
  125. presenceData.state = "Wartet auf ein Produkt";
  126. presence.setActivity(presenceData);
  127. }
  128. } else if (document.location.pathname === "/profile") {
  129. const name2 = document.querySelector(
  130. "#react-app > div > div.TabBarWrapper__Wrapper-sc-1p5ocnd-0.wZbPl > div.FlexScrollContainer__FlexGrandparent-o9gi86-0.jXFTEW > div > div > div.NavPanel__Wrapper-sc-1uxerbb-0.kFfmiE > div.NavPanel__Name-sc-1uxerbb-1.kHdhxC"
  131. ).textContent;
  132. if (languagesetting === "0") {
  133. presenceData.details = "Viewing profile";
  134. presenceData.state = name2;
  135. presence.setActivity(presenceData);
  136. } else if (languagesetting === "1") {
  137. presenceData.details = "Schaut auf ein Profil";
  138. presenceData.state = name2;
  139. presence.setActivity(presenceData);
  140. }
  141. } else if (document.location.pathname.includes("/merchant/")) {
  142. const shop = document.querySelector(
  143. "#react-app > div > div.TabBarWrapper__Wrapper-sc-1p5ocnd-0.fjpSHM > div.TabBarWrapper__MainRowContainer-sc-1p5ocnd-1.idAkGy > div.MerchantPage__Wrapper-sc-1nxlnue-0.doABiZ > div.MerchantPage__HeaderWrapper-sc-1nxlnue-1.gYkbZT > div > div > h1"
  144. ).textContent;
  145. if (languagesetting === "0") {
  146. presenceData.details = "Viewing shop";
  147. presenceData.state = shop;
  148. presence.setActivity(presenceData);
  149. } else if (languagesetting === "1") {
  150. presenceData.details = "Stöbert durch Shop";
  151. presenceData.state = shop;
  152. presence.setActivity(presenceData);
  153. }
  154. } else {
  155. switch (document.location.pathname) {
  156. case "/feed/tabbed_feed_latest": {
  157. if (languagesetting === "0") {
  158. presenceData.details = "Viewing popular Feed...";
  159. presence.setActivity(presenceData);
  160. } else if (languagesetting === "1") {
  161. presenceData.details = "Stöbert durch";
  162. presenceData.state = "Populär Feed";
  163. presence.setActivity(presenceData);
  164. }
  165. if (document.location.pathname.includes("/product/")) {
  166. presenceData.details = "Viewing product";
  167. presenceData.state = document.querySelector(
  168. "#react-app > div > div.modal-root.BaseModal__ModalContainer-sc-188teto-4.bFHXBY > div > div > div > div > div.ProductContainer__ProductMainSection-sc-1vbd28u-1.fYThRf > div.ProductContainer__RightColumn-sc-1vbd28u-3.ewTgOn > div > div.PurchaseContainer__UpperWrapper-sc-1qlezk8-1.jEnuPa > h1"
  169. ).textContent;
  170. presence.setActivity(presenceData);
  171. }
  172. // ----------------------------------------------------------
  173. break;
  174. }
  175. case "/feed/pickup__tab": {
  176. if (languagesetting === "0") {
  177. presenceData.details = "Viewing local Feed...";
  178. presence.setActivity(presenceData);
  179. } else if (languagesetting === "1") {
  180. presenceData.details = "Stöbert durch";
  181. presenceData.details = "Lokal Feed";
  182. presence.setActivity(presenceData);
  183. }
  184. if (document.location.pathname.includes("/product/")) {
  185. presenceData.details = "Viewing product";
  186. presenceData.state = itemdesc;
  187. presence.setActivity(presenceData);
  188. }
  189. // -------------------------------------------------------------
  190. break;
  191. }
  192. case "/feed/blitz_buy__tab": {
  193. if (languagesetting === "0") {
  194. presenceData.details = "Wheel of Fortune";
  195. presenceData.state = "Try your Luck!";
  196. presence.setActivity(presenceData);
  197. } else if (languagesetting === "1") {
  198. presenceData.details = "Glücksrat";
  199. presenceData.state = "Versuche dein Glück";
  200. presence.setActivity(presenceData);
  201. }
  202. if (document.location.pathname.includes("/product/")) {
  203. presenceData.details = "Viewing product";
  204. presenceData.state = itemdesc;
  205. presence.setActivity(presenceData);
  206. }
  207. //---------------------------------------------------------------
  208. break;
  209. }
  210. case "/feed/express__tab": {
  211. if (languagesetting === "0") {
  212. presenceData.details = "Viewing express Feed...";
  213. presence.setActivity(presenceData);
  214. } else if (languagesetting === "1") {
  215. presenceData.details = "Stöbert durch";
  216. presenceData.state = "Express Feed";
  217. presence.setActivity(presenceData);
  218. }
  219. if (document.location.pathname.includes("/product/")) {
  220. presenceData.details = "Viewing product";
  221. presenceData.state = itemdesc;
  222. presence.setActivity(presenceData);
  223. }
  224. //------------------------------------------------------------------
  225. break;
  226. }
  227. case "/feed/recently_viewed__tab": {
  228. if (languagesetting === "0") {
  229. presenceData.details = "Look at";
  230. presenceData.state = "recently seen products";
  231. presence.setActivity(presenceData);
  232. } else if (languagesetting === "1") {
  233. presenceData.details = "Schaut auf";
  234. presenceData.state = "kürzlich gesehene Produkte";
  235. presence.setActivity(presenceData);
  236. }
  237. if (document.location.pathname.includes("/product/")) {
  238. presenceData.details = "Viewing product";
  239. presenceData.state = itemdesc;
  240. presence.setActivity(presenceData);
  241. }
  242. //--------------------------------------------------------------
  243. break;
  244. }
  245. default:
  246. if (document.location.pathname.includes("/feed/tag_")) {
  247. const tag = document.querySelector(
  248. "#react-app > div > div.TabBarWrapper__Wrapper-sc-1p5ocnd-0.fjpSHM > div.TabBar__Wrapper-sc-1vadptt-0.bTjdiW > div > div > div > h1"
  249. ).textContent;
  250. if (languagesetting === "0") {
  251. presenceData.details = "Viewing for";
  252. presenceData.state = tag;
  253. presence.setActivity(presenceData);
  254. } else if (languagesetting === "1") {
  255. presenceData.details = "Stöbert durch";
  256. presenceData.state = tag;
  257. presence.setActivity(presenceData);
  258. }
  259. if (document.location.pathname.includes("/product/")) {
  260. presenceData.details = "Viewing product";
  261. presenceData.state = document.querySelector(
  262. "#react-app > div > div.modal-root.BaseModal__ModalContainer-sc-188teto-4.bFHXBY > div > div > div > div > div.ProductContainer__ProductMainSection-sc-1vbd28u-1.fYThRf > div.ProductContainer__RightColumn-sc-1vbd28u-3.ewTgOn > div > div.PurchaseContainer__UpperWrapper-sc-1qlezk8-1.jEnuPa > h1"
  263. ).textContent;
  264. presence.setActivity(presenceData);
  265. }
  266. } else presence.setActivity();
  267. }
  268. }
  269. }
  270. }
  271. });