mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-29 05:41:03 +00:00
ci: merging main to branch
This commit is contained in:
@@ -5,18 +5,15 @@ import { logger } from "../logger";
|
|||||||
import { db, gameAchievementsSublevel, levelKeys } from "@main/level";
|
import { db, gameAchievementsSublevel, levelKeys } from "@main/level";
|
||||||
import { AxiosError } from "axios";
|
import { AxiosError } from "axios";
|
||||||
|
|
||||||
|
const LOCAL_CACHE_EXPIRATION = 1000 * 60 * 60; // 1 hour
|
||||||
|
|
||||||
const getModifiedSinceHeader = (
|
const getModifiedSinceHeader = (
|
||||||
cachedAchievements: GameAchievement | undefined,
|
cachedAchievements: GameAchievement | undefined
|
||||||
userLanguage: string
|
|
||||||
): Date | undefined => {
|
): Date | undefined => {
|
||||||
if (!cachedAchievements) {
|
if (!cachedAchievements) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userLanguage != cachedAchievements.language) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
return cachedAchievements.updatedAt
|
return cachedAchievements.updatedAt
|
||||||
? new Date(cachedAchievements.updatedAt)
|
? new Date(cachedAchievements.updatedAt)
|
||||||
: undefined;
|
: undefined;
|
||||||
@@ -31,7 +28,13 @@ export const getGameAchievementData = async (
|
|||||||
|
|
||||||
const cachedAchievements = await gameAchievementsSublevel.get(gameKey);
|
const cachedAchievements = await gameAchievementsSublevel.get(gameKey);
|
||||||
|
|
||||||
if (cachedAchievements?.achievements && useCachedData) {
|
if (cachedAchievements?.achievements && useCachedData)
|
||||||
|
return cachedAchievements.achievements;
|
||||||
|
|
||||||
|
if (
|
||||||
|
cachedAchievements?.achievements &&
|
||||||
|
Date.now() < (cachedAchievements.updatedAt ?? 0) + LOCAL_CACHE_EXPIRATION
|
||||||
|
) {
|
||||||
return cachedAchievements.achievements;
|
return cachedAchievements.achievements;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,15 +50,14 @@ export const getGameAchievementData = async (
|
|||||||
language,
|
language,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ifModifiedSince: getModifiedSinceHeader(cachedAchievements, language),
|
ifModifiedSince: getModifiedSinceHeader(cachedAchievements),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(async (achievements) => {
|
.then(async (achievements) => {
|
||||||
await gameAchievementsSublevel.put(gameKey, {
|
await gameAchievementsSublevel.put(gameKey, {
|
||||||
unlockedAchievements: cachedAchievements?.unlockedAchievements ?? [],
|
unlockedAchievements: cachedAchievements?.unlockedAchievements ?? [],
|
||||||
achievements,
|
achievements,
|
||||||
updatedAt: Date.now(),
|
updatedAt: Date.now() + LOCAL_CACHE_EXPIRATION,
|
||||||
language,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return achievements;
|
return achievements;
|
||||||
|
|||||||
Reference in New Issue
Block a user