forked from simrail/simrail.pro
fix(backend, frontend): fix date in profiles, fix steam api error
This commit is contained in:
parent
6a951a5da6
commit
eb1a89b69d
@ -58,8 +58,7 @@ export class ProfilesRoute
|
||||
new SuccessResponseBuilder()
|
||||
.setCode(200)
|
||||
.setData({
|
||||
player,
|
||||
createdAt: player._id.getTimestamp().getTime()
|
||||
player
|
||||
})
|
||||
.toJSON(),
|
||||
);
|
||||
|
@ -131,6 +131,6 @@ export interface IProfile
|
||||
steamTrainDistance: number;
|
||||
steamTrainScore: number;
|
||||
|
||||
|
||||
createdAt: number
|
||||
flags: string[]
|
||||
}
|
@ -20,7 +20,7 @@ import { assert } from "node:console";
|
||||
|
||||
const STEAM_API_KEY = process.env.STEAM_APIKEY;
|
||||
|
||||
const steamFetch = (url: string, maxRetries: number = 5) =>
|
||||
const steamFetch = (url: string) =>
|
||||
{
|
||||
let retries = 0;
|
||||
|
||||
@ -28,10 +28,7 @@ const steamFetch = (url: string, maxRetries: number = 5) =>
|
||||
{
|
||||
const req = () =>
|
||||
{
|
||||
if (retries > maxRetries)
|
||||
{
|
||||
throw new Error("request failed to api steam");
|
||||
}
|
||||
|
||||
fetch(url, { signal: AbortSignal.timeout(10000) }).then(x => x.json())
|
||||
.then(x => res(x))
|
||||
.catch(() =>
|
||||
@ -39,7 +36,7 @@ const steamFetch = (url: string, maxRetries: number = 5) =>
|
||||
console.log("STEAM request failed! ", url.replace(STEAM_API_KEY!, "[XXX]"), retries);
|
||||
|
||||
retries++;
|
||||
setTimeout(() => req(), 1000);
|
||||
setTimeout(() => req(), retries * 1000);
|
||||
});
|
||||
};
|
||||
req();
|
||||
@ -57,7 +54,7 @@ export class PlayerUtil
|
||||
|
||||
if (!player)
|
||||
{
|
||||
const data = await steamFetch(`https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${ STEAM_API_KEY }&format=json&steamids=${ steamId }`, 20) as IPlayerPayload;
|
||||
const data = await steamFetch(`https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${ STEAM_API_KEY }&format=json&steamids=${ steamId }`) as IPlayerPayload;
|
||||
|
||||
assert(data.response.players, "Expected data.response.players to be truthy");
|
||||
|
||||
@ -69,7 +66,6 @@ export class PlayerUtil
|
||||
return player;
|
||||
}
|
||||
|
||||
|
||||
const trainStats: {
|
||||
[ trainName: string ]: {
|
||||
score: number,
|
||||
@ -81,7 +77,6 @@ export class PlayerUtil
|
||||
[ name: string ]: {
|
||||
time: number
|
||||
}
|
||||
|
||||
} = {};
|
||||
|
||||
let trainPoints = 0;
|
||||
@ -124,6 +119,8 @@ export class PlayerUtil
|
||||
dispatcherTime,
|
||||
|
||||
flags: !stats ? [ "private" ] : [],
|
||||
|
||||
createdAt: Date.now(),
|
||||
}).catch(e => e);
|
||||
|
||||
if (player instanceof Error)
|
||||
@ -152,7 +149,7 @@ export class PlayerUtil
|
||||
|
||||
public static async getPlayerSteamData(steamId: string)
|
||||
{
|
||||
const data = await steamFetch(`https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${ STEAM_API_KEY }&format=json&steamids=${ steamId }`, 5) as IPlayerPayload;
|
||||
const data = await steamFetch(`https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${ STEAM_API_KEY }&format=json&steamids=${ steamId }`) as IPlayerPayload;
|
||||
|
||||
if (!data?.response?.players?.length)
|
||||
{
|
||||
|
@ -244,7 +244,7 @@ export const ProfileCard = ({ data }: { data: TProfileData }) =>
|
||||
|
||||
<div className="shadow-default dark:bg-boxdark items-center justify-center p-2.5 flex flex-col xl:p-5 gap-2">
|
||||
<h1 className="text-sm text-black dark:text-white">
|
||||
{t("profile.info", { date: dayjs(data.createdAt).format('DD/MM/YYYY') })}
|
||||
{t("profile.info", { date: dayjs(data.player.createdAt).format('DD/MM/YYYY') })}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
|
@ -33,7 +33,6 @@ export interface TProfileSuccessResponse
|
||||
export interface TProfileData
|
||||
{
|
||||
player: TProfilePlayer;
|
||||
createdAt: number
|
||||
}
|
||||
|
||||
export interface TProfilePlayer
|
||||
@ -49,6 +48,7 @@ export interface TProfilePlayer
|
||||
"steamTrainDistance": number,
|
||||
"steamTrainScore": number,
|
||||
"flags": string[]
|
||||
createdAt: number;
|
||||
|
||||
trainStats: Record<string, {
|
||||
time: number;
|
||||
|
Loading…
x
Reference in New Issue
Block a user