All pastes #165164 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-09-09 15:36 UTC
rendered paste body
;##########################################################
;##            Multi Socket Price Script                 ##
;## Uses multiple sockets so several users can use the   ##
;## code at the same time. Also displays multiple        ##
;## results from zybez.net price database.               ##
;## Usage:                                               ##
;## !Price <item> - Private                              ##
;## @Price <item> - Public                               ##
;##########################################################

on $*:text:/^[!]price(s|check)*/Si:#: {
 if ( !$2 ) { notice $nick Sorry you must specify what to search for - !price <item> }
 else {
   /var %number 1
   while ($sock(price.socket. $+ %number)) { /inc %number }
   if (!* iswm $1) { /set %price.displaystyle. [ $+ [ %number ] ] private }
   /set %price.item. [ $+ [ %number ] ] $2-
   /set %price.nick. [ $+ [ %number ] ] $nick
   /set %price.chan. [ $+ [ %number ] ] $chan
   /sockopen $+(price.socket.,%number) zybez.net 80
 };Closes Else
};Ends the !pricecheck section

on *:sockopen:price.socket.*:{
 sockwrite -nt $sockname GET /priceguide.php?search_terms= $+ $replace(%price.item. [ $+ [ $right($SockName,-13) ] ] ,$chr(32),$chr(43)) $+ &search_area=1&price_low=&price_high=&member=1 HTTP/1.1
 sockwrite -nt $sockname Host: zybez.net
 sockwrite -nt $sockname $crlf $crlf
}

on *:sockread:price.socket.*:{
 var %i $right($sockname,-13)
 if ($sockerr) { /notice %price.nick. [ $+ [ %i ] ] Sorry but an error occured while searching for %price.item. [ $+ [ %i ] ] | halt }
 else {
   var %temptext
   sockread %temptext
 ;Once bot gets the Item + Price which is represented my %readnextline == 2, it runs this to display the results for the user then restarts the whole proccess.

   if (%readnextline == 2) {
     /inc %price.displayed. [ $+ [ %i ] ]
     /var %price.displayprice $htmlfree(%temptext)
     /var %message %price.displayitem. [ $+ [ %i ] ] - %price.displayprice
     /unset %readnextline

   ; Limits how many items are displayed before it stops reading. Prevents the bot from flooding.
     if ( %price.displayed. [ $+ [ %i ] ] < 6 ) {
       if ( %price.displaystyle. [ $+ [ %i ] ] == private ) { /notice %price.nick. [ $+ [ %i ] ] %message }
       else { /msg %price.chan. [ $+ [ %i ] ] %message }
     }; Closes if statement - if ( %price.displayed. [ $+ [ %i ] ] < 6 )
     else { /notice %price.nick. [ $+ [ %i ] ] Sorry but your search for " $+ %price.item. [ $+ [ %i ] ] $+ " was not specific enough. Please narrow your searh down, ie: Pie to Garden Pie. | /sockclose $+(price.socket.,%i) | /unset %price.*. [ $+ [ %i ] ] }  
   }; Closes if statement - if (%readnextline == 2)

   if (%readnextline == 1) { /set %price.displayitem. [ $+ [ %i ] ] $htmlfree(%temptext) | /set %readnextline 2 }
   if ( *<img src="/img/member.gif"* iswm %temptext || <td class="tablebottom"><!-- Blank --></td> isin %temptext) { /set %readnextline 1 }
   if (*Your search did not * iswm %temptext) { /notice %price.nick. [ $+ [ %i ] ] I couldn't find " $+ %price.item. [ $+ [ %i ] ] $+ " It doesnt exist, or is not spelled correctly.. Please make sure you spelled everything correctly and the item you are searching for exists in Runescape. }
 }; Closes else
};Ends the sockread section

on *:sockclose:price.socket.*:{ /unset %price.*. [ $+ [ $right($SockName,-13) ] ] }

alias -l htmlfree {
; Cleans all html from a file
 var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
 return %x
};Ends the html cleaner alias