presence.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. const presence = new Presence({
  2. clientId: "629588152679399424",
  3. }),
  4. pages: {
  5. [name: string]: string;
  6. } = {
  7. "/hesabim/siparislerim": "Siparişlerim",
  8. "/hesabim/iptal-degisim-iade": "İptal, Değişim ve İade",
  9. "/hesabim/biletlerim": "Biletlerim",
  10. "/hesabim/kuponlarim": "Kuponlarım",
  11. "/hesabim/garajim": "Garajım",
  12. "/hesabim/istek-listelerim": "Favorilerim / Listelerim",
  13. "/hesabim/yorumlarim-incelemelerim": "Yorumlarım",
  14. "/hesabim/soru-cevap": "Soru & Cevap",
  15. "/hesabim/bilgi-guncelleme": "Üyelik Bilgilerim",
  16. "/hesabim/teslimat-adresi": "Adreslerim",
  17. "/hesabim/sifre-degistir": "Şifre Değiştir",
  18. "/hesabim/uyelik-iptali": "Üyelik İptali",
  19. "/hesabim/sepetim": "Sepet",
  20. "/sepetim": "Sepet",
  21. "/moda11": "Moda11 (giybi)",
  22. "/market11": "Market11",
  23. };
  24. presence.on("UpdateData", async () => {
  25. const page = document.location.pathname,
  26. productName =
  27. (document.querySelector(
  28. "#contentProDetail > div > div.proDetailArea > div.proDetail > div.proNameHolder > div > h1"
  29. ) as HTMLElement) ||
  30. (document.querySelector(
  31. "#unf-p-id > div > div.unf-p-cvr > div.unf-p-left.proDetailArea > div.unf-p-lBox > div.unf-p-detail > div.unf-p-title > div.proNameHolder > div > h1"
  32. ) as HTMLElement) ||
  33. (document.querySelector(
  34. "#contentProDetail > div.container.product-detail-container > section.box-view.pro-detail-part > div.pro-prop > div.pro-title > h1"
  35. ) as HTMLElement),
  36. price = (
  37. (
  38. document.querySelector(
  39. "#contentProDetail > div > div.proDetailArea > div.proDetail > div.paymentDetail > div.price-cover > div > div > div > ins"
  40. )?.attributes as unknown as { [name: string]: string }
  41. )?.content as unknown as Element
  42. )?.textContent,
  43. presenceData: PresenceData = {
  44. largeImageKey:
  45. "https://cdn.rcd.gg/PreMiD/websites/N/n11.com/assets/logo.png",
  46. startTimestamp: Math.floor(Date.now() / 1000),
  47. };
  48. if (productName && productName.textContent !== "") {
  49. presenceData.details = "Bir ürüne göz atıyor:";
  50. presenceData.state = `${productName.textContent.trim()}${
  51. price ? ` - ${price} TL` : ""
  52. }`;
  53. } else if (pages[page] || pages[page.slice(0, -1)]) {
  54. presenceData.details = "Bir sayfaya göz atıyor:";
  55. presenceData.state = pages[page] || pages[page.slice(0, -1)];
  56. } else if (
  57. page.includes("/arama") &&
  58. document.location.search !== "?s=GOB2CGlobal"
  59. ) {
  60. presenceData.details = "Bir şey arıyor:";
  61. presenceData.state =
  62. document.title && document.title.includes(" - n11.com")
  63. ? document.title.replace(" - n11.com", "")
  64. : "";
  65. presenceData.smallImageKey = Assets.Search;
  66. } else if (document.location.search === "?s=GOB2CGlobal") {
  67. presenceData.details = "Bir sayfaya göz atıyor:";
  68. presenceData.state = "Yurt Dışından Ürünler";
  69. } else if (page.includes("/magaza/")) {
  70. presenceData.details = "Bir mağazaya göz atıyor:";
  71. presenceData.state = document.querySelector(
  72. "#contentSellerShop > div > section.shopHeader > div.sellerInfo > div.sellerDetail > div.title > h1"
  73. )
  74. ? document.querySelector(
  75. "#contentSellerShop > div > section.shopHeader > div.sellerInfo > div.sellerDetail > div.title > h1"
  76. ).textContent
  77. : "Belirsiz";
  78. } else {
  79. presenceData.details = "Bir sayfaya göz atıyor:";
  80. presenceData.state = "Ana Sayfa";
  81. }
  82. if (presenceData.details && presenceData.state)
  83. presence.setActivity(presenceData);
  84. });