7
Some checks failed
Deploy Backend / deploy (push) Failing after 43s
Deploy Website / deploy (push) Has been cancelled

This commit is contained in:
Lee 2024-10-09 01:32:52 +01:00
parent acd5dcd522
commit 046007af21
3 changed files with 8 additions and 5 deletions

@ -3,7 +3,6 @@ import ky from "ky";
import { PlayerHistory } from "../player-history"; import { PlayerHistory } from "../player-history";
import ScoreSaberPlayerToken from "../../token/scoresaber/score-saber-player-token"; import ScoreSaberPlayerToken from "../../token/scoresaber/score-saber-player-token";
import { formatDateMinimal, getDaysAgoDate, getMidnightAlignedDate } from "../../../utils/time-utils"; import { formatDateMinimal, getDaysAgoDate, getMidnightAlignedDate } from "../../../utils/time-utils";
import { getPlayerIdCookie } from "website/src/common/website-utils";
/** /**
* A ScoreSaber player. * A ScoreSaber player.
@ -71,10 +70,12 @@ export default interface ScoreSaberPlayer extends Player {
* *
* @param token the player token * @param token the player token
* @param apiUrl the api url for SSR * @param apiUrl the api url for SSR
* @param playerIdCookie the player id cookie (doesn't need to be set)
*/ */
export async function getScoreSaberPlayerFromToken( export async function getScoreSaberPlayerFromToken(
token: ScoreSaberPlayerToken, token: ScoreSaberPlayerToken,
apiUrl: string apiUrl: string,
playerIdCookie?: string
): Promise<ScoreSaberPlayer> { ): Promise<ScoreSaberPlayer> {
const bio: ScoreSaberBio = { const bio: ScoreSaberBio = {
lines: token.bio?.split("\n") || [], lines: token.bio?.split("\n") || [],
@ -96,7 +97,7 @@ export async function getScoreSaberPlayerFromToken(
const { statistics: history } = await ky const { statistics: history } = await ky
.get<{ .get<{
statistics: { [key: string]: PlayerHistory }; statistics: { [key: string]: PlayerHistory };
}>(`${apiUrl}/player/history/${token.id}${getPlayerIdCookie() == token.id ? "?createIfMissing=true" : ""}`) }>(`${apiUrl}/player/history/${token.id}${playerIdCookie == token.id ? "?createIfMissing=true" : ""}`)
.json(); .json();
if (history === undefined || Object.entries(history).length === 0) { if (history === undefined || Object.entries(history).length === 0) {
console.log("Player has no history, using fallback"); console.log("Player has no history, using fallback");

@ -11,6 +11,7 @@ import { scoresaberService } from "@ssr/common/service/impl/scoresaber";
import ScoreSaberPlayerScoresPageToken from "@ssr/common/types/token/scoresaber/score-saber-player-scores-page-token"; import ScoreSaberPlayerScoresPageToken from "@ssr/common/types/token/scoresaber/score-saber-player-scores-page-token";
import { getScoreSaberPlayerFromToken } from "@ssr/common/types/player/impl/scoresaber-player"; import { getScoreSaberPlayerFromToken } from "@ssr/common/types/player/impl/scoresaber-player";
import { config } from "../../../../../config"; import { config } from "../../../../../config";
import { getPlayerIdCookie } from "@/common/website-utils";
const UNKNOWN_PLAYER = { const UNKNOWN_PLAYER = {
title: "ScoreSaber Reloaded - Unknown Player", title: "ScoreSaber Reloaded - Unknown Player",
@ -41,7 +42,7 @@ const getPlayerData = cache(async ({ params }: Props, fetchScores: boolean = tru
const search = (slug[3] as string) || ""; // The search query const search = (slug[3] as string) || ""; // The search query
const playerToken = await scoresaberService.lookupPlayer(id); const playerToken = await scoresaberService.lookupPlayer(id);
const player = playerToken && (await getScoreSaberPlayerFromToken(playerToken, config.siteApi)); const player = playerToken && (await getScoreSaberPlayerFromToken(playerToken, config.siteApi, getPlayerIdCookie()));
let scores: ScoreSaberPlayerScoresPageToken | undefined; let scores: ScoreSaberPlayerScoresPageToken | undefined;
if (fetchScores) { if (fetchScores) {
scores = await scoresaberService.lookupPlayerScores({ scores = await scoresaberService.lookupPlayerScores({

@ -15,6 +15,7 @@ import ScoreSaberPlayerScoresPageToken from "@ssr/common/types/token/scoresaber/
import { ScoreSort } from "@ssr/common/types/score/score-sort"; import { ScoreSort } from "@ssr/common/types/score/score-sort";
import { scoresaberService } from "@ssr/common/service/impl/scoresaber"; import { scoresaberService } from "@ssr/common/service/impl/scoresaber";
import { config } from "../../../config"; import { config } from "../../../config";
import { getPlayerIdCookie } from "@/common/website-utils";
type Props = { type Props = {
initialPlayerData: ScoreSaberPlayer; initialPlayerData: ScoreSaberPlayer;
@ -43,7 +44,7 @@ export default function PlayerData({
if (playerResponse == undefined) { if (playerResponse == undefined) {
return undefined; return undefined;
} }
return await getScoreSaberPlayerFromToken(playerResponse, config.siteApi); return await getScoreSaberPlayerFromToken(playerResponse, config.siteApi, getPlayerIdCookie());
}, },
staleTime: 1000 * 60 * 5, // Cache data for 5 minutes staleTime: 1000 * 60 * 5, // Cache data for 5 minutes
}); });