All pastes #821322 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-12-18 01:19 UTC
rendered paste body
on *:SOCKREAD:price.*:{
  var %read | sockread -f %read
  tokenize 32 $htmlfree(%read)
  if (($1-) || (<!-- Search Results: End --> == %read)) {
    if ($1-) {
      if (viewing* iswm $1-) { hadd -m $sockname results $2 }
      if ($regex(%read,/^<!--name--><td class=["']tablebottom["']>(.*)<\/td>$/i)) {
        if ($hget($sockname,counter)) hinc $sockname counter 1
        else hadd -m $sockname counter 1
        hadd -m $sockname citem $regml(1)
      }
      if ($regex(%read,/^<!--price--><td class=['"]tablebottom['"]>(.*)<\/td>$/i)) hadd -m $sockname cprice $regml(1)
      if ($regex(%read,/^<td class=['"]tablebottom['"]><a href=['"].*['"]>(.*)<\/a><\/td>$/i)) {
        hadd -m $sockname ccat $regml(1)
        hadd -m $sockname loopdone $hget($sockname,counter)
        hadd -m $sockname $hget($sockname,counter) $c2($hget($sockname,citem)) $c1(|) $c2($hget($sockname,cprice)) $c1(|) $c2($hget($sockname,ccat))
      }
    }
    if ((<!-- Search Results: End --> == %read) || (($hget($sockname,counter) == 5) && ($hget($sockname,loopdone) == 5))) {
      if (!$hget($sockname,counter)) {
        $hget($sockname,disp) $c1(No results found for:) $c2($tcase($replace($hget($sockname,item),+,$chr(32)))) 
        hfree $sockname
        sockclose $sockname
        halt
      }
      var %a = 0
      $hget($sockname,disp) $c1(Results for) $c2($+($tcase($replace($hget($sockname,item),+,$chr(32))),$c1(:))) $c3($hget($sockname,results)) $c1($chr(40)) $+ $c2(returning $hget($sockname,counter)) $+ $c1($chr(41))
      while (%a < $hget($sockname,counter)) {
        inc %a
        $hget($sockname,disp) $c3(%a) $+ . $hget($sockname,%a)
      }
      hfree $sockname
      sockclose $sockname
    }
  }
}
alias -l tcase {
  var %a = 0
  while (%a < $numtok($1,32)) { inc %a | var %line = %line $upper($mid($gettok($1,%a,32),1,1)) $+ $right($gettok($1,%a,32),-1) }
  return %line
}
alias -l htmlfree { 
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;) 
  return %x 
}