示例#1
0
        public DiaryScraperNew(ILogger <DiaryScraperNew> logger, ScrapeContext context, DiaryScraperOptions options)
        {
            _logger          = logger;
            _cookieContainer = new CookieContainer();
            _webClient       = new CF_WebClient(_cookieContainer);


            _context = context;
            _options = options;
            _downloadExistingChecker = new DownloadExistingChecker(Path.Combine(_options.WorkingDir, _options.DiaryName), context, _logger);
            _downloader = new DataDownloader($"http://{_options.DiaryName}.diary.ru",
                                             Path.Combine(_options.WorkingDir, _options.DiaryName),
                                             _cookieContainer,
                                             _logger);

            _downloader.BeforeDownload += (s, e) =>
            {
                if (!(e.Resource is DiaryImage))
                {
                    Progress.Values[ScrapeProgressNames.CurrentUrl] = e.Resource.Url.ToLower();
                }
            };

            _downloader.AfterDownload += OnResourceDownloaded;
            var config = new Configuration().WithCss();

            _parser    = new HtmlParser(config);
            _moreFixer = new DiaryMoreLinksFixer(_downloader, _options.WorkingDir, _options.DiaryName);
        }
        public DiaryMoreLinksFixer(DataDownloader dataDownloader, string workingDir, string diaryName)
        {
            _dataDownloader = dataDownloader;
            var config = new Configuration().WithCss();

            _parser    = new HtmlParser(config);
            _diaryName = diaryName;
            _diaryDir  = Path.Combine(workingDir, diaryName);
        }