protected BaseMangaSiteImageDownloader(
            HtmlDocumentProcessor htmlProcessor,
            IStatusManager statusManager,
            string hostUrl)
        {
            ValidateHtmlProcessorParameter(htmlProcessor);
            ValidateStatusManagerParameter(statusManager);

            HtmlProcessor = htmlProcessor;
            OperationStatus = statusManager;
            HostUrl = hostUrl;
            HostUri = new Uri(hostUrl);
        }
Exemplo n.º 2
0
        private static CollectorStep CollectionCrawl()
        {
            var collectorStep         = new CollectorStep();
            var htmlDocumentProcessor = new HtmlDocumentProcessor();

            using (var crawler = new Crawler(new Uri("http://ncrawler.codeplex.com"), collectorStep, htmlDocumentProcessor))
            {
                Console.Out.WriteLine(crawler.GetType());
                crawler.MaximumThreadCount = 5;
                crawler.UriSensitivity     = UriComponents.HttpRequestUrl;
                crawler.ExcludeFilter      = new[]
                {
                    new RegexFilter(
                        new Regex(@"(\.jpg|\.css|\.js|\.gif|\.jpeg|\.png)",
                                  RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase))
                };
                crawler.Crawl();
                return(collectorStep);
            }
        }
Exemplo n.º 3
0
        private static void TryGenerateDocumentation(IHostingEnvironment env)
        {
            try
            {
                var docGenerator = new DocumentGenerator();
                var settings     = new DefaultGeneratorSettings
                {
                    OutputFolder = System.IO.Path.Combine(env.WebRootPath, "docs"),
                    Assembly     = Assembly.GetExecutingAssembly()
                };

                var apiDocument = docGenerator.Generate(new DefaultDocumentSettings
                {
                    Name    = "RavenNest API Documentation",
                    Version = "v1.0"
                }, settings);

                var processor = new HtmlDocumentProcessor();

                processor.ProcessAsync(settings, apiDocument).Wait();
            }
            catch { }
        }
Exemplo n.º 4
0
        private void ButtonGenerateManga_Click(object sender, EventArgs e)
        {
            StatusBar.Clear();

            // Validate the url exists.

            Uri uriResult;
            if (!Uri.TryCreate(TextBoxMangaUrl.Text, UriKind.Absolute, out uriResult))
            {
                StatusBar.Error(ErrorType.InvalidUrl, TextBoxMangaUrl.Text);
                return;
            }

            // Validate the save folder exists.

            if (!Directory.Exists(TextBoxSaveFolder.Text))
            {
                StatusBar.Error(ErrorType.SaveFolderDoesNotExist, TextBoxSaveFolder.Text);
                return;
            }

            // TODO: Use dependency injection framework for this.

            ComicBookZipFileSerialiser serialiser = new ComicBookZipFileSerialiser(StatusBar);
            MangaMakerManager manager = new MangaMakerManager(serialiser);
            IEnumerable<string> downloadList = CreateDownloadList();

            foreach (string downloadUrl in downloadList)
            {
                Uri url = new Uri(downloadUrl);
                HtmlDocumentProcessor htmlProcessor = new HtmlDocumentProcessor();
                IMangaSiteImageDownloader downloader = new MangareaderSiteImageDownloader(htmlProcessor, StatusBar);

                manager.GenerateManga(url, downloader, TextBoxSaveFolder.Text, StatusBar);
            }
        }
 public MangareaderSiteImageDownloader(HtmlDocumentProcessor htmlProcessor, IStatusManager statusManager)
     : base(htmlProcessor, statusManager, "http://www.mangareader.net")
 {
 }
 private static void ValidateHtmlProcessorParameter(HtmlDocumentProcessor htmlProcessor)
 {
     if (htmlProcessor == null) throw new ArgumentNullException("htmlProcessor");
 }