private void btnImgStart_Click(object sender, System.EventArgs e) { statusBar.Text = "Process Uri: " + txtUrlGraphicsRipper.Text; m_baseUri = new Uri(txtUrlGraphicsRipper.Text); try { SetupOutputFile(); } catch (Exception ex) { MessageBox.Show("Failed to setup output file\n" + ex.ToString()); return; } IWebPageProcessor webPageProcessor = new WebPageProcessor(); webPageProcessor.contentHandler_ += new WebPageContentDelegate(GraphicsLinkHandler); webPageProcessor.Process(new WebPageState(txtUrlGraphicsRipper.Text)); CloseOutputFile(); statusBar.Text = "Finished Processing"; }
/// <summary> /// Process and manipulate the buffer. /// </summary> /// <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream.</param> /// <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream.</param> /// <param name="count">The number of bytes to be written to the current stream.</param> protected override void Process(byte[] buffer, int offset, int count) { string html = Encoding.Default.GetString(buffer, offset, count); html = WebPageProcessor.RemoveWhitespaceFromHtml(html); byte[] outdata = System.Text.Encoding.Default.GetBytes(html); this.Sink.Write(outdata, 0, outdata.GetLength(0)); }
public void ManualProcessor( ) { uri = "http://www.holidaycoast.net.au/"; WebPageState state = new WebPageState(new Uri(uri)); WebPageProcessor processor = new WebPageProcessor( ); Assertion.Assert("Process Page", processor.Process(state)); Assertion.AssertEquals("OK", state.StatusCode); Assertion.AssertEquals(true, state.ProcessSuccessfull); }
public void ManualProcessorMultipleDelegates( ) { ManualProcessorLinksCounter = 0; uri = "http://www.holidaycoast.net.au/"; WebPageState state = new WebPageState(new Uri(uri)); WebPageProcessor processor = new WebPageProcessor( ); processor.ContentHandler += new WebPageContentDelegate(HandleLinks); processor.ContentHandler += new WebPageContentDelegate(HandleContent); Assertion.Assert("Process Page", processor.Process(state)); Assertion.AssertEquals("OK", state.StatusCode); Assertion.AssertEquals(true, state.ProcessSuccessfull); Assertion.AssertEquals(16, ManualProcessorLinksCounter); Assertion.Assert(ManualProcessorContentFound); }
public void ShouldCallParsingForEachPageFromPreviousIteration() { IInputProvider inputProvider = new MockInputProvider(); IOutputProvider outputProvider = new MockOutputProvider(); IStorageProvider storageProvider = new MockStorageProvider(); IClientProvider clientProvider = new MockClientProvider(); IPageProvider pageProvider = new MockPageProvider(); ILinkProcessorProvider linkProcessorProvider = new MockLinkProcessorProvider(outputProvider, storageProvider); IPageParserProvider pageParserProvider = new MockPageParcerProvider(); WebPageProcessor wpp = new WebPageProcessor(storageProvider, inputProvider, outputProvider, pageProvider, linkProcessorProvider, pageParserProvider, 0); wpp.ProcessWebPage("Test", 0); Assert.IsTrue(storageProvider.Contains("Test1processed")); Assert.IsTrue(storageProvider.Contains("Test2processed")); Assert.IsTrue(storageProvider.Contains("Test3processed")); Assert.IsTrue(storageProvider.Contains("Test4processed")); Assert.IsTrue(storageProvider.Contains("Test5processed")); Assert.IsTrue(storageProvider.Contains("Test6processed")); Assert.IsTrue(storageProvider.Contains("Test7processed")); Assert.IsTrue(storageProvider.Contains("Test8processed")); }