presence.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. const presence = new Presence({
  2. clientId: "901608545743683674",
  3. }),
  4. strings = presence.getStrings({
  5. homepage: "general.viewHome",
  6. reading: "general.reading",
  7. searchSomething: "general.searchSomething",
  8. searchFor: "general.searchFor",
  9. genre: "general.viewGenre",
  10. }),
  11. browsingTimestamp = Math.floor(Date.now() / 1000);
  12. presence.on("UpdateData", async () => {
  13. const presenceData: PresenceData = {
  14. largeImageKey:
  15. "https://cdn.rcd.gg/PreMiD/websites/M/MangaReader/assets/logo.png",
  16. details: (await strings).searchFor,
  17. };
  18. if (document.location.pathname === "/" || !document.location.pathname)
  19. presenceData.details = (await strings).searchSomething;
  20. else if (document.location.pathname.includes("/search")) {
  21. presenceData.state = `"${
  22. document.querySelector(".block_area-header i").textContent
  23. }"`;
  24. } else if (document.location.pathname.includes("/home"))
  25. presenceData.details = (await strings).homepage;
  26. else if (document.location.pathname.includes("/genre")) {
  27. presenceData.details = (await strings).genre;
  28. presenceData.state = `📔 ${
  29. document.querySelector(".block_area-header").textContent
  30. }`;
  31. } else if (document.location.pathname.includes("/new-release"))
  32. presenceData.state = "✌️ New releases";
  33. else if (document.location.pathname.includes("/completed"))
  34. presenceData.state = "✅ Completed Manga";
  35. else if (document.location.pathname.includes("/most-viewed"))
  36. presenceData.state = "🔥 Most Viewed";
  37. else if (document.location.pathname.includes("/latest-updated"))
  38. presenceData.state = "⚡ Latest Updated";
  39. else if (document.location.pathname.includes("/az-list"))
  40. presenceData.state = "🔠 A-Z List";
  41. else if (document.location.pathname.includes("/type")) {
  42. presenceData.state = `📖 ${
  43. document.querySelector(".block_area-header").textContent
  44. }s`;
  45. } else if (document.location.pathname.includes("/character")) {
  46. presenceData.details = "Viewing Character:";
  47. presenceData.state = document.querySelector(".name").textContent;
  48. } else if (document.location.pathname.includes("/author")) {
  49. presenceData.details = "Viewing Author:";
  50. presenceData.state = document.querySelector(".name").textContent;
  51. } else {
  52. presenceData.details = document.querySelector(".manga-name").textContent;
  53. presenceData.buttons = [
  54. {
  55. label: "Read Manga",
  56. url: document.location.href,
  57. },
  58. ];
  59. if (document.location.pathname.includes("/read")) {
  60. presenceData.details = `${(await strings).reading} ${
  61. presenceData.details
  62. }`;
  63. presenceData.state = `${document
  64. .querySelector("#current-chapter")
  65. .textContent.replace(" ", " #️")} | ${document
  66. .querySelector("#c-selected-lang, #v-selected-lang")
  67. .textContent.replace("Language: ", "")}`;
  68. presenceData.startTimestamp = browsingTimestamp;
  69. }
  70. }
  71. if (!presenceData.details) presence.setActivity();
  72. else presence.setActivity(presenceData);
  73. });