internal List <GameInfo> GetLibraryGames() { var cacheDir = GetCachePath("catalogcache"); var games = new List <GameInfo>(); var accountApi = new EpicAccountClient(playniteApi, TokensPath); var assets = accountApi.GetAssets(); if (!assets?.Any() == true) { logger.Warn("Found no assets on Epic accounts."); } foreach (var gameAsset in assets.Where(a => a.@namespace != "ue")) { var cacheFile = Paths.GetSafeFilename($"{gameAsset.@namespace}_{gameAsset.catalogItemId}_{gameAsset.buildVersion}.json"); cacheFile = Path.Combine(cacheDir, cacheFile); var catalogItem = accountApi.GetCatalogItem(gameAsset.@namespace, gameAsset.catalogItemId, cacheFile); if (catalogItem?.categories?.Where(a => a.path == "applications").Any() != true) { continue; } games.Add(new GameInfo() { Source = "Epic", GameId = gameAsset.appName, Name = catalogItem.title, }); } return(games); }
internal List <Game> GetLibraryGames() { var games = new List <Game>(); var accountApi = new EpicAccountClient(playniteApi, TokensPath); var assets = accountApi.GetAssets(); if (!assets?.Any() == true) { logger.Warn("Found no assets on Epic accounts."); } foreach (var gameAsset in assets.Where(a => a.@namespace != "ue")) { var catalogItem = accountApi.GetCatalogItem(gameAsset.@namespace, gameAsset.catalogItemId); if (catalogItem?.categories?.Where(a => a.path == "applications").Any() != true) { continue; } games.Add(new Game() { PluginId = Id, GameId = gameAsset.appName, Name = catalogItem.title, }); } return(games); }