Skip to content

Commit

Permalink
feat(iBroadCast): add typing, cover with setting & improve code (#8585)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dark_Ville committed Jul 21, 2024
1 parent 1e7e823 commit 7655f79
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 19 deletions.
10 changes: 9 additions & 1 deletion websites/I/iBroadcast/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,21 @@
},
"url": "www.ibroadcast.com",
"regExp": "(beta|media|edit).ibroadcast.com",
"version": "1.1.16",
"version": "1.2.0",
"logo": "https://cdn.rcd.gg/PreMiD/websites/I/iBroadcast/assets/logo.png",
"thumbnail": "https://cdn.rcd.gg/PreMiD/websites/I/iBroadcast/assets/thumbnail.jpg",
"color": "#53abee",
"category": "music",
"tags": [
"music",
"personal-library"
],
"settings": [
{
"id": "cover",
"title": "Show Cover",
"icon": "fad fa-images",
"value": true
}
]
}
64 changes: 46 additions & 18 deletions websites/I/iBroadcast/presence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,34 @@ const presence = new Presence({
}),
browsingTimestamp = Math.floor(Date.now() / 1000);

const enum Assets {
Logo = "https://cdn.rcd.gg/PreMiD/websites/I/iBroadcast/assets/logo.png",
}

presence.on("UpdateData", async () => {
const presenceData: PresenceData = {
largeImageKey:
"https://cdn.rcd.gg/PreMiD/websites/I/iBroadcast/assets/logo.png",
document.querySelector<HTMLImageElement>(
".mgr-container-artwork-single,.mgr-player-artwork-image"
)?.src ?? Assets.Logo,
startTimestamp: browsingTimestamp,
},
cover = await presence.getSetting<boolean>("cover"),
{ hostname } = document.location;

if (hostname.startsWith("edit")) presenceData.details = "Editing Library";
else if (hostname.startsWith("beta") || hostname.startsWith("media")) {
const playlist: HTMLDivElement = document.querySelector(
".mgr-list-tracks-title"
),
popup: HTMLDivElement = document.querySelector(
"body > div.mgr-modal.mgr-modal-opaque > div > div.mgr-title"
const playlist = document.querySelector(".mgr-list-tracks-title"),
popup = document.querySelector(
"div.mgr-modal.mgr-modal-opaque > div > div.mgr-title"
);

if (document.querySelector(".icon-player-pause")) {
const title: HTMLDivElement = document.querySelector(".mgr-player-title"),
artist: HTMLDivElement = document.querySelector(".mgr-player-artist"),
currentTime: HTMLDivElement = document.querySelector(
".mgr-player-current-time"
),
duration: HTMLDivElement = document.querySelector(
".mgr-player-duration"
);
presenceData.type = ActivityType.Listening;
const title = document.querySelector(".mgr-player-title"),
artist = document.querySelector(".mgr-player-artist"),
currentTime = document.querySelector(".mgr-player-current-time"),
duration = document.querySelector(".mgr-player-duration");

if (title && artist) {
presenceData.details = `${title.textContent} by ${artist.textContent}`;
Expand All @@ -42,12 +44,38 @@ presence.on("UpdateData", async () => {
);
}
} else if (playlist) {
presenceData.details = "Looking at playlist";
presenceData.state = playlist.textContent;
} else if (popup) presenceData.details = `Viewing ${popup.textContent}`;
else presenceData.details = "At homepage";
presenceData.details = "Looking at a playlist";
presenceData.state = playlist?.textContent ?? "";
} else if (popup?.textContent)
presenceData.details = `Viewing ${popup.textContent}`;
else {
switch (
document.querySelector(".mgr-menu-item.mgr-menu-item-selected")
?.textContent
) {
case "Album Artists": {
const albumSelected = document.querySelector(
".mgr-list-tracks-title"
)?.textContent;

if (albumSelected) {
presenceData.details = "Viewing album artists";
presenceData.state = albumSelected;
} else {
presenceData.details = "Viewing all album artists";
presenceData.largeImageKey = Assets.Logo;
}
break;
}
default: {
presenceData.details = "Browsing...";
}
}
}
}

if (!cover && presenceData.largeImageKey !== Assets.Logo)
presenceData.largeImageKey = Assets.Logo;
if (presenceData.details) presence.setActivity(presenceData);
else presence.setActivity();
});

0 comments on commit 7655f79

Please sign in to comment.