Here is my attempt to fix the issue, and it should work correctly now:
menu * {
$iif($group(#IMDB) == On,$style(1)) IMDB Movie/TV Show Search
.$iif($group(#IMDB) == On,$style(2)) On: .enable #IMDB
.$iif($group(#IMDB) == Off,$style(2)) Off: .disable #IMDB
}
alias -l addmark { return $+($sock($1).mark,$chr($3),$2) }
alias -l between { noop $regex($1,/\Q $+ $2 $+ \E(.*?)\Q $+ $3 $+ \E/gi) | return $regml($4) }
alias -l char { return $replace($regsubex($1,/&#(x?([a-f\d]*));/gi,$chr($iif($left(\1,1) == x,$base(\2,16,10),\2))),&,&,<,<,>,>,",") }
alias -l div { var %x $calc($0 - 1), %y 1 | while (%y < %x) { if ($ [ $+ [ %y ] ] != $null) { var %z %z $ [ $+ [ %y ] ] $chr($iif($ [ $+ [ $0 ] ] !isnum 1-,$chr(45),$v1)) } | inc %y } | var %z %z $ [ $+ [ $calc($0 - 1) ] ] | return $deltok(%z,$calc($numtok(%z,45)+1),45) }
alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) | return $remove($replace(%x,$cr,$chr(32),$lf,$chr(32)),$chr(9)) }
alias -l lt { var %l $1, %t $2- | tokenize 94 $sock(imdb2).mark | while ($len(%t) > %l) { smsg $1 $left(%t,%l) | var %t $remove(%t,$left(%t,%l)) } | if (%t) smsg $1 %t }
alias -l smsg { msg $iif(c isincs $chan($1).mode,$1 $strip($2-),$1-) }
alias -l star { var %x $iif($abs($round($1,0)) <= 10,$v1,10) | return $+($str(8*,%x),$str(*,$calc(10-%x))) }
#IMDB On
on $*:text:/^[.!@]imdb*/Si:#: { if (!$2-) { .notice $nick [1,8Internet Movie Database]: You must supply a movie/tv show to search! | halt } | $iif($istok(%internetmoviedatabase,#,32),halt,$&
set -u1 %internetmoviedatabase $addtok(%internetmoviedatabase,#,32)) | sockopen imdb www.imdb.com 80 | sockmark imdb # $replace($2-,$chr(32),+) }
#IMDB End
on *:sockopen:imdb: { tokenize 32 $sock(imdb).mark | sockwrite -n $sockname GET /find?s=all&q= $+ $2 HTTP/1.0 | sockwrite -n $sockname Host: www.imdb.com $+ $crlf $+ $crlf }
on *:sockread:imdb: {
tokenize 32 $sock(imdb).mark | sockread %imdb
if (<p style="margin:0 0 0.5em 0;"> isin %imdb) { if ($gettok($gettok(%imdb,4,34),1,47) != title) { halt } | elseif ($gettok($gettok(%imdb,4,34),1,47) == title) { sockmark imdb $+($1,^,$gettok(%imdb,4,34)) | halt } }
elseif (Location: isin %imdb) { sockmark imdb $+($1,^,$gettok($gettok(%imdb,2,32),3,109)) | halt }
elseif (<b>Titles (Exact Matches)</b> isin %imdb) { sockmark imdb $+($1,^,$noqt($between($between(%imdb,<b>Titles $+($chr(40),Exact Matches,$chr(41),</b>),$+(=",$chr(40),new Image,$chr(40),$chr(41),$chr(41),.src='),1),<a href=,onclick,1))) | halt }
}
on *:sockclose:imdb: { sockopen imdb2 www.imdb.com 80 | sockmark imdb2 $gettok($sock(imdb).mark,1-2,94) }
on *:sockopen:imdb2: { tokenize 94 $sock(imdb2).mark | sockwrite -n $sockname GET $2 HTTP/1.0 | sockwrite -n $sockname Host: www.imdb.com $+ $crlf $+ $crlf }
on *:sockread:imdb2: {
var %imdb2 | sockread %imdb2
if (<title> isin %imdb2) {
if ($htmlfree(%imdb2) == 400 Bad Request) || ($htmlfree(%imdb2) == IMDb:Permission denied) { sockclose imdb2 | notice $nick ERROR: Could not retrieve $replace($iif($gettok($1,2,32) == $null,$&
your word,$+(',$v1,')),+,$chr(32)) from the database. Search another movie/tv show? - (15 seconds until next IMDB search)
}
sockmark imdb2 $addmark(imdb2,Title: $+(,$char($htmlfree(%imdb2)),),94)
}
elseif (<div class="meta"> isin %imdb2) { sockread %imdb2 | sockmark imdb2 $addmark(imdb2,Rating: $star($gettok($htmlfree(%imdb2),1,47)) $+($chr(40),,$iif($replace($htmlfree(%imdb2),$chr(40),$null,$chr(41),$null),$v1,None),,$chr(41)),94) }
elseif (<h5>MOVIEmeter: isin %imdb2) { sockmark imdb2 $addmark(imdb2,MOVIEmeter: $+(,$iif($gettok($gettok($htmlfree(%imdb2),1,46),2-7,32),$v1,None),),94) }
elseif ($regex(%imdb2,/(\d{2} \S+ \d{4} \(\S+\))/)) { sockread %imdb2 | sockmark imdb2 $addmark(imdb2,Release Date: $+(,$iif(%imdb2,$regml(1),None),),94) }
elseif (<h5>Genre:</h5> isin %imdb2) { sockread %imdb2 | sockmark imdb2 $addmark(imdb2,Genre: $+(,$remove($replace($htmlfree(%imdb2),|,$chr(183)),$+($chr(32),more)),),94) }
elseif (<h5>Tagline:</h5> isin %imdb2) { sockread %imdb2 | sockmark imdb2 $addmark(imdb2,Tagline: $+($remove($htmlfree(%imdb2),$+($chr(32),more))),94) | halt }
elseif (<h5>Awards:</h5> isin %imdb2) { var %x <a class="tn15more inline" | while (%x !isin %imdb2) { var %imdb3 $addtok(%imdb3,$htmlfree(%imdb2),32) | sockread %imdb2 } | sockmark imdb2 $addmark(imdb2,Awards: $+(,$iif($mid(%imdb3,9,$len(%imdb3)),$replace($v1,&,&),None),),94) }
}
on *:sockclose:imdb2: { tokenize 94 $sock(imdb2).mark | lt 440 $remove($gettok($1,1,32),$1) [1,8Internet Movie Database]: $iif($numtok($sock(imdb2).mark,94) >= 1,$div($iif($3,$v1,$null),$iif($4,$v1,$null),$iif($5,$v1,$null),$iif($6,$v1,$null),$iif($7,$v1,$null),$iif($8,$v1,$null),$&
$iif($9,$v1,$null),45),Error: Couldn't find your movie/tv show. Search another?) $remove($gettok($1,1,32),$1) [1,8Internet Movie Database]: URL: $+(,http://,$sock(imdb2).addr,$2,) - (15 seconds until next IMDB search) | unset %imdb*
}