Пример #1
0
        public MoverCardDataModel GetSrapedMoversShakersData(MTGFormatsEnum format)
        {
            try
            {
                Console.WriteLine(AddDateTimeConsoleWrite.AddDateTime($"[Scraping {format.ToString()}]: Waiting 5 seconds before we begin..."));
                Thread.Sleep(5000);

                var scrapedData = new MoverCardDataModel();

                Driver.Navigate().GoToUrl($"https://www.mtggoldfish.com/movers/paper/{format}");

                var pageUpdatedTime = Driver.FindElement(MoversShakersMappings.PageLastUpdatedXpath).GetAttribute("title").Replace("UTC", "");
                DateTime.TryParse(pageUpdatedTime, out DateTime parsedPageUpdatedTime);
                scrapedData.PageLastUpdated    = parsedPageUpdatedTime;
                scrapedData.Format             = format.ToString();
                scrapedData.DailyIncreaseList  = GetMoversAndShakersData(format, true, true, true);
                scrapedData.DailyDecreaseList  = GetMoversAndShakersData(format, false, true, true);
                scrapedData.WeeklyIncreaseList = GetMoversAndShakersData(format, true, true, false);
                scrapedData.WeeklyDecreaseList = GetMoversAndShakersData(format, false, true, false);

                Console.WriteLine(AddDateTimeConsoleWrite.AddDateTime($"### Successfully scraped {format}. Quitting Driver.. ###"));
                Driver.Quit();
                return(scrapedData);
            }
            catch (Exception e)
            {
                Driver.Quit();
                Console.WriteLine(e);
                throw;
            }
        }
Пример #2
0
        /// <summary>
        /// Takes in two objects and will run them through an IEqualityComparer to determine if they're equal. If they're not, we create a new JSON document.
        /// </summary>
        /// <param name="format"></param>
        private void DetermineNewData(MoverCardDataModel newScrapedData, MoverCardDataModel oldScrapedData, MTGFormatsEnum format)
        {
            newScrapedData.Format = format.ToString();

            if (newScrapedData.DailyIncreaseList.Count != 0 && oldScrapedData.DailyIncreaseList.Count != 0)
            {
                for (var i = 0; i < newScrapedData.DailyIncreaseList.Count; i++)
                {
                    if (!new MoverCardDataEqualityComparer().Equals(newScrapedData.DailyIncreaseList[i], oldScrapedData.DailyIncreaseList[i]))
                    {
                        Console.WriteLine($"New: {newScrapedData.Format} and Old: {oldScrapedData.Format} Differ. Writing to disk...");
                        MoversShakersJsonController.WriteMoverShakersJsonByFileName(newScrapedData, $"{format.ToString()}.json");
                        _completedFormats.Add($"{newScrapedData.Format}");
                        break;
                    }
                }
            }
            else if (newScrapedData.DailyIncreaseList.Count > 0 && oldScrapedData.DailyIncreaseList.Count == 0)
            {
                for (int i = 0; i < newScrapedData.DailyIncreaseList.Count; i++)
                {
                    Console.WriteLine(AddDateTimeConsoleWrite.AddDateTime($"{nameof(oldScrapedData)}.{nameof(oldScrapedData.DailyIncreaseList)} was empty. Created {format.ToString()}.json"));
                    MoversShakersJsonController.WriteMoverShakersJsonByFileName(newScrapedData, $"{format.ToString()}.json");
                    _completedFormats.Add($"{newScrapedData.Format}");
                    break;
                }
            }
        }