7
This commit is contained in:
parent
acd5dcd522
commit
046007af21
@ -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
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user