Esempio n. 1
0
        public void GetGameDetailsTest()
        {
            var client          = new GogApiClient();
            var existingDetails = client.GetGameDetails("2");

            Assert.IsNotNull(existingDetails);

            var nonexistingDetails = client.GetGameDetails("99999999");

            Assert.IsNull(nonexistingDetails);
        }
        internal GogGameMetadata DownloadGameMetadata(Game game)
        {
            var metadata   = new GogGameMetadata();
            var gameDetail = apiClient.GetGameDetails(game.GameId);

            if (gameDetail == null)
            {
                logger.Warn($"Product page for game {game.GameId} not found, using fallback search.");
                var search = apiClient.GetStoreSearch(game.Name);
                var match  = search?.FirstOrDefault(a => a.title.Equals(game.Name, StringComparison.InvariantCultureIgnoreCase));
                if (match != null)
                {
                    gameDetail = apiClient.GetGameDetails(match.id.ToString());
                }
            }

            metadata.GameDetails = gameDetail;

            if (gameDetail != null)
            {
                if (gameDetail.links.product_card != @"https://www.gog.com/" && !string.IsNullOrEmpty(gameDetail.links.product_card))
                {
                    metadata.StoreDetails = apiClient.GetGameStoreData(gameDetail.links.product_card);
                }

                metadata.Icon = new MetadataFile("http:" + gameDetail.images.icon);
                if (metadata.StoreDetails != null)
                {
                    var imageUrl = metadata.StoreDetails.image + "_product_card_v2_mobile_slider_639.jpg";
                    metadata.CoverImage = new MetadataFile(imageUrl);
                }
                else
                {
                    metadata.CoverImage = new MetadataFile("http:" + gameDetail.images.logo2x);
                }

                if (metadata.StoreDetails != null)
                {
                    var url = metadata.StoreDetails.galaxyBackgroundImage ?? metadata.StoreDetails.backgroundImage;
                    metadata.BackgroundImage = new MetadataFile(url.Replace(".jpg", "_bg_crop_1920x655.jpg"));
                }
                else
                {
                    metadata.BackgroundImage = new MetadataFile("http:" + gameDetail.images.background);
                }
            }

            return(metadata);
        }
Esempio n. 3
0
        public void GetGameStoreDataTest()
        {
            var client        = new GogApiClient();
            var existingStore = client.GetGameStoreData(@"https://www.gog.com/game/vampire_the_masquerade_bloodlines");

            Assert.IsNotNull(existingStore);

            var noneexistingStore = client.GetGameDetails("https://www.gog.com/game/vampire");

            Assert.IsNull(noneexistingStore);
        }
Esempio n. 4
0
        internal GogGameMetadata DownloadGameMetadata(string id, string storeUrl = null)
        {
            var metadata   = new GogGameMetadata();
            var gameDetail = apiClient.GetGameDetails(id);

            metadata.GameDetails = gameDetail;

            if (gameDetail != null)
            {
                if (gameDetail.links.product_card != @"https://www.gog.com/" && !string.IsNullOrEmpty(gameDetail.links.product_card))
                {
                    metadata.StoreDetails = apiClient.GetGameStoreData(gameDetail.links.product_card);
                }
                else if (!string.IsNullOrEmpty(storeUrl))
                {
                    metadata.StoreDetails = apiClient.GetGameStoreData(storeUrl);
                }

                var icon     = HttpDownloader.DownloadData("http:" + gameDetail.images.icon);
                var iconName = Path.GetFileName(new Uri(gameDetail.images.icon).AbsolutePath);
                metadata.Icon = new MetadataFile(iconName, icon);

                if (metadata.StoreDetails != null)
                {
                    var imageUrl  = metadata.StoreDetails.image + "_product_card_v2_mobile_slider_639.jpg";
                    var image     = HttpDownloader.DownloadData(imageUrl);
                    var imageName = Path.GetFileName(new Uri(imageUrl).AbsolutePath);
                    metadata.Image = new MetadataFile(imageName, image);
                }
                else
                {
                    var image     = HttpDownloader.DownloadData("http:" + gameDetail.images.logo2x);
                    var imageName = Path.GetFileName(new Uri(gameDetail.images.logo2x).AbsolutePath);
                    metadata.Image = new MetadataFile(imageName, image);
                }

                if (metadata.StoreDetails != null)
                {
                    var url = metadata.StoreDetails.galaxyBackgroundImage ?? metadata.StoreDetails.backgroundImage;
                    metadata.BackgroundImage = url.Replace(".jpg", "_bg_crop_1920x655.jpg");
                }
                else
                {
                    metadata.BackgroundImage = "http:" + gameDetail.images.background;
                }
            }

            return(metadata);
        }
        internal GogGameMetadata DownloadGameMetadata(string id, string storeUrl = null)
        {
            var metadata   = new GogGameMetadata();
            var gameDetail = apiClient.GetGameDetails(id);

            metadata.GameDetails = gameDetail;

            if (gameDetail != null)
            {
                if (gameDetail.links.product_card != @"https://www.gog.com/" && !string.IsNullOrEmpty(gameDetail.links.product_card))
                {
                    metadata.StoreDetails = apiClient.GetGameStoreData(gameDetail.links.product_card);
                }
                else if (!string.IsNullOrEmpty(storeUrl))
                {
                    metadata.StoreDetails = apiClient.GetGameStoreData(storeUrl);
                }

                var icon      = HttpDownloader.DownloadData("http:" + gameDetail.images.icon);
                var iconName  = Path.GetFileName(new Uri(gameDetail.images.icon).AbsolutePath);
                var image     = HttpDownloader.DownloadData("http:" + gameDetail.images.logo2x);
                var imageName = Path.GetFileName(new Uri(gameDetail.images.logo2x).AbsolutePath);

                metadata.Icon = new MetadataFile(
                    string.Format("images/gog/{0}/{1}", id, iconName),
                    iconName,
                    icon
                    );

                metadata.Image = new MetadataFile(
                    string.Format("images/gog/{0}/{1}", id, imageName),
                    imageName,
                    image
                    );

                metadata.BackgroundImage = "http:" + gameDetail.images.background;
            }

            return(metadata);
        }
Esempio n. 6
0
        internal GogGameMetadata DownloadGameMetadata(string id)
        {
            var metadata   = new GogGameMetadata();
            var gameDetail = apiClient.GetGameDetails(id);

            metadata.GameDetails = gameDetail;

            if (gameDetail != null)
            {
                if (gameDetail.links.product_card != @"https://www.gog.com/" && !string.IsNullOrEmpty(gameDetail.links.product_card))
                {
                    metadata.StoreDetails = apiClient.GetGameStoreData(gameDetail.links.product_card);
                }

                metadata.Icon = new MetadataFile("http:" + gameDetail.images.icon);
                if (metadata.StoreDetails != null)
                {
                    var imageUrl = metadata.StoreDetails.image + "_product_card_v2_mobile_slider_639.jpg";
                    metadata.CoverImage = new MetadataFile(imageUrl);
                }
                else
                {
                    metadata.CoverImage = new MetadataFile("http:" + gameDetail.images.logo2x);
                }

                if (metadata.StoreDetails != null)
                {
                    var url = metadata.StoreDetails.galaxyBackgroundImage ?? metadata.StoreDetails.backgroundImage;
                    metadata.BackgroundImage = new MetadataFile(url.Replace(".jpg", "_bg_crop_1920x655.jpg"));
                }
                else
                {
                    metadata.BackgroundImage = new MetadataFile("http:" + gameDetail.images.background);
                }
            }

            return(metadata);
        }