# IMDB Search Powershell Function

#

Function IMDBSearch ( $MovieTitle )

{

$MovieTitle = $MovieTitle .ToString ( )

$MovieTitle = $MovieTitle .Replace ( ".avi" , "" )

$MovieTitle = $MovieTitle .Replace ( ".mkv" , "" )

$MovieTitle = $MovieTitle .Replace ( ".wmv" , "" )

$MovieTitle = $MovieTitle .Replace ( ".mp4" , "" )

$MovieTitle = $MovieTitle .Replace ( "(CD1)" , "" )

$MovieTitle = $MovieTitle .Replace ( "[CD1]" , "" )

$MovieTitle = $MovieTitle .Replace ( "(CD2)" , "" )

$MovieTitle = $MovieTitle .Replace ( "[CD2]" , "" )

$MovieTitle = $MovieTitle .Replace ( "(CD3)" , "" )

$MovieTitle = $MovieTitle .Replace ( "[CD3]" , "" )

$MovieTitle = $MovieTitle .Replace ( "part1" , "" )

$MovieTitle = $MovieTitle .Replace ( "part2" , "" )

$MovieTitle = $MovieTitle .Replace ( "divx" , "" )

$MovieTitle = $MovieTitle .Replace ( "dvdrip" , "" )

$MovieTitle = $MovieTitle .Replace ( "R5" , "" )

$MovieTitle = $MovieTitle .Replace ( "screener" , "" )

$MovieTitle = $MovieTitle .Replace ( "cam" , "" )

$MovieTitle = $MovieTitle .Replace ( "." , " " )

$MovieTitle = $MovieTitle .Replace ( "-" , " " )

$SearchBase = "http://google.com/search?btnI=1&q=site:imdb.com/title"

$url = $SearchBase + " " + $MovieTitle

[ net.httpWebRequest ] $request = [ net.webRequest ] ::create ( $url )

[ net.httpWebResponse ] $response = $request .getResponse ( )

$responseStream = $response .getResponseStream ( )

$sr = new-object IO.StreamReader ( $responseStream ) -ErrorAction SilentlyContinue

$result = $sr .ReadToEnd ( )

$spaceman = $result .Split ( "<" )

$TitleString = $spaceman | where { $_ .Contains ( 'meta name="title" content="' ) } -ErrorAction SilentlyContinue

Write-Host ( ( "=" ) * 30 )

if ( ! $TitleString ) { Write-Host "Hmm. Not getting results for $MovieTitle" }

else {

if ( $TitleString .Contains ( "Memorable quotes" ) )

{

$RunnerUp = $spaceman | where { $_ .Contains ( 'link rel="canonical"' ) } -ErrorAction SilentlyContinue

$RunnerUp = $RunnerUp .Substring ( 27 )

$RunnerUp = $RunnerUp .Remove ( $RunnerUp .Length - 11 )

$url = $RunnerUp

[ net.httpWebRequest ] $request = [ net.webRequest ] ::create ( $url )

[ net.httpWebResponse ] $response = $request .getResponse ( )

$responseStream = $response .getResponseStream ( )

$sr = new-object IO.StreamReader ( $responseStream ) -ErrorAction SilentlyContinue

$result = $sr .ReadToEnd ( )

$spaceman = $result .Split ( "<" )

}

if ( $TitleString .Contains ( "Full cast and crew" ) )

{

$RunnerUp = $spaceman | where { $_ .Contains ( 'link rel="canonical"' ) } -ErrorAction SilentlyContinue

$RunnerUp = $RunnerUp .Substring ( 27 )

$RunnerUp = $RunnerUp .Remove ( $RunnerUp .Length - 15 )

$url = $RunnerUp

[ net.httpWebRequest ] $request = [ net.webRequest ] ::create ( $url )

[ net.httpWebResponse ] $response = $request .getResponse ( )

$responseStream = $response .getResponseStream ( )

$sr = new-object IO.StreamReader ( $responseStream ) -ErrorAction SilentlyContinue

$result = $sr .ReadToEnd ( )

$spaceman = $result .Split ( "<" )

}

if ( $TitleString .Contains ( "External reviews" ) )

{

$RunnerUp = $spaceman | where { $_ .Contains ( 'link rel="canonical"' ) } -ErrorAction SilentlyContinue

$RunnerUp = $RunnerUp .Substring ( 27 )

$RunnerUp = $RunnerUp .Remove ( $RunnerUp .Length - 19 )

$url = $RunnerUp

[ net.httpWebRequest ] $request = [ net.webRequest ] ::create ( $url )

[ net.httpWebResponse ] $response = $request .getResponse ( )

$responseStream = $response .getResponseStream ( )

$sr = new-object IO.StreamReader ( $responseStream ) -ErrorAction SilentlyContinue

$result = $sr .ReadToEnd ( )

$spaceman = $result .Split ( "<" )

}

if ( $TitleString .Contains ( "Plot Summary" ) )

{

$RunnerUp = $spaceman | where { $_ .Contains ( 'link rel="canonical"' ) } -ErrorAction SilentlyContinue

$RunnerUp = $RunnerUp .Substring ( 27 )

$RunnerUp = $RunnerUp .Remove ( $RunnerUp .Length - 16 )

$url = $RunnerUp

[ net.httpWebRequest ] $request = [ net.webRequest ] ::create ( $url )

[ net.httpWebResponse ] $response = $request .getResponse ( )

$responseStream = $response .getResponseStream ( )

$sr = new-object IO.StreamReader ( $responseStream ) -ErrorAction SilentlyContinue

$result = $sr .ReadToEnd ( )

$spaceman = $result .Split ( "<" )

}

$TitleString = $spaceman | where { $_ .Contains ( 'meta name="title" content="' ) } -ErrorAction SilentlyContinue

$ScoreString = $spaceman | where { $_ .Contains ( "star-box-giga-star" ) } -ErrorAction SilentlyContinue

if ( ! $ScoreString ) { $IMDBScore = "Could Not Determine" }

if ( $ScoreString ) { $IMDBScore = $ScoreString .Substring ( $ScoreString .Length - 4 , 4 ) }

$TitleString = $TitleString .Substring ( 27 )

$TitleString = $TitleString .Remove ( $TitleString .Length - 20 )

Write-Host "Your Input: $MovieTitle `r My Best Guess: $TitleString `r IMDB Rating: $IMDBScore"

Write-Host ( ( "=" ) * 30 )

}

}

$Movies = Get-ChildItem y:\