Advertisement
illpastethat

StockQuote Script (Latest Price and Change) v1.4

May 3rd, 2013
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 5.83 KB | None | 0 0
  1. ;StockQuote Script (Latest Price and Change) v1.4
  2. ;Made by nick1
  3. ;View online and report bugs at http://www.hawkee.com/snippet/9578
  4. ;Last edit May 03, 2013
  5.  
  6. alias -l stockVersion {
  7.   return v1.4
  8. }
  9. alias stock {
  10.   var %ticks $ticks
  11.   tokenize 32 $strip($1-)
  12.   if ($1) {
  13.     set $+(%,stock.,%ticks,.msgtype) echo -a
  14.     set $+(%,stock.,%ticks,.ticker) $1
  15.     if (!$istok(%stock.shortened,$1,44)) {
  16.       set $+(%,stock.,%ticks,.shorten) $upper($1)
  17.       sockopen $+(stocklink.,%ticks) ou.gs 80
  18.     }
  19.     sockopen $+(stock.,%ticks) www.google.com 80
  20.   }
  21.   elseif ($1 == $null) {
  22.     echo -act info 4Incorrect Syntax - Use10 /stock <ticker symbol>
  23.   }
  24. }
  25.  
  26. on $*:text:/^[!@](stock|stocks|stockquote|price|q)(\s|$)/Si:#:{
  27.   if ($($+(%,botflood.,$nick),2)) {
  28.     if ($($+(%,botflood.,$nick),2) >= 300) { ignore -u60 $address($nick,0) | msg $chan $+($nick,$chr(44)) You Have Been Put On Ignore For 60secs For Abusing The Bot. | halt }
  29.     elseif ($($+(%,botflood.,$nick),2) >= 200) { msg $chan $+($nick,$chr(44)) Please Do Not Abuse The Bot. | inc -z $+(%,botflood.,$nick) 20 | halt }
  30.     else { inc -z $+(%,botflood.,$nick) 25 }
  31.   }
  32.   else { inc -z $+(%,botflood.,$nick) 25 }
  33.   var %ticks $ticks
  34.   tokenize 32 $strip($1-)
  35.   if ($2) {
  36.     set $+(%,stock.,%ticks,.msgtype) $iif($chan,$iif($left($1,1) == @,msg $chan,notice $nick),msg $nick)
  37.     set $+(%,stock.,%ticks,.ticker) $2
  38.     if (!$istok(%stock.shortened,$2,44)) {
  39.       set $+(%,stock.,%ticks,.shorten) $upper($2)
  40.       sockopen $+(stocklink.,%ticks) ou.gs 80
  41.     }
  42.     sockopen $+(stock.,%ticks) www.google.com 80
  43.   }
  44.   elseif ($2 == $null) {
  45.     notice $nick 4Incorrect Syntax - Use10 $1 <ticker symbol>
  46.   }
  47. }
  48.  
  49. on *:sockopen:stock.*: {  
  50.   sockwrite -nt $sockname GET $+(/ig/api?stock=,$($+(%,stock.,$remove($sockname,stock.),.ticker),2)) HTTP/1.1
  51.   sockwrite -nt $sockname Host: www.google.com
  52.   sockwrite -nt $sockname $crlf
  53. }
  54.  
  55. on *:SOCKREAD:stock.*: {
  56.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  57.   sockread &t
  58.   var %pos $bfind(&t,1,symbol data=)
  59.   var %pos2 $bfind(&t,%pos,<daylight_savings)
  60.   if (%pos != 0) {
  61.     var %ticks $remove($sockname,stock.)
  62.     set $+(%,stock.,%ticks,.xml) $bvar(&t,$+(%pos,-,$calc(%pos2 + 1))).text
  63.     if ($stockparser(%ticks,trade_timestamp) == Dec 31, 1969) {
  64.       $($+(%,stock.,%ticks,.msgtype),2) 4§Stock§7 $stockparser(%ticks,pretty_symbol) 04This symbol could not be found.  Please try again or search12 $+(http://ou.gs/stock_,$upper($($+(%,stock.,%ticks,.ticker),2)))
  65.       unset $+(%,stock.,$remove($sockname,stock.),*)
  66.       sockclose $sockname
  67.     }  
  68.     else {
  69.       var %colorcode $iif($left($stockparser(%ticks,change),1) == +,03,04)
  70.       var %mktcap $stockparser(%ticks,market_cap)
  71.       if ($len(%mktcap) <= 6) {
  72.         var %mktcap %mktcap $+ M
  73.       }
  74.       else {
  75.         var %mktcap $round($left($remove(%mktcap,$chr(46)),-5) $+ $chr(46) $+ $right($remove(%mktcap,$chr(46)),5),2) $+ B
  76.       }
  77.       if (%afterprice isnum) {
  78.         var %afterchange $iif($calc(%afterprice - $stockparser(%ticks,last)) >= 0,+ $+ $v1,$v1)
  79.         var %afterperc $calc(%afterchange / $stockparser(%ticks,last))
  80.         var %afterperc $iif($left(%afterperc,1) == -,$right(%afterperc,-1),%afterperc)
  81.         var %afterperc $round($calc(%afterperc * 100),2)
  82.         var %aftercode $iif($left(%afterchange,1) == +,03,04)
  83.         var %afterstring 7-10After Hours7-4 %afterprice $+(10Change:,%aftercode) %afterchange $+($openparens,%aftercode,$+(%afterperc,%),$closeparens)
  84.       }
  85.       $($+(%,stock.,%ticks,.msgtype),2) 4§Stock§7 $stockparser(%ticks,pretty_symbol) $+(,$openparens,07,$replace($stockparser(%ticks,company),&amp;,&,&#39;,'),$closeparens) $&
  86.         10Last:04 $stockparser(%ticks,last) $+(,$openparens,04,$stockparser(%ticks,trade_timestamp),$closeparens) $&
  87.         $+(10Change:,%colorcode) $stockparser(%ticks,change) $+($openparens,%colorcode,$+($stockparser(%ticks,perc_change),%),$closeparens) $&
  88.         %afterstring $&
  89.         10Mkt Cap:3 %mktcap $&
  90.         10Link:12 $+(http://ou.gs/stock_,$upper($($+(%,stock.,%ticks,.ticker),2)))
  91.       unset $+(%,stock.,$remove($sockname,stock.),*)
  92.       sockclose $sockname
  93.     }
  94.   }
  95. }
  96.  
  97. on *:sockopen:stocklink.*: {
  98.   var %symbol $($+(%,stock.,$remove($sockname,stocklink.),.shorten),2)
  99.   sockwrite -nt $sockname GET $+(/index.php?url=http://www.google.com/finance?q=,%symbol,&alias=,stock_,%symbol) HTTP/1.1
  100.   set %stock.shortened $addtok(%stock.shortened,%symbol,44)
  101.   sockwrite -nt $sockname Host: ou.gs
  102.   sockwrite -nt $sockname $crlf
  103. }
  104.  
  105. alias -l openparens { return $+(01,$chr(40)) }
  106.  
  107. alias -l closeparens { return $+(01,$chr(41)) }
  108.  
  109. alias -l stockParser {
  110.   ;Syntax $stockparser(ticks,DATA_TYPE)
  111.   ;Options for DATA_TYPE are {pretty_symbol,company,exchange,last,high,low,volume,avg_volume,market_cap,open,...
  112.   ;y_close,change,perc_change,trade_timestamp,symbol_url,chart_url,isld_last,isld_trade_date_utc,isld_trade_time_utc}
  113.   return $gettok($($+(%,stock.,$1,.xml),2),$calc($findtok($($+(%,stock.,$1,.xml),2),$+(/><,$2-,$chr(32),data=),34) + 1),34)
  114. }
  115.  
  116. on *:start: .timerStockUpdate 1 60 StockUpdate
  117.  
  118. alias stockUpdate {
  119.   echo -atc info 12[04Stock Script12] Checking for updates...
  120.   sockopen stockUpdate www.hawkee.com 80
  121. }
  122.  
  123. on *:sockopen:stockUpdate: {  
  124.   sockwrite -nt $sockname GET /snippet/9578/ HTTP/1.1
  125.   sockwrite -nt $sockname Host: www.hawkee.com
  126.   sockwrite -nt $sockname $crlf
  127. }
  128.  
  129. on *:SOCKREAD:stockUpdate: {
  130.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr $sockname $asctime | halt }
  131.   sockread %sockreader
  132.   if (*<title>* iswm %sockreader) {
  133.     tokenize 32 %sockreader
  134.     echo -atc info 12[04Stock Script12] Current: $StockVersion Latest: $7 Status: $iif($StockVersion == $7,Up to date,Please update at www.hawkee.com/snippet/9578/)
  135.     unset %sockreader
  136.     sockclose $sockname
  137.   }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement