コード例 #1
0
        private List<IDeal> ParseGraphContent(TwitchGraphContent content)
        {
            List<IDeal> deals = new List<IDeal>();

            foreach (PrimeOffer offer in content.Data.PrimeOffers)
            {
                if (offer.DeliveryMethod != "DIRECT_ENTITLEMENT")
                    continue;

                if (offer.Tags.Count == 0)
                    continue;
                if (offer.Tags.All(x => x.TagTag != "FGWP"))
                    continue;

                deals.Add(new Deal
                {
                    Discount = 100,
                    Image = GetImageUrl(offer),
                    Link = "https://gaming.amazon.com/home",
                    Title = offer.Title,
                    Start = offer.StartTime.UtcDateTime,
                    End = offer.EndTime.UtcDateTime
                });
            }

            return deals;
        }
コード例 #2
0
        async Task<IEnumerable<IDeal>> IScraper.Scrape(CancellationToken token)
        {
            restClient = new RestClient("https://twitch.amazon.com");
            restClient.CookieContainer = cookieContainer = new CookieContainer();

            string csrfToken = await GetCSRFToken(token);

            if (token.IsCancellationRequested)
                return default;

            string content = await GetContent(csrfToken, token);
            TwitchGraphContent twitchGraphContent = JsonConvert.DeserializeObject<TwitchGraphContent>(content);
            List<IDeal> deals = ParseGraphContent(twitchGraphContent);

            return deals;
        }