Imports System.Net
Imports System.Text
Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Threading
Public Class frmMain
Private Event NewLink(ByVal mLink As String)
Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
If Not txtUrl.Text.StartsWith("http") Then
MessageBox.Show("Please Input A Valid Url")
Exit Sub
End If
Dim mThread As New Thread(AddressOf GetLinks)
mThread.Name = "ripper"
mThread.Priority = ThreadPriority.Normal
mThread.Start()
End Sub
Private Sub GetLinks()
Try
Dim mUri As New Uri(txtUrl.Text)
Dim request As HttpWebRequest
Dim response As HttpWebResponse
request = DirectCast(WebRequest.Create(mUri), HttpWebRequest)
request.AllowAutoRedirect = True
request.MaximumAutomaticRedirections = 2
request.Timeout = 30000
request.ServicePoint.Expect100Continue = False
request.AutomaticDecompression = DecompressionMethods.Deflate Or DecompressionMethods.GZip Or DecompressionMethods.None
request.KeepAlive = False
request.Accept = "*/*"
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"
response = DirectCast(request.GetResponse, HttpWebResponse)
Dim sData As String = ""
Using sr As New StreamReader(response.GetResponseStream())
sData = sr.ReadToEnd()
sr.Close()
End Using
response.Close()
RaiseEvent NewLink(sData)
Catch ex As WebException
MessageBox.Show("Unable To Retived Page Source", "Link Scraper")
MessageBox.Show(ex.Message)
End Try
End Sub
Private Delegate Sub str(ByVal s As String)
Private Sub LinkHandler(ByVal strData As String)
If InvokeRequired Then
Dim d As New str(AddressOf LinkHandler)
BeginInvoke(d, New Object() {strData})
Else
Dim MC As MatchCollection = Regex.Matches(strData, "http://(?:|www\.)filesonic.com/file/\d+", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
lb.Items.Clear()
For Each M As Match In MC
If lb.FindStringExact(M.Value) = -1 Then
lb.Items.Add(M.Value)
End If
Next
txtLink.Text = ""
For Each item As Object In lb.Items
txtLink.Text &= vbCrLf & CType(item, String)
Next
End If
End Sub
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler Me.NewLink, AddressOf LinkHandler
End Sub
Private Sub btnClipboard_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim cData As String = Clipboard.GetText()
If cData.Length > 0 Then
RaiseEvent NewLink(cData)
End If
Catch ex As Exception
MessageBox.Show("Unable To Read Clipboard")
MessageBox.Show(ex.Message)
End Try
End Sub
End Class