All pastes #359677 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-02-16 23:59 UTC
rendered paste body
on *:sockread:price.*: {
  var %t, %ID = $right($sockname,-6), %item = %item. [ $+ [ %ID ] ], 
  var %next = %next. [ $+ [ %id ] ], %founditem = %founditem. [ $+ [ %id ] ]
  var %send = %send. [ $+ [ %id ] ], %n = %n. [ $+ [ %id ] ], %c = %c. [ $+ [ %id ] ]
  sockread %t
  echo -a %t
  if ($regex(%t,/<td class=["']tablebottom['"]>(.*)</td>/)) {
    var %data = $regml(1)
    if (%data == <!-- Blank -->) || (%data == http://www.zybez.net) { 
      set $+(%,next.,%id) item
    }
    elseif (%next == item) { 
      set  $+(%,founditem.,%id) $replace(%data,$chr(32),-) 
      set $+(%,next.,%id) price 
    }
    elseif (%next == price) {
      var %price = %data 
      set $+(%,next.,%id) Blank
      var %result = $calc($hget($+(price.,%id),0).item + 1)
      hadd -m $+(price.,%id) %result $+(%founditem,$chr(124),%price)
    }
  }
}
on *:Sockclose:price.*: {
  .timer $+ $sockname off
  var %ID = $right($sockname,-6), %table = $+(price.,%id), %item = $replace(%item. [ $+ [ %id ] ],+,$chr(32))
  var %send = %send. [ $+ [ %id ] ], %n = %n. [ $+ [ %id ] ], %c = %c. [ $+ [ %id ] ]

  var %x = 1, %total = $hget(%table,0).item, %results = $iif(%total < 3,%total,3)
  if (%results == 0) %send $c1(%n,%c,%send,No results found for) $c2(%n,%c,%send,%item)
  else {
    %send $c1(%n,%c,%send,Top) $c2(%n,%c,%send,%results) $c1(%n,%c,%send,of) $c2(%n,%c,%send,%total) $c1(%n,%c,%send,result $+ $iif(%total > 1,s) for) $c2(%n,%c,%send,%item) $+ $c1(%n,%c,%send,:)
    while (%x <= %results) {
      var %data = $hget(%table,%x), %item = $gettok(%data,1,124), %price = $gettok(%data,2,124)
      %send $c1(%n,%c,%send,%item $+ :) $c2(%n,%c,%send,%price)
      inc %x
    }
  }
  if (%table) hfree %table
  unset $+(%*.,$eval(%ID,2))