presence.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. const presence = new Presence({
  2. clientId: "819994268801957899",
  3. }),
  4. pages: { [k: string]: string } = {
  5. "/": "Ana Sayfa",
  6. "/haberler": "Haberler",
  7. "/ekipAlimi/translator": "Çevirmen Alımı",
  8. "/ekipAlimi/uploader": "Yükleyici Alımı",
  9. "/ekipAlimi/encoder": "Encoder Alımı",
  10. "/ekipAlimi/editor": "Editör Alımı",
  11. "/iletisim": "İletişim",
  12. "/Account/Login": "Giriş Yap",
  13. "/Account/Register": "Kayıt Ol",
  14. },
  15. strings = presence.getStrings(
  16. {
  17. play: "general.playing",
  18. pause: "general.paused",
  19. },
  20. "tr"
  21. );
  22. interface iframeData {
  23. duration: number;
  24. currentTime: number;
  25. paused: boolean;
  26. }
  27. let video: iframeData;
  28. presence.on("iFrameData", (data: iframeData) => {
  29. if (data) video = data;
  30. });
  31. const startTimestamp = Math.floor(Date.now() / 1000);
  32. presence.on("UpdateData", async () => {
  33. const page: string = location.pathname,
  34. presenceData: PresenceData = {
  35. largeImageKey:
  36. "https://cdn.rcd.gg/PreMiD/websites/T/TRanimeizle/assets/logo.png",
  37. startTimestamp,
  38. };
  39. if (page.includes("/arama/")) {
  40. presenceData.details = "Bir şey arıyor:";
  41. presenceData.state = document
  42. .querySelector(".post-head .title strong")
  43. ?.textContent.replaceAll('"', "");
  44. presenceData.smallImageKey = Assets.Search;
  45. } else if (page.includes("/harfler/")) {
  46. const letter = document.querySelector(
  47. ".post-head .title strong"
  48. )?.textContent;
  49. presenceData.details = "Bir harfe göz atıyor:";
  50. presenceData.state = letter ? `Harf: ${letter}` : "Bilinmeyen Harf";
  51. } else if (page.includes("/tur/")) {
  52. presenceData.details = "Bir kategoriye göz atıyor:";
  53. presenceData.state =
  54. document.querySelector(".post-head .title strong")?.textContent ??
  55. "Bilinmeyen Kategori";
  56. } else if (page.includes("/anime/")) {
  57. presenceData.details = "Bir animeye göz atıyor:";
  58. presenceData.state = document
  59. .querySelector(".container .playlist-title h1")
  60. ?.textContent?.replace("İzle", "");
  61. } else if (page.includes("/haberler/")) {
  62. presenceData.details =
  63. document.querySelector(".post-header h1")?.textContent ??
  64. "Bilinmeyen Gönderi";
  65. presenceData.smallImageKey = Assets.Reading;
  66. presenceData.smallImageText = "Bir gönderi okuyor";
  67. } else if (page.includes("/BanaOzel/")) {
  68. presenceData.details = "Bir listeye göz atıyor:";
  69. presenceData.state =
  70. document.querySelector(".post-head .title")?.textContent ??
  71. "Bilinmeyen Liste";
  72. } else if (Object.keys(video || {}).length > 0) {
  73. // Set timestamps
  74. [presenceData.startTimestamp, presenceData.endTimestamp] =
  75. presence.getTimestamps(video.currentTime, video.duration);
  76. if (video.paused) {
  77. delete presenceData.startTimestamp;
  78. delete presenceData.endTimestamp;
  79. }
  80. presenceData.buttons = [
  81. {
  82. label: "Bölümü İzle",
  83. url: location.href,
  84. },
  85. ];
  86. // Set playing/paused text
  87. presenceData.smallImageKey = video.paused ? Assets.Pause : Assets.Play;
  88. presenceData.smallImageText = video.paused
  89. ? (await strings).pause
  90. : (await strings).play;
  91. presenceData.state = document
  92. .querySelector(".container .playlist-title h1")
  93. ?.textContent?.replace("İzle", "");
  94. } else if (pages[page] || pages[page.slice(0, -1)]) {
  95. presenceData.details = "Bir sayfaya göz atıyor:";
  96. presenceData.state = pages[page] || pages[page.slice(0, -1)];
  97. }
  98. if (Object.keys(presenceData).length > 2) presence.setActivity(presenceData);
  99. else presence.setActivity();
  100. });