Пример #1
0
        public static void checkUrls(string rssUrl, PageModel pageModel)
        {
            var publisher = pageModel.Publisher;
            
            var urlsInDB = getUrlsForPublisher(publisher);
            var rssModels = getRss(rssUrl);
            
            var urlsFromRSS = rssModels.Select(x => x.Link).ToList();
            var newRssModels = new List<RssModel>();

            for (int i = 0; i < urlsFromRSS.Count; i++)
            {
                var urlRss = urlsFromRSS[i];
                if(pageModel.SkipUrlRegex != null)
                {
                    var match = pageModel.GetSkipUrlRegex().IsMatch(urlRss);
                    if(match)
                    {
                        Console.WriteLine("REGX - " + urlRss);
                        continue;
                    }
                }

                if (!urlsInDB.Contains(urlRss))
                {
                    newRssModels.Add(rssModels[i]);
                }
            }

            if (newRssModels.Count > 0)
            {
                Console.WriteLine(newRssModels.Count + " new urls for " + publisher);
                foreach (var rssModel in newRssModels)
                {
                    getArticle(rssModel, pageModel);
                }
            }
            else
            {
                Console.WriteLine("No new urls for " + publisher);
            }
        }