presence.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const presence = new Presence({
  2. clientId: "683924512982433822",
  3. }),
  4. browsingTimestamp = Math.floor(Date.now() / 1000);
  5. presence.on("UpdateData", async () => {
  6. const presenceData: PresenceData = {
  7. largeImageKey:
  8. "https://cdn.rcd.gg/PreMiD/websites/M/MangasPROJECT/assets/logo.png",
  9. startTimestamp: browsingTimestamp,
  10. };
  11. if (document.location.pathname === "/")
  12. presenceData.details = "Página principal";
  13. // ----------- barra de opções topo ----------- //
  14. else if (document.location.pathname.startsWith("/lista-de-mangas")) {
  15. (presenceData.details = "Lista de mangás"),
  16. (presenceData.state = `Ordenada por: ${
  17. (
  18. document.querySelector(
  19. "#menu-titulos > li.active > a > span"
  20. ) as HTMLElement
  21. ).textContent
  22. }`);
  23. presence.setActivity(presenceData);
  24. } else if (document.location.pathname.startsWith("/lista-de-categorias")) {
  25. (presenceData.details = "Lista de Categorias"),
  26. (presenceData.state = `Ordenada por: ${
  27. (
  28. document.querySelector(
  29. "#menu-categorias > li.active > a > span"
  30. ) as HTMLElement
  31. ).textContent
  32. }`);
  33. presence.setActivity(presenceData);
  34. } else if (document.location.pathname.startsWith("/grupos")) {
  35. (presenceData.details = "Lista de Grupos"),
  36. (presenceData.state = `Ordenada por: ${
  37. (
  38. document.querySelector(
  39. "#menu-grupos > li.active > a > span"
  40. ) as HTMLElement
  41. ).textContent
  42. }`);
  43. presence.setActivity(presenceData);
  44. } else if (document.location.pathname.startsWith("/destaques")) {
  45. (presenceData.details = "Mangás em Destaque"),
  46. (presenceData.startTimestamp = browsingTimestamp);
  47. } else if (document.location.pathname.startsWith("/mangas")) {
  48. // ----------- Categorias (Categoria selecionada) e página da scan ----------- //
  49. (presenceData.details = "Lista de Mangás"),
  50. (presenceData.state = `Ordenada por: ${(
  51. document.querySelector("head > title") as HTMLElement
  52. ).textContent.replace("Mangás:", "")}`);
  53. presence.setActivity(presenceData);
  54. } else if (document.location.pathname.startsWith("/scanlator")) {
  55. presenceData.details = `Scan ${
  56. (
  57. document.querySelector(
  58. "#wraper > div > div.content-wraper.scan-data > div > ul > li > div.series-info.touchcarousel > span.series-title"
  59. ) as HTMLElement
  60. ).textContent
  61. }`;
  62. presenceData.state = "Visualizando Principais Mangás da Scan";
  63. presence.setActivity(presenceData);
  64. } else if (document.location.pathname.startsWith("/manga")) {
  65. // ----------- Lendo mangá & Vendo Informações do Mangá ----------- //
  66. if (
  67. document.querySelector(
  68. "#reader-wrapper > div.reader-navigation.clear-fix > div.series-info-container > div.series-info > div.series-title > span.title"
  69. ) === null
  70. ) {
  71. (presenceData.details = "Visualizando Mangá"),
  72. (presenceData.state = (
  73. document.querySelector(
  74. "#series-data > div.series-info.touchcarousel > span.series-title > h1"
  75. ) as HTMLElement
  76. ).textContent);
  77. presence.setActivity(presenceData);
  78. } else {
  79. presenceData.details = (
  80. document.querySelector(
  81. "#reader-wrapper > div.reader-navigation.clear-fix > div.series-info-container > div.series-info > div.series-title > span.title"
  82. ) as HTMLElement
  83. ).textContent;
  84. presenceData.state = `Capítulo ${
  85. (
  86. document.querySelector(
  87. "#reader-wrapper > div.reader-navigation.clear-fix > div.chapter-selection-container > div.chapter-selection > span.current-chapter > em"
  88. ) as HTMLElement
  89. ).textContent
  90. }`;
  91. presence.setActivity(presenceData);
  92. }
  93. presence.setActivity(presenceData);
  94. }
  95. presence.setActivity(presenceData);
  96. });