PDA

View Full Version : IMDB search tool



[-jesus-]
12-25-2009, 05:37 AM
http://i48.tinypic.com/2wq5rg2.jpg



Imports System.Net
Imports System.Text.RegularExpressions

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error Resume Next
Dim Client As New WebClient
Dim Result As String = Client.DownloadString(TextIMDBURL.Text)

For Each Label In TabPage1.Controls
If Label.name.ToString.Contains("lbl") Then
Label.text = Label.text.split(": ")(0) & ":"
End If
Next
RichTextBox1.Clear()

lblIMDBTitle.Text += GetInfo(Result, "<title>", "</title>", 1, 0)
lblUsrRating.Text += GetInfo(Result, "<div class=""meta"">", "</b>", 1, 1).ToString.Replace("b>", "") & _
" (" & GetInfo(Result, "class=""tn15more"">", "</a>", 1, 0) & ")"


lblDirector.Text += GetInfo(Result, "/rg/directorlist", "</a><br/>", 1, 0).ToString.Split(">")(1)
lblWriters.Text += GetInfo(Result, "/rg/writerlist", "</a>", 1, 0).ToString.Split(">")(1)
lblWriters.Text += ", " & GetInfo(Result, "/rg/writerlist", "</a>", 2, 0).ToString.Split(">")(1)


lblRlsDate.Text += GetInfo(Result, "Date:</h5>", "<a", 1, 1).ToString.Replace("div class=""info-content"">", "").Trim()
lblGenre.Text += GetInfo(Result, "Genre:</h5>", "/"">", 1, 3).ToString.Split("</a>")(0)
If GetInfo(Result, "Genre:</h5>", "/"">", 1, 8).ToString.Split("</a>")(0).Length > 12 Then
Else
lblGenre.Text += ", " & GetInfo(Result, "Genre:</h5>", "/"">", 1, 8).ToString.Split("</a>")(0)
End If


lblTagLine.Text += GetInfo(Result, "class=""info-content"">", "<a", 7, 0).Trim()
RichTextBox1.Text = GetInfo(Result, "Plot:</h5>", "<a", 1, 1).replace("div class=""info-content"">", "").Trim()
If RichTextBox1.Text = Nothing Then
RichTextBox1.Text = "No plot found."
End If


For i = 1 To 15
lblCast.Text += vbNewLine & GetInfo(Result, "/rg/castlist/", ">", i, 1).ToString.Split("<")(0)
'lblCast.Text += " - " & GetInfo(Result, "class=""char""", """/", i, 0).ToString.Split("<")(0).Replace(">", "") & vbNewLine
Next
End Sub

Private Function GetInfo(ByVal StringX, ByVal Pattern, ByVal EndPattern, ByVal Pos1, ByVal Pos2)
On Error Resume Next
Dim splitX() As String = Regex.Split(StringX, Pattern)
Return splitX(Pos1).Split(EndPattern)(Pos2)
End Function

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
On Error Resume Next
Dim Client As New WebClient
Dim Result As String = Client.DownloadString("http://www.imdb.com/find?s=all&q=" & TextSearchPage.Text)
ListView1.Items.Clear()

Dim TitleArray As ArrayList = New ArrayList()
Dim URLArray As ArrayList = New ArrayList()

For i = 1 To 25
TitleArray.Add(GetInfo(Result, "link=/title/", ">", i, 1).ToString.Split("<td>")(0).Split("<br>")(0) _
.Replace("&#x26;", "&").Replace("&#x22;", """") & _
GetInfo(Result, "link=/title/", ">", i, 2).ToString.Split("<td>")(0).Split("<br>")(0))
URLArray.Add("http://www.imdb.com" & GetInfo(Result, "<td valign=""top""><a href=""", """ onclick", i, 0))
Next
TitleArray = RemoveBlanks(TitleArray)


For i = 0 To TitleArray.Count - 1
ListView1.Items.Add(TitleArray(i))
ListView1.Items.Item(i).SubItems.Add(URLArray(i))
Next
End Sub

Private Function RemoveBlanks(ByVal array As ArrayList)
Dim array1 As ArrayList = New ArrayList()

For i = 1 To array.Count - 1
If array(i).length > 3 Then
array1.Add(array(i))
End If
Next
Return array1
End Function


Private Sub TextIMDBURL_TextChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextIMDBURL.KeyDown
If e.KeyCode = Keys.Enter Then
Button1.PerformClick()
End If
End Sub

Private Sub TextSearchPage_TextChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextSearchPage.KeyDown
If e.KeyCode = Keys.Enter Then
Button2.PerformClick()
End If
End Sub

Private Sub CopyURLToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopyURLToolStripMenuItem.Click
Try
Clipboard.SetText(ListView1.SelectedItems.Item(0). SubItems(1).Text)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class


Edit: Just realized the tag-line won't be right if there is none since its generic.. cbf to fix will do it tomorrow w/ a new version I guess..

Attachments aren't working for me atm, uploading to Drop.io instead.
.exe/source- http://drop.io/ow6xvis