All pastes #947114 Raw Edit

Mine

public text v1 · immutable
·published 2008-03-18 04:57 UTC
rendered paste body
;=================================================================
; by Meij <meijie@gmail.com> 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>(.*?)<\/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
  }
}