presence.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const presence = new Presence({
  2. clientId: "629650221634158592",
  3. }),
  4. pages: {
  5. [name: string]: string;
  6. } = {
  7. "/siparislerim": "Siparişlerim",
  8. "/hesabim": "Hesabım",
  9. "/ayagina-gelsin/teslimat-adreslerim": "Teslimat Adreslerim",
  10. "/ayagina-gelsin/fatura-adreslerim": "Fatura Adreslerim",
  11. "/ayagina-gelsin/hediye-ceklerim": "Hedi Çeklerim",
  12. "/yorumlarim": "Yorumlarım",
  13. "/mesajlarim": "Müşteri Hizmetleri Mesajlarım",
  14. "/ayagina-gelsin/sepetim": "Sepet",
  15. "/gunun-firsati-teklifi": "Günün Fırsatları",
  16. "/hepsiglobal": "Yurt Dışı Alışveriş (Hepsiglobal)",
  17. "/kampanyalar": "Kampanyalar",
  18. "/girisimci-kadinlar": "Girişimci Kadınlar",
  19. "/yardim": "Yardım & Destek",
  20. "/hesabim/bize-sorun": "Bize Sorun",
  21. };
  22. presence.on("UpdateData", async () => {
  23. const page = document.location.pathname,
  24. productName = document.querySelector("#product-name"),
  25. attr = document.querySelector("#offering-price").attributes as unknown as {
  26. [name: string]: HTMLElement;
  27. },
  28. price =
  29. (document.querySelector("#offering-price") as HTMLElement) &&
  30. attr.content &&
  31. attr.content.textContent !== ""
  32. ? attr.content.textContent
  33. : null,
  34. seller = document.querySelector(
  35. "#productResult > div > div > div > div.col.lg-1.md-1.sm-1.filter-content > section > div > div.title-wrapper.with-bg.for-desktop.brand > h1"
  36. ) as HTMLElement,
  37. presenceData: PresenceData = {
  38. largeImageKey:
  39. "https://cdn.rcd.gg/PreMiD/websites/H/Hepsiburada/assets/logo.png",
  40. startTimestamp: Math.floor(Date.now() / 1000),
  41. };
  42. if (productName && productName.textContent !== "") {
  43. presenceData.details = "Bir ürüne göz atıyor:";
  44. presenceData.state = `${productName.textContent.trim()}${
  45. price ? ` - ${price} TL` : ""
  46. }`;
  47. } else if (pages[page] || pages[page.slice(0, -1)]) {
  48. presenceData.details = "Bir sayfaya göz atıyor:";
  49. presenceData.state = pages[page] || pages[page.slice(0, -1)];
  50. } else if (page.includes("/ara")) {
  51. presenceData.details = "Bir şey arıyor:";
  52. presenceData.state =
  53. document.title && document.title.includes(" - Hepsiburada")
  54. ? document.title.replace(" - Hepsiburada", "")
  55. : "";
  56. presenceData.smallImageKey = Assets.Search;
  57. } else if (seller && seller.textContent !== "") {
  58. presenceData.details = "Bir mağazaya göz atıyor:";
  59. presenceData.state = seller.textContent.trim();
  60. } else {
  61. presenceData.details = "Bir sayfaya göz atıyor:";
  62. presenceData.state = "Ana Sayfa";
  63. }
  64. if (presenceData.details && presenceData.state)
  65. presence.setActivity(presenceData);
  66. });