From 77d146f841a4d4d3f361c4be44aa51add56cab8f Mon Sep 17 00:00:00 2001 From: Dongwan Seo Date: Tue, 12 Sep 2023 14:37:14 +0900 Subject: [PATCH] feat(Sorryfield): add timestamp and more paths (#7624) * feat(Sorryfield): add timestamp and more paths * fix(Sorryfield): ran prettier --- websites/S/Sorryfield/metadata.json | 2 +- websites/S/Sorryfield/presence.ts | 84 ++++++++++++++++++++++++++--- 2 files changed, 78 insertions(+), 8 deletions(-) diff --git a/websites/S/Sorryfield/metadata.json b/websites/S/Sorryfield/metadata.json index 1d4ff5e31745..a2dadc95f34d 100644 --- a/websites/S/Sorryfield/metadata.json +++ b/websites/S/Sorryfield/metadata.json @@ -13,7 +13,7 @@ "ko_KR": "쏘리들은 노래방 곡 목록 사이트입니다. 그리고 리듬 게임 자바!를 플레이 할 수 있습니다." }, "url": "sorry.daldal.so", - "version": "1.0.1", + "version": "1.1.0", "logo": "https://cdn.rcd.gg/PreMiD/websites/S/Sorryfield/assets/logo.png", "thumbnail": "https://cdn.rcd.gg/PreMiD/websites/S/Sorryfield/assets/thumbnail.png", "color": "#1b3058", diff --git a/websites/S/Sorryfield/presence.ts b/websites/S/Sorryfield/presence.ts index 3b5cd239f115..abd890e27c5d 100644 --- a/websites/S/Sorryfield/presence.ts +++ b/websites/S/Sorryfield/presence.ts @@ -32,14 +32,83 @@ presence.on("UpdateData", async () => { presenceData.largeImageKey = Assets.LOGO; delete presenceData.smallImageKey; } - if (pathname === "/") presenceData.details = "곡 선택 중"; + if (pathname === "/") { + presenceData.details = "곡 선택 중"; + presenceData.state = document.querySelector(".menu>.desc").textContent; + } if (pathname === "/sorrygle") presenceData.details = "쏘리글"; if (pathname.startsWith("/song/")) { - presenceData.details = "노래 듣는 중"; - presenceData.state = `${ - document.querySelector(".song").children[2].childNodes[0].textContent - } - ${document.querySelector(".title").textContent.trim()}`; - presenceData.buttons = [{ label: "듣기", url: href }]; + if (pathname.includes("edit")) { + if (href.includes("?")) { + presenceData.details = "노래 수정 중"; + presenceData.state = `${ + document.querySelector("input[name=artist-title]") + .value + } - ${ + document.querySelector("input[name=title]").value + }`; + } else presenceData.details = "노래 추가 중"; + } else { + presenceData.details = "노래 듣는 중"; + presenceData.state = `${ + document.querySelector(".song").children[2].childNodes[0].textContent + } - ${document.querySelector(".title").textContent.trim()}`; + const duration = document + .querySelector("time>.desc") + ?.textContent.split(":"); + if (duration) { + presenceData.endTimestamp = + Math.floor(Date.now() / 1000) + + (parseInt(duration[0].replace("(-", "")) * 60 + + parseInt(duration[1].replace(")", ""))) + + 1; + } else delete presenceData.endTimestamp; + presenceData.buttons = [{ label: "듣기", url: href }]; + } + } + if (pathname === "/playlist") presenceData.details = "재생 목록 확인 중"; + if (pathname.startsWith("/playlist/")) { + if (pathname.includes("edit")) { + presenceData.details = `재생 목록 편집 중: ${ + document.querySelector("input[name=name]").value + }`; + presenceData.state = `${ + document.querySelector("article").querySelector("div[class=desc]") + .textContent + }`; + } else { + presenceData.details = document + .querySelector("title") + .textContent.replace(" - 쏘리들", "") + .replace("재생 목록", "재생 목록 듣는 중"); + presenceData.state = `${ + document.querySelector(".current").children[0].children[7].childNodes[1] + .childNodes[0].textContent + } - ${ + document.querySelector(".current").children[0].children[7].childNodes[0] + .textContent + }`; + const duration = document + .querySelector("time>.desc") + ?.textContent.split(":"); + if (duration) { + presenceData.endTimestamp = + Math.floor(Date.now() / 1000) + + (parseInt(duration[0].replace("(-", "")) * 60 + + parseInt(duration[1].replace(")", ""))) + + 1; + } else delete presenceData.endTimestamp; + presenceData.buttons = [{ label: "듣기", url: href }]; + } + } + if (pathname === "/karaoke") presenceData.details = "노래방: 로비"; + if (pathname.startsWith("/karaoke/")) { + presenceData.details = `노래방: ${document + .querySelector("title") + .textContent.replace(" - 노래방 - 쏘리들", "")} | ${ + document.querySelectorAll(".right")[1].textContent + }곡 대기 중`; + presenceData.state = document.querySelectorAll(".left")[1].textContent; } if (pathname.startsWith("/java")) { presenceData.details = "자바!"; @@ -105,7 +174,8 @@ presence.on("UpdateData", async () => { break; case "MULTIPLAYER": imageKey = Assets.CHART_MULTIPLAYER; - presenceData.state = "멀티플레이어 방 선택 중"; + presenceData.details = "자바! 멀티플레이어"; + presenceData.state = "방 선택 중"; break; } if (menuName !== "") presenceData.state = `채보 선택 중: ${menuName}`;