illpastethat

Stock Quote Script (Financial Data) v2.3

Mar 17th, 2015
594
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 7.27 KB | None | 0 0
  1. ;Stock Quote Script (Financial Stock Data) v2.3
  2. ;Made by nick1
  3. ;View online and report bugs at http://hawkee.com/snippet/9578
  4. ;Last edit March 17, 2015
  5.  
  6. ;DISCLAIMER: Data and information provided may be delayed.
  7. ;Data and information is provided for informational purposes only, and is not intended for trading purposes. - Currency in USD
  8. ;NOTE: API is deprecated and unofficial, see http://tinyurl.com/mircstock for column options
  9.  
  10. alias -l stockVersion {
  11.   return v2.3
  12. }
  13. alias stock {
  14.   var %ticks $ticks
  15.   tokenize 32 $strip($1-)
  16.   if ($1) {
  17.     if ($1 == eurusd) { var %ticker EURUSD=X }
  18.     elseif ((*s&p* iswm $1) || (*SP500* iswm $1)) { var %ticker ^GSPC }
  19.     elseif ($1 == nasdaq) { var %ticker ^IXIC }
  20.     elseif ($1 == nyse) { var %ticker ^NYA }
  21.     else {
  22.       var %ticker $1
  23.     }
  24.     set $+(%,stock.,%ticks,.msgtype) echo -a
  25.     set $+(%,stock.,%ticks,.ticker) $replace(%ticker,^,$(%255E,0))
  26.     sockopen $+(stock.,%ticks) query.yahooapis.com 80
  27.   }
  28.   elseif ($1 == $null) {
  29.     echo -act info 4Incorrect Syntax - Use10 /stock <ticker symbol>
  30.   }
  31. }
  32.  
  33. on *:input:*:{
  34.   $iif($istok(%nolinks,$active,44),return,noop)
  35.   $iif($istok(%youtubefetch,$active,44),return,noop)
  36.   if (($remove($1,$left($strip($1),1)) == stock) || ($remove($1,$left($strip($1),1)) == stocks) || ($remove($1,$left($strip($1),1)) == stockquote) || ($remove($1,$left($strip($1),1)) == price) || ($remove($1,$left($strip($1),1)) == p) || ($remove($1,$left($strip($1),1)) == ystock)) {
  37.     if ($2) {
  38.       if ($2 == eurusd) { var %ticker EURUSD=X }
  39.       elseif ($2 == S&P500) || ($2-3 == s&p 500) { var %ticker ^GSPC }
  40.       elseif ($2 == nasdaq) { var %ticker ^IXIC }
  41.       elseif ($2 == nyse) { var %ticker ^NYA }
  42.       else {
  43.         var %ticker $2
  44.       }
  45.       set $+(%,stock.,%ticks,.msgtype) $iif($chan,$iif($left($1,1) == @,msg $active,echo -a),msg $active)
  46.       set $+(%,stock.,%ticks,.ticker) $replace(%ticker,^,$(%255E,0))
  47.       sockopen $+(stock.,%ticks) query.yahooapis.com 80
  48.     }
  49.     elseif ($2 == $null) {
  50.       echo -a 4Incorrect Syntax - Use10 $1 <ticker symbol>
  51.     }
  52.   }
  53. }
  54.  
  55.  
  56. on $*:text:/^[!@](stock|stocks|stockquote|price|p|ystock)(\s|$)/Si:#:{
  57.   $iif($istok(%nolinks,$nick,44),return,noop)
  58.   $iif($istok(%youtubefetch,$chan,44),return,noop)
  59.   if ($($+(%,botflood.,$nick),2)) {
  60.     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 }
  61.     elseif ($($+(%,botflood.,$nick),2) >= 200) { msg $chan $+($nick,$chr(44)) Please Do Not Abuse The Bot. | inc -z $+(%,botflood.,$nick) 20 | halt }
  62.     else { inc -z $+(%,botflood.,$nick) 25 }
  63.   }
  64.   else { inc -z $+(%,botflood.,$nick) 25 }
  65.   var %ticks $ticks
  66.   tokenize 32 $strip($1-)
  67.   if ($2) {
  68.     if ($2 == eurusd) { var %ticker EURUSD=X }
  69.     elseif ($2 == S&P500) || ($2-3 == s&p 500) { var %ticker ^GSPC }
  70.     elseif ($2 == nasdaq) { var %ticker ^IXIC }
  71.     elseif ($2 == nyse) { var %ticker ^NYA }
  72.     else {
  73.       var %ticker $2
  74.     }
  75.     set $+(%,stock.,%ticks,.msgtype) $iif($chan,$iif($left($1,1) == @,msg $chan,notice $nick),msg $nick)
  76.     set $+(%,stock.,%ticks,.ticker) $replace(%ticker,^,$(%255E,0))
  77.     sockopen $+(stock.,%ticks) query.yahooapis.com 80
  78.   }
  79.   elseif ($2 == $null) {
  80.     notice $nick 4Incorrect Syntax - Use10 $1 <ticker symbol>
  81.   }
  82. }
  83.  
  84. on *:sockopen:stock.*: {  
  85.   var %sw sockwrite -nt $sockname
  86.   var %enc1 $(select%20*%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3D,0)
  87.   var %enc2 $(%26f%3D,0)
  88.   var %enc3 $(%26e%3D.csv'%20and%20columns%3D',0)
  89.   var %options e1snd1t1l1c6p2j1c8r
  90.   var %columns Error,symbol,name,date,time,price,change,percentChange,MarketCap,AfterChange,PERatio
  91.   var %columns $replace(%columns,$chr(44),$(%2C,0))
  92.   %sw GET $+(/v1/public/yql?q=,%enc1,$($+(%,$sockname,.ticker),2),%enc2,%options,%enc3,%columns,'&diagnostics=true) HTTP/1.1
  93.   %sw Host: query.yahooapis.com
  94.   %sw $crlf
  95. }
  96. alias -l months {
  97.   return January,February,March,April,May,June,July,August,September,October,November,December
  98. }
  99.  
  100. on *:SOCKREAD:stock.*: {
  101.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  102.   var %ticks $remove($sockname,stock.)
  103.   var %url $+(http://finance.yahoo.com/q?s=,$($+(%,stock.,%ticks,.ticker),2))
  104.   sockread &t
  105.   if ((*400 bad request* iswm $bvar(&t,1-).text) || (*column mismatch* iswm $bvar(&t,1-).text)) {
  106.     $($+(%,stock.,%ticks,.msgtype),2) $+(7,$($+(%,stock.,%ticks,.ticker),2),) 04This symbol could not be found. $&
  107.       Please try again or search for it at12 %url
  108.     unset $+(%,stock.,$remove($sockname,stock.),*)
  109.     sockclose $sockname
  110.   }
  111.   var %pos $bfind(&t,1,<row>)
  112.   var %pos2 $bfind(&t,%pos,</row>)
  113.   if (%pos != 0) {
  114.     set $+(%,stock.,%ticks,.xml) $bvar(&t,$+($calc(%pos + 5),-,$calc(%pos2 - 1))).text
  115.     if ($stockparser(%ticks,name) == N/A) {
  116.       $($+(%,stock.,%ticks,.msgtype),2) $+(7,$($+(%,stock.,%ticks,.ticker),2),) 04This symbol could not be found. $&
  117.         Please try again or search for it at12 %url
  118.       unset $+(%,stock.,$remove($sockname,stock.),*)
  119.       sockclose $sockname
  120.     }  
  121.     else {
  122.       var %colorcode $iif($left($stockparser(%ticks,percentchange),1) == +,03,04)
  123.       var %month $gettok($months,$gettok($stockparser(%ticks,date),1,47),44)
  124.       var %ascdate $replace($+(%month,/,$gettok($stockparser(%ticks,date),2-,47)) $stockparser(%ticks,time),/,$chr(32))
  125.       var %timestamp $duration($calc($gmt - $calc($ctime(%ascdate) + $timezone)),2) ago
  126.       var %timestamp $iif(*-* iswm %timestamp,now,%timestamp)
  127.       $($+(%,stock.,%ticks,.msgtype),2) $+(7,$stockparser(%ticks,symbol)) $&
  128.         $+(,$openparens,07,$replace($stockparser(%ticks,name),&amp;,&,&#39;,'),$closeparens) $&
  129.         10Last:04 $stockparser(%ticks,price) $+(,$openparens,04,%timestamp,$closeparens) $&
  130.         $+(10Change:,%colorcode) $stockparser(%ticks,change) $&
  131.         $+($openparens,%colorcode,$stockparser(%ticks,percentchange),$closeparens) $&
  132.         10Mkt Cap:3 $stockparser(%ticks,marketcap) $&
  133.         10Link:12 %url
  134.       unset $+(%,stock.,$remove($sockname,stock.),*)
  135.       sockclose $sockname
  136.     }
  137.   }
  138. }
  139.  
  140. alias -l openparens { return $+(01,$chr(40)) }
  141.  
  142. alias -l closeparens { return $+(01,$chr(41)) }
  143.  
  144. alias -l stockParser {
  145.   ;Syntax $stockparser(ticks,DATA_TYPE)
  146.   ;Options for DATA_TYPE are {error,symbol,name,date,time,price,change,percentChange,MarketCap,PERatio}
  147.   var %xml $($+(%,stock.,$1,.xml),2)
  148.   return $remove($wildtok(%xml,* $+ $2 $+ *,1,60),>,$2)
  149. }
  150.  
  151. on *:start: .timerStockUpdate 1 60 StockUpdate
  152.  
  153. alias stockUpdate {
  154.   echo -atc info 12[04Stock Script12] Checking for updates...
  155.   sockopen stockUpdate hawkee.com 80
  156. }
  157.  
  158. on *:sockopen:stockUpdate: {  
  159.   sockwrite -nt $sockname GET /snippet/9578/ HTTP/1.1
  160.   sockwrite -nt $sockname Host: hawkee.com
  161.   sockwrite -nt $sockname $crlf
  162. }
  163.  
  164. on *:SOCKREAD:stockUpdate: {
  165.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr $sockname $asctime | halt }
  166.   sockread %sockreader
  167.   if (*<title>* iswm %sockreader) {
  168.     tokenize 32 %sockreader
  169.     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/)
  170.     unset %sockreader
  171.     sockclose $sockname
  172.   }
  173. }
Add Comment
Please, Sign In to add comment