Пример #1
0
        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);
        }
Пример #2
0
        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);
        }