Skip to content

Commit

Permalink
perf(Dumpert): improve presence code (#7539)
Browse files Browse the repository at this point in the history
* perf(Dumpert): improve presence code

* chore(Dumpert): remove unused let

* chore(Dumpert): change class dom to dot dom
  • Loading branch information
Dark_Ville authored Aug 5, 2023
1 parent a254b17 commit 4a91d14
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 79 deletions.
2 changes: 1 addition & 1 deletion websites/D/Dumpert/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"nl": "De plek voor je dagelijkse entertainment. Met de leukste filmpjes en foto's voor als je even geen zin hebt in werk, studie of menselijk contact. Hoofdsponsor van Nederlandse zolderkamers."
},
"url": "www.dumpert.nl",
"version": "1.1.6",
"version": "2.0.0",
"logo": "https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/logo.png",
"thumbnail": "https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/thumbnail.jpg",
"color": "#00ff2a",
Expand Down
180 changes: 102 additions & 78 deletions websites/D/Dumpert/presence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ const presence = new Presence({
}),
browsingTimestamp = Math.floor(Date.now() / 1000);

let title: Element;
const enum Assets {
Logo = "https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/logo.png",
}

presence.on("UpdateData", async () => {
const presenceData: PresenceData = {
largeImageKey:
"https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/logo.png",
largeImageKey: Assets.Logo,
startTimestamp: browsingTimestamp,
},
{ href, pathname } = window.location,
Expand All @@ -17,99 +18,122 @@ presence.on("UpdateData", async () => {
presence.getSetting<boolean>("buttons"),
presence.getSetting<boolean>("covers"),
]),
search = document.querySelector<HTMLInputElement>(".searchfield"),
sortElement = document
.querySelector('[class*="dropdown--"] > div')
?.textContent?.toLowerCase(),
metaElement = document.querySelector<HTMLMetaElement>(
'meta[property~="og:title"]'
);

if (privacy) presenceData.details = "Aan het browsen";
else if (pathname === "/" && !location.search) {
presenceData.details = "Bekijkt";
presenceData.state = "De Home Pagina";
} else if (pathname.includes("plaatjes")) {
presenceData.details = metaElement?.content ?? "Onbekende titel";
presenceData.buttons = [
{
label: "Bekijk Plaatje",
url: href,
},
];
} else if (pathname.includes("filmpjes")) {
presenceData.buttons = [
{
label: "Bekijk Filmpje",
url: href,
},
];
presenceData.details = metaElement?.content ?? "Onbekende titel";
} else if (href.includes("selectedId=") || href.includes("/item/")) {
const video =
document.querySelector<HTMLMediaElement>('[class="vjs-tech"]');
if (video) {
presenceData.largeImageKey =
document.querySelector<HTMLMetaElement>('[property="og:image" ]')
?.content ??
"https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/logo.png";
if (pathname.includes("/zoek/")) {
presenceData.details = privacy
? "Bekijkt zoekresultaten"
: `Bekijkt zoekresultaten voor: ${
document
.querySelector('[class*="list_title_holder list_bar_left"] > h1')
?.textContent?.split("'")[1]
}`;
presenceData.state = sortElement ? `Gesorteerd op: ${sortElement}` : "";
presence.setActivity(presenceData);
return;
} else if (search?.value) {
presenceData.details = privacy ? "Is aan het zoeken" : "Zoekt naar:";
presenceData.state = search.value;
presenceData.smallImageKey = Assets.Search;
presenceData.smallImageText = "Aan het zoeken";
presence.setActivity(presenceData);
return;
}
switch (true) {
case href.includes("selectedId="):
case pathname.includes("/item/"): {
const video =
document.querySelector<HTMLMediaElement>('[class="vjs-tech"]');
if (video) {
delete presenceData.startTimestamp;
presenceData.largeImageKey =
document.querySelector<HTMLMetaElement>('[property="og:image" ]')
?.content ?? Assets.Logo;
presenceData.smallImageKey = video?.paused ? Assets.Pause : Assets.Play;
if (!video.paused) {
[, presenceData.endTimestamp] =
presence.getTimestampsfromMedia(video);
}
presenceData.buttons = [
{
label: "Bekijk Video",
url: href,
},
];
} else {
presenceData.largeImageKey =
document.querySelectorAll("img")[1]?.getAttribute("src") ??
Assets.Logo;
presenceData.buttons = [
{
label: "Bekijk Foto",
url: href,
},
];
}

presenceData.details = metaElement?.content ?? "Onbekende titel";
break;
}
case pathname.includes("toppers"): {
presenceData.details = privacy ? "Bekijkt content" : "Bekijkt de toppers";

presenceData.buttons = [
{
label: "Bekijk Video",
label: "Bekijk Content",
url: href,
},
];
delete presenceData.startTimestamp;
if (video.paused) {
delete presenceData.endTimestamp;
presenceData.smallImageKey = Assets.Pause;
} else if (!video.paused) {
[, presenceData.endTimestamp] = presence.getTimestampsfromMedia(video);
presenceData.smallImageKey = Assets.Play;
}
} else {
presenceData.largeImageKey =
document.querySelectorAll("img")[1]?.getAttribute("src") ??
"https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/logo.png";
break;
}
case pathname.includes("latest"): {
presenceData.details = privacy
? "Bekijkt content"
: "Bekijkt de nieuwste content";
presenceData.buttons = [
{
label: "Bekijk Foto",
label: "Bekijk Content",
url: href,
},
];
break;
}

presenceData.details = metaElement?.content ?? "Onbekende titel";
} else if (pathname.includes("toppers"))
presenceData.details = "Bekijkt de toppers";
else if (pathname.includes("/zoek/")) {
title = document.querySelector(
"#app > div > div:nth-child(6) > div > div.grid > main > div > div > div > h1"
);
if (!title) {
presenceData.details = "Zoekt naar";
presenceData.state = document
.querySelector('[class*="list_title_holder"]')
.textContent.split("'")[1];
} else {
presenceData.details = "Zoekt naar";
presenceData.state = title.textContent.replace(
"Geen resultaten voor",
""
);
case pathname.includes("/tag/"): {
const active = document
.querySelector('[class*="activeitem--"]')
?.textContent?.toLowerCase();
presenceData.details = privacy
? "Bekijkt resultaten voor een tag"
: active
? `Bekijkt resultaten voor tag: ${active}`
: `Bekijkt resultaten voor tag: ${
document
.querySelector('[class*="list_title_holder list_bar_left"] > h1')
?.textContent?.split("'")[1]
}`;
presenceData.state = sortElement ? `Gesorteerd op: ${sortElement}` : "";
presenceData.buttons = [
{
label: "Bekijk Content",
url: href,
},
];
break;
}
} else if (pathname.includes("latest")) {
presenceData.details = "Bekijkt";
presenceData.state = "The latest";
presenceData.buttons = [
{
label: "Bekijk Latest",
url: href,
},
];
}

if (!buttons || privacy) delete presenceData.buttons;
if (!covers) {
presenceData.largeImageKey =
"https://cdn.rcd.gg/PreMiD/websites/D/Dumpert/assets/logo.png";
}
if (privacy && presenceData.state) delete presenceData.state;
if ((!buttons || privacy) && presenceData.buttons)
delete presenceData.buttons;
if (!covers && presenceData.largeImageKey !== Assets.Logo)
presenceData.largeImageKey = Assets.Logo;

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

0 comments on commit 4a91d14

Please sign in to comment.