add leaderboard embed image
Some checks failed
Deploy Backend / deploy (push) Has been cancelled
Deploy Website / deploy (push) Failing after 2m19s

This commit is contained in:
Lee
2024-10-16 02:27:59 +01:00
parent 3b691dae3c
commit a5e00e4850
8 changed files with 131 additions and 21 deletions

View File

@ -0,0 +1,27 @@
import ky from "ky";
import { NotFoundError } from "../error/not-found-error";
const SCORESABER_REPLAY_ENDPOINT = "https://scoresaber.com/api/game/telemetry/downloadReplay";
export class ReplayService {
/**
* Gets the app statistics.
*/
public static async getReplay(playerId: string, leaderboardId: string) {
const response = await ky.get(SCORESABER_REPLAY_ENDPOINT, {
searchParams: {
playerId,
leaderboardId,
},
headers: {
"User-Agent": "ScoreSaber-PC/3.3.13",
},
});
const replayData = await response.arrayBuffer();
if (replayData === undefined) {
throw new NotFoundError(`Replay for player "${playerId}" and leaderboard "${leaderboardId}" not found`);
}
return replayData;
}
}