Skip to content

Commit

Permalink
feat(Chompu): switch presence to listening type (#8857)
Browse files Browse the repository at this point in the history
* apiVersion

* switch use listening

---------

Signed-off-by: SomboyTiger <[email protected]>
  • Loading branch information
somboytiger authored Nov 4, 2024
1 parent 753500d commit 44e3b25
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 95 deletions.
19 changes: 8 additions & 11 deletions websites/C/Chompu/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,19 @@
},
"service": "Chompu",
"description": {
"en": "Chompu is Discord bot music support stream Joox, TikTok, BiliBili, VK Music, Distrokid, Nico, AppleMusic, Spotify, Soundcloud, Clyp, PornHub and etc.",
"th": "Chompu คือ บอทดิสคอร์ดที่มาพร้อมด้วยระบบสตรีมเล่นเพลงที่สามารถจัดการหรือเพิ่มคิวเพลงบนเว็บไซต์! รองรับสตรีมเล่นเพลงหลายแพลตฟอร์ม Joox, TikTok, BiliBili, VK Music, Distrokid, Nico, AppleMusic, Spotify, Soundcloud, Clyp, PornHub และอื่นๆอีกมากมาย!"
"en": "Chompu is Discord app equipped with a music streaming system that supports multiple platforms, including Joox, TikTok, BiliBili, BiliBiliTV, VKMusic, Facebook Watch, TIDALMusic, AmazonMusic, Deezer, Nico, AppleMusic, Spotify, Soundcloud, Clyp, PornHub, and many more!",
"th": "Chompu คือ แอปดิสคอร์ดที่มาพร้อมด้วยระบบสตรีมเล่นเพลงที่รองรับสตรีมเล่นเพลงหลายแพลตฟอร์ม Joox, TikTok, BiliBili, BiliBiliTV, VKMusic, Facebook Watch, TIDALMusic, AmazonMusic, Deezer, Nico, AppleMusic, Spotify, Soundcloud, Clyp, PornHub และอื่นๆอีกมากมาย!"
},
"url": "chompubot.work",
"version": "1.0.2",
"logo": "https://cdn.rcd.gg/PreMiD/websites/C/Chompu/assets/logo.jpg",
"thumbnail": "https://cdn.rcd.gg/PreMiD/websites/C/Chompu/assets/thumbnail.jpg",
"version": "1.0.3",
"logo": "https://cdn.chompubot.work/images/chompu/logo.png",
"thumbnail": "https://cdn.chompubot.work/images/chompu/thumbnail.png",
"color": "#ffbcff",
"category": "music",
"tags": [
"music",
"music-room",
"discordbot",
"dashboard",
"chompu",
"chompubot",
"player"
"discord",
"dashboard"
]
}
}
161 changes: 77 additions & 84 deletions websites/C/Chompu/presence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const presence = new Presence({
browsingTimestamp = Math.floor(Date.now() / 1000);

const enum Assets {
Logo = "https://cdn.rcd.gg/PreMiD/websites/C/Chompu/assets/logo.jpg",
Logo = "https://cdn.chompubot.work/images/chompu/logo.png",
}

const enum Pages {
Expand All @@ -14,105 +14,98 @@ const enum Pages {
Contact = "/contact",
}

let presenceData: PresenceData;
const presenceData: PresenceData = {
type: ActivityType.Listening,
largeImageKey: Assets.Logo,
};

presence.on("UpdateData", async () => {
const base = document.location.pathname;

if (/\/dashboard\/guild\/(.*[0-9_].*)\/music-room/gi.test(base)) {
let username,
title,
author,
playing,
timeStartPlayer,
timeEndPlayer,
startPlayer,
durationPlayer,
startTimestamp,
endTimestamp;

if (
document.querySelector<HTMLElement>("div.hidden.-player-status") &&
document.querySelector<HTMLElement>("div.hidden.-player-status")
.textContent === "true"
) {
username = document.querySelector<HTMLAnchorElement>(
"[data-label='player-requester']"
).textContent;
title = document.querySelector<HTMLAnchorElement>(
"h1.text-large.font-medium.-player-title"
);
author = document.querySelector<HTMLAnchorElement>(
"p.text-small.mt-1.text-foreground\\/80.-player-author"
);
playing = document.querySelector<HTMLAnchorElement>(
"svg.-player-playing"
);
timeStartPlayer = document.querySelector<HTMLElement>(
"p.text-small.-player-position-start"
).textContent;
timeEndPlayer = document.querySelector<HTMLElement>(
"p.text-small.text-foreground\\/50.-player-position-end"
).textContent;
[startPlayer, durationPlayer] = [
presence.timestampFromFormat(timeStartPlayer),
(() => {
return presence.timestampFromFormat(timeEndPlayer);
})(),
];
[startTimestamp, endTimestamp] = presence.getTimestamps(
startPlayer,
durationPlayer
);
const author = document.querySelector<HTMLAnchorElement>(
"p.text-small.mt-1.text-foreground\\/80.-player-author"
),
playing = document.querySelector<HTMLAnchorElement>(
"svg.-player-playing"
),
timeEndPlayer = document.querySelector<HTMLElement>(
"p.text-small.text-foreground\\/50.-player-position-end"
).textContent,
[startPlayer, durationPlayer] = [
presence.timestampFromFormat(
document.querySelector<HTMLElement>(
"p.text-small.-player-position-start"
).textContent
),
presence.timestampFromFormat(timeEndPlayer),
],
[startTimestamp, endTimestamp] = presence.getTimestamps(
startPlayer,
durationPlayer
);

presenceData = {
details: title,
state: author,
largeImageKey: document.querySelector<HTMLImageElement>(
"[data-label='guild-logo']"
).src,
smallImageKey: playing ? Assets.Play : Assets.Pause,
smallImageText: playing ? "Playing" : "Pause",
[presenceData.startTimestamp, presenceData.endTimestamp] = [
startTimestamp,
endTimestamp,
buttons: [
{
label: `Join Player ${username}`,
url: document.location.href,
},
],
};
];

presenceData.details = document.querySelector<HTMLAnchorElement>(
"h1.text-large.font-medium.-player-title"
);
presenceData.state = author;
presenceData.largeImageKey = document.querySelector<HTMLImageElement>(
"[data-label='guild-logo']"
).src;
presenceData.smallImageKey = playing ? Assets.Play : Assets.Pause;
presenceData.smallImageText = playing ? "Playing" : "Pause";
presenceData.startTimestamp = startTimestamp;
presenceData.endTimestamp = endTimestamp;
presenceData.buttons = [
{
label: `Join Player ${
document.querySelector<HTMLAnchorElement>(
"[data-label='player-requester']"
).textContent
}`,
url: document.location.href,
},
];

if (!playing) {
delete presenceData.startTimestamp;
delete presenceData.endTimestamp;
}
if (!playing) delete presenceData.startTimestamp;
} else {
presenceData = {
details: "No song queue found",
state: "In the server...",
largeImageKey: document.querySelector<HTMLImageElement>(
"[data-label='guild-logo']"
).src,
smallImageKey: Assets.Reading,
smallImageText: "Zzz",
startTimestamp: browsingTimestamp,
buttons: [
{
label: "Join Player",
url: document.location.href,
},
],
};
presenceData.details = "No song queue found";
presenceData.state = "In the server...";
presenceData.largeImageKey = document.querySelector<HTMLImageElement>(
"[data-label='guild-logo']"
)
? document.querySelector<HTMLImageElement>("[data-label='guild-logo']")
.src
: Assets.Logo;
presenceData.smallImageText = "Zzz";
presenceData.startTimestamp = browsingTimestamp;
presenceData.buttons = [
{
label: "Join Player",
url: document.location.href,
},
];
if (presenceData.endTimestamp) delete presenceData.endTimestamp;
}
} else {
presenceData = {
details: "Idk",
state: "Browsing...",
largeImageKey: Assets.Logo,
smallImageKey: Assets.Reading,
smallImageText: "Zzz",
startTimestamp: browsingTimestamp,
};
presenceData.details = "Idk";
presenceData.state = "Browsing...";
presenceData.largeImageKey = Assets.Logo;
presenceData.smallImageKey = Assets.Reading;
presenceData.smallImageText = "Zzz";
presenceData.startTimestamp = browsingTimestamp;
if (presenceData.buttons) delete presenceData.buttons;
if (presenceData.endTimestamp) delete presenceData.endTimestamp;

switch (base) {
case Pages.Home:
Expand Down

0 comments on commit 44e3b25

Please sign in to comment.