Skip to content

Commit

Permalink
feat(SlimeRead): add presence (PreMiD#7866)
Browse files Browse the repository at this point in the history
* feat(SlimeRead): add presence

* feat: update description in metadata.json

* feat: cover in the reader

* feat: update logo URL in metadata.json

Co-authored-by: Dark_Ville <[email protected]>
Signed-off-by: Lusca Carvalho <[email protected]>

* Update logo URL in presence.ts

Co-authored-by: Dark_Ville <[email protected]>
Signed-off-by: Lusca Carvalho <[email protected]>

* refactor: simplify CSS selectors in presence.ts

---------

Signed-off-by: Lusca Carvalho <[email protected]>
Co-authored-by: Dark_Ville <[email protected]>
  • Loading branch information
Luscarvalho and Dark_Ville authored Jan 2, 2024
1 parent e61ec39 commit 430d0f6
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 0 deletions.
25 changes: 25 additions & 0 deletions websites/S/SlimeRead/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"$schema": "https://schemas.premid.app/metadata/1.9",
"author": {
"name": "Luscarvalho",
"id": "458776046184169473"
},
"service": "SlimeRead",
"description": {
"en": "Discover and enjoy a vast collection of literary works, including manga, manhwa, manhua, novels, and much more.",
"pt_BR": "Descubra e desfrute de uma vasta coleção de obras literárias, incluindo mangás, manwhas, manhuas, novels e muito mais."
},
"url": [
"slimeread.com",
"www.slimeread.com"
],
"version": "1.0.0",
"logo": "https://i.imgur.com/x6NuCdk.png",
"thumbnail": "https://i.imgur.com/hYjlY58.png",
"color": "#FF4F4F",
"category": "anime",
"tags": [
"manga",
"reading"
]
}
91 changes: 91 additions & 0 deletions websites/S/SlimeRead/presence.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
const presence = new Presence({
clientId: "1190448612778463242",
}),
browsingTimestamp = Math.floor(Date.now() / 1000);

presence.on("UpdateData", async () => {
const presenceData: PresenceData = {
largeImageKey: "https://i.imgur.com/x6NuCdk.png",
startTimestamp: browsingTimestamp,
},
{ href, pathname } = document.location;

switch (pathname.split("/")[1]) {
case "login":
presenceData.details = "Fazendo login";
break;

case "registrar":
presenceData.details = "Fazendo registro";
break;

case "esqueci-senha":
presenceData.details = "Recuperando senha";
break;

case "nacional":
presenceData.details = "Na página inicial";
presenceData.state = "Visualizando nacionais";
break;

case "nsfw":
presenceData.details = "Na página inicial";
presenceData.state = "Visualizando NSFW";
break;

case "biblioteca":
presenceData.details = "Visualizando biblioteca";
break;

case "recentes":
presenceData.details = "Visualizando recentes";
break;

case "pesquisa-obras":
if (pathname.includes("/pesquisar")) {
const searchValue =
document.querySelector<HTMLInputElement>('input[type="text"]').value;
presenceData.details = "Pesquisando mangás";
if (searchValue) presenceData.state = `Mangá: ${searchValue}`;
}
break;

case "manga": {
presenceData.largeImageKey = document.querySelectorAll<HTMLImageElement>(
'img[title="Imagem"]'
)[2].src;
presenceData.details = document.querySelector(
'[class="mt-4 sm:ml-4 sm:mt-0 "] > p'
)?.textContent;
presenceData.buttons = [{ label: "Ler mangá", url: href }];
break;
}

case "ler": {
const chapterInfo = document.querySelector(
'[class="ml-4 mt-4"] > h1'
)?.textContent,
mediaLink = document.querySelector<HTMLAnchorElement>(
'[class="ml-4 mt-4"] > h1 > a'
).href,
mediaCover = document.querySelector<HTMLMetaElement>(
'meta[property="image"]'
)?.content;
if (mediaCover) presenceData.largeImageKey = mediaCover;
presenceData.details = chapterInfo?.split("/")[0].trim();
presenceData.state = chapterInfo?.split("/")[1].trim();
presenceData.buttons = [
{ label: "Ler capítulo", url: href.replace(/\/[^/]*$/, "") },
{ label: "Ler mangá", url: mediaLink },
];
break;
}

default:
presenceData.details = "Na página inicial";
break;
}

if (presenceData.details) presence.setActivity(presenceData);
else presence.setActivity();
});

0 comments on commit 430d0f6

Please sign in to comment.