diff --git a/src/main/index.ts b/src/main/index.ts index 7281d1fc..00311b46 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -67,7 +67,6 @@ const runMigrations = async () => { ); }); - await knexClient.migrate.down(migrationConfig); await knexClient.migrate.latest(migrationConfig); await knexClient.destroy(); }; diff --git a/src/main/main.ts b/src/main/main.ts index 5e34a593..459e20d2 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -16,7 +16,7 @@ import { publishNewRepacksNotifications } from "./services/notifications"; import { MoreThan } from "typeorm"; import { HydraApi } from "./services/hydra-api"; import { uploadGamesBatch } from "./services/library-sync"; -import { saveAllLocalSteamAchivements } from "./services/achievements/services/save-all-local-steam-achivements"; +import { saveAllLocalSteamAchivements } from "./services/achievements/save-all-local-steam-achivements"; const loadState = async (userPreferences: UserPreferences | null) => { RepacksManager.updateRepacks(); @@ -59,8 +59,6 @@ const loadState = async (userPreferences: UserPreferences | null) => { if (newRepacksCount > 0) publishNewRepacksNotifications(newRepacksCount); }); - - saveAllLocalSteamAchivements(); }; userPreferencesRepository diff --git a/src/main/services/achievements/game-achievements-observer.ts b/src/main/services/achievements/game-achievements-observer.ts index a0cdfaf4..b669c56f 100644 --- a/src/main/services/achievements/game-achievements-observer.ts +++ b/src/main/services/achievements/game-achievements-observer.ts @@ -1,5 +1,5 @@ import { watch } from "node:fs/promises"; -import { getGameAchievementsToWatch } from "./services/get-game-achievements-to-watch"; +import { getGameAchievementsToWatch } from "./get-game-achievements-to-watch"; import { checkUnlockedAchievements } from "./util/check-unlocked-achievements"; import { parseAchievementFile } from "./util/parseAchievementFile"; import { gameAchievementRepository } from "@main/repository"; diff --git a/src/main/services/achievements/services/get-game-achievements-to-watch.ts b/src/main/services/achievements/get-game-achievements-to-watch.ts similarity index 79% rename from src/main/services/achievements/services/get-game-achievements-to-watch.ts rename to src/main/services/achievements/get-game-achievements-to-watch.ts index e95ecd02..4bf45e66 100644 --- a/src/main/services/achievements/services/get-game-achievements-to-watch.ts +++ b/src/main/services/achievements/get-game-achievements-to-watch.ts @@ -1,9 +1,9 @@ import { gameRepository, gameAchievementRepository } from "@main/repository"; -import { steamGetAchivement } from "../steam/steam-get-achivement"; -import { steamFindGameAchievementFiles } from "../steam/steam-find-game-achivement-files"; -import { AchievementFile, CheckedAchievements } from "../types"; -import { parseAchievementFile } from "../util/parseAchievementFile"; -import { checkUnlockedAchievements } from "../util/check-unlocked-achievements"; +import { steamGetAchivement } from "./steam/steam-get-achivement"; +import { steamFindGameAchievementFiles } from "./steam/steam-find-game-achivement-files"; +import { AchievementFile, CheckedAchievements } from "./types"; +import { parseAchievementFile } from "./util/parseAchievementFile"; +import { checkUnlockedAchievements } from "./util/check-unlocked-achievements"; export const getGameAchievementsToWatch = async ( gameId: number diff --git a/src/main/services/achievements/merge-with-remote-achievements.ts b/src/main/services/achievements/merge-with-remote-achievements.ts new file mode 100644 index 00000000..5c4059d4 --- /dev/null +++ b/src/main/services/achievements/merge-with-remote-achievements.ts @@ -0,0 +1,7 @@ +import { HydraApi } from "../hydra-api"; + +export const mergeWithRemoteAchievements = async () => { + return HydraApi.get("/profile/games/achievements").then(async (response) => { + console.log(response); + }); +}; diff --git a/src/main/services/achievements/services/save-all-local-steam-achivements.ts b/src/main/services/achievements/save-all-local-steam-achivements.ts similarity index 83% rename from src/main/services/achievements/services/save-all-local-steam-achivements.ts rename to src/main/services/achievements/save-all-local-steam-achivements.ts index fde1ba19..8cdeb8f5 100644 --- a/src/main/services/achievements/services/save-all-local-steam-achivements.ts +++ b/src/main/services/achievements/save-all-local-steam-achivements.ts @@ -1,6 +1,6 @@ import { gameAchievementRepository, gameRepository } from "@main/repository"; -import { steamFindGameAchievementFiles } from "../steam/steam-find-game-achivement-files"; -import { parseAchievementFile } from "../util/parseAchievementFile"; +import { steamFindGameAchievementFiles } from "./steam/steam-find-game-achivement-files"; +import { parseAchievementFile } from "./util/parseAchievementFile"; import { HydraApi } from "@main/services"; export const saveAllLocalSteamAchivements = async () => { @@ -68,5 +68,14 @@ export const saveAllLocalSteamAchivements = async () => { }, ["objectId", "shop"] ); + + if (game.remoteId) { + HydraApi.put("/profile/games/achievements", { + id: game.remoteId, + achievements: unlockedAchievements, + }).catch(() => { + console.log("erro"); + }); + } } }; diff --git a/src/main/services/library-sync/upload-games-batch.ts b/src/main/services/library-sync/upload-games-batch.ts index 22dc595e..3d06f118 100644 --- a/src/main/services/library-sync/upload-games-batch.ts +++ b/src/main/services/library-sync/upload-games-batch.ts @@ -4,6 +4,7 @@ import { IsNull } from "typeorm"; import { HydraApi } from "../hydra-api"; import { mergeWithRemoteGames } from "./merge-with-remote-games"; import { WindowManager } from "../window-manager"; +import { saveAllLocalSteamAchivements } from "../achievements/save-all-local-steam-achivements"; export const uploadGamesBatch = async () => { const games = await gameRepository.find({ @@ -28,6 +29,8 @@ export const uploadGamesBatch = async () => { await mergeWithRemoteGames(); + await saveAllLocalSteamAchivements(); + if (WindowManager.mainWindow) WindowManager.mainWindow.webContents.send("on-library-batch-complete"); };