All pastes #1822136 Raw Edit

Someone

public text v1 · immutable
#1822136 ·published 2010-03-04 01:22 UTC
rendered paste body
; http://services.runescape.com/m=itemdb_rs/viewitem.ws?obj=10392

;############################################# ON START ###########################

on *:start: {
  hmake gehash
  hload gehash gehash.hsh
}

;############################################## ALIAS ##############################


alias gehash {
  var %t echo -a
  set %n $1
  if (%n <= 16000) {
    inc %gehash.id 1
    sockopen $+(gehash.,%gehash.id) services.runescape.com 80
  }
}

alias km {
  var %a $calc($replace($1-,k,*1000,m,*1000000,b,*1000000000,t,*1000000000000,x,*))
  return %a
}


;############################################# SOCKETS ############################

on *:sockopen:gehash.*:{
  sockwrite -n $sockname GET //m=itemdb_rs/viewitem.ws?obj= [ $+ [ %n ] ] HTTP/1.1
  sockwrite -n $sockname Host: services.runescape.com
  sockwrite -n $sockname $crlf
}

on *:sockread:gehash.*:{
  var %t echo -a

  ;; check for errors if error restart with same number
  if ($sockerr) {
    %t $sock($sockname).wsmsg 
    sockclose $sockname
  } 

  var %s
  sockread %s

  ;; check what is what and add to variable %m
  if (*The item* iswm %s) {
    set %m $+(%n,$chr(44),NULL)
    %t %m
    $addtohash(%m)
    unset %m
  }
  if (*item_image* iswm %s) {
    set %m $+(%n,$chr(44),$gettok(%s,6,34))
  }
  if (*Minimum price:* iswm %s) {
    set %m $+(%m,$chr(44),min,$chr(61),$km($gettok($gettok(%s,3,62),1,32)))
  }
  if (*Market price:* iswm %s) {
    set %m $+(%m,$chr(44),mid,$chr(61),$km($gettok($gettok(%s,3,62),1,32)))
  }
  if (*Maximum price:* iswm %s) {
    set %m $+(%m,$chr(44),max,$chr(61),$km($gettok($gettok(%s,3,62),1,32)))
    %t %m
    $addtohash(%m)
    unset %m
    sockclose $sockname
  } 
}

on *:SOCKCLOSE:gehash.*:{
  var %t echo -a
  inc %n
  if (%n <= 16000) {
    inc %gehash.id 1
    sockopen $+(gehash.,%gehash.id) services.runescape.com 80
  }
}


;############################# HASH WRITER ###########################

alias addtohash {
  hadd -m gehash $gettok($1-,1,44) $gettok($1-,2-,44)
  hsave gehash gehash.hsh
}