From 552b3d39f8c5f76d4dc453fd2d5721b087c9b4b3 Mon Sep 17 00:00:00 2001 From: Dark_Ville <42322979+DarkVillager@users.noreply.github.com> Date: Fri, 14 Jul 2023 15:53:07 +0100 Subject: [PATCH] feat(Holodex): add cover (#7479) * feat(Holodex): add cover * chore(Holodex): format code --- websites/H/Holodex/iframe.ts | 7 +++++++ websites/H/Holodex/metadata.json | 10 +++++++-- websites/H/Holodex/presence.ts | 35 ++++++++++++++++++++++---------- 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/websites/H/Holodex/iframe.ts b/websites/H/Holodex/iframe.ts index c4814da04476..fe0594c6491f 100644 --- a/websites/H/Holodex/iframe.ts +++ b/websites/H/Holodex/iframe.ts @@ -6,6 +6,13 @@ iframe.on("UpdateData", async () => { iframe.send({ video: { isPaused: video.paused, + thumbnail: + document + .querySelector('[class="ytp-title-channel-logo"]') + ?.getAttribute("style") + ?.match(/http(s)?:\/\/.*-rj/gm)?.[0] + ?.replace(/w=s88/gm, "w=s512") ?? + "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/logo.png", }, }); } diff --git a/websites/H/Holodex/metadata.json b/websites/H/Holodex/metadata.json index 7c02429c9096..3967e43a6def 100644 --- a/websites/H/Holodex/metadata.json +++ b/websites/H/Holodex/metadata.json @@ -12,7 +12,7 @@ "staging.holodex.net", "holodex.net" ], - "version": "1.0.19", + "version": "1.0.20", "logo": "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/logo.png", "thumbnail": "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/thumbnail.png", "color": "#64b5f6", @@ -22,11 +22,17 @@ "hololive" ], "iframe": true, - "iFrameRegExp": ".*", + "iFrameRegExp": "(.*[.])?(youtube)([.].*)", "settings": [ { "id": "lang", "multiLanguage": "true" + }, + { + "id": "cover", + "title": "Show Cover", + "icon": "fad fa-images", + "value": true } ] } \ No newline at end of file diff --git a/websites/H/Holodex/presence.ts b/websites/H/Holodex/presence.ts index 16ee883b1038..e89beb0e0ab8 100644 --- a/websites/H/Holodex/presence.ts +++ b/websites/H/Holodex/presence.ts @@ -6,11 +6,14 @@ const presence = new Presence({ pause: "general.paused", }); -let iFrameVideo: { isPaused: boolean }; +let iFrameVideo: { isPaused: boolean; thumbnail: string }; -presence.on("iFrameData", (data: { video: { isPaused: boolean } }) => { - iFrameVideo = data.video; -}); +presence.on( + "iFrameData", + (data: { video: { isPaused: boolean; thumbnail: string } }) => { + iFrameVideo = data.video; + } +); const getInfo = { generic: () => { @@ -356,13 +359,15 @@ presence.on("UpdateData", async () => { dataUpdater.updateAll(); const presenceData: PresenceData = { - largeImageKey: - "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/logo.png", - smallImageKey: data.smallimage.image, - smallImageText: data.smallimage.hover, - details: data.details, - startTimestamp: data.startTime, - }; + largeImageKey: + iFrameVideo.thumbnail ?? + "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/logo.png", + smallImageKey: data.smallimage.image, + smallImageText: data.smallimage.hover, + details: data.details, + startTimestamp: data.startTime, + }, + cover = await presence.getSetting("cover"); if (data.state) presenceData.state = data.state; @@ -393,6 +398,14 @@ presence.on("UpdateData", async () => { } } + if ( + !cover && + presenceData.largeImageKey !== + "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/logo.png" + ) { + presenceData.largeImageKey = + "https://cdn.rcd.gg/PreMiD/websites/H/Holodex/assets/logo.png"; + } if (presenceData.details) presence.setActivity(presenceData); else presence.setActivity(); });