;================================================================= ; by Meij EFnet / #parse ;================================================================= on *:TEXT:*:#: { _input $chan $1- } on *:INPUT:#: { _input $chan $1- } on *:SOCKOPEN:_title.*: { var %sn = $sockname, %_mark = $sock(%sn).mark sockwrite -nt %sn GET $iif($gettok(%_mark, 10, 32), $ifmatch, /) HTTP/1.0 sockwrite -nt %sn Accept-Language: en-us sockwrite -nt %sn User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12 sockwrite -nt %sn Host: $gettok(%_mark, 6, 32) sockwrite -nt %sn Connection: close sockwrite -t %sn $str($crlf, 2) } on *:SOCKREAD:_title.*: { var %_data, %sn = $sockname, %_mark = $sock(%sn).mark if ($sockerr > 0) return :nextread sockread -n %_data if ($sockbr == 0) return if ($regex(%_data, ^Location: (.*)$)) { sockclose %sn _input $gettok(%_mark, 1, 32) $regml(1) return } if ([ % $+ [ %sn ] ]) { set -u10 [ % $+ [ %sn ] ] $+([ % $+ [ %sn ] ],%_data) } if ($regex([ % $+ [ %sn ] ], /(.*?)<\/title>/i)) { msg $gettok(%_mark, 1, 32) $+(,$regml(1),) sockclose %sn unset [ % $+ [ %sn ] ] return } if ($regex(%_data, /<title>/i)) { set -u10 [ % $+ [ %sn ] ] $+([ % $+ [ %sn ] ],%_data) } goto nextread } alias -l _input { if ($regex($2-, ((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@|)([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5}|)(.*))) { var %i = 1, %_mark = $1 while (%i <= $regml(0)) { var %_mark = $+(%_mark,$chr(32),$iif($regml(%i), $ifmatch, $false)) inc %i } :name var %sn = $+(_title.,$md5($ticks)) if ($sock(%sn)) goto name sockopen %sn $regml(5) $iif($regml(8), $right($ifmatch, -1), 80) sockmark %sn %_mark } }