Skip to content

Commit

Permalink
feat(Sorryfield): add timestamp and more paths (PreMiD#7624)
Browse files Browse the repository at this point in the history
* feat(Sorryfield): add timestamp and more paths

* fix(Sorryfield): ran prettier
  • Loading branch information
IAMIHAH authored Sep 12, 2023
1 parent 5ba71dc commit 77d146f
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 8 deletions.
2 changes: 1 addition & 1 deletion websites/S/Sorryfield/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
84 changes: 77 additions & 7 deletions websites/S/Sorryfield/presence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<HTMLInputElement>("input[name=artist-title]")
.value
} - ${
document.querySelector<HTMLInputElement>("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<HTMLInputElement>("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 = "자바!";
Expand Down Expand Up @@ -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}`;
Expand Down

0 comments on commit 77d146f

Please sign in to comment.