Guest User

Yahoo! Finance API usage example for D

a guest
Oct 18th, 2013
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 1.26 KB | None | 0 0
  1. module main;
  2.  
  3. import std.stdio;
  4. import std.conv;
  5. import std.array;
  6. import std.string;
  7. import std.algorithm;
  8. import std.uri;
  9.  
  10. import dhttpclient;
  11.  
  12. struct Quote
  13. {
  14.     string symbol;    // s
  15.     string name;      // n
  16.     double lastTrade; // l1
  17.     string currency;  // c4
  18.     string date;      // d1
  19.     string time;      // t1
  20. }
  21.  
  22. Quote getQuote(string symbol)
  23. {  
  24.     const request = "snl1c4d1t1";
  25.  
  26.     const url =
  27.         "http://finance.yahoo.com/d/quotes.csv?e=.csv"
  28.       ~ "&f=" ~ request
  29.       ~ "&s=" ~ symbol.encode;
  30.    
  31.     auto http = new HTTPClient();
  32.    
  33.     auto data =
  34.         http.get(url)
  35.        .chomp
  36.        .split(",")
  37.        .map!(s => s.removechars("\""));
  38.  
  39.     Quote q =
  40.     {
  41.         symbol: data[0],
  42.         name: data[1],
  43.         lastTrade: data[2].to!double,
  44.         currency: data[3],
  45.         date: data[4],
  46.         time: data[5]
  47.     };
  48.  
  49.     return q;
  50. }
  51.  
  52. void main(string[] args)
  53. {
  54.     string s = "AAPL"; // Apple Inc.
  55.    
  56.     if (args.length > 1)
  57.         s = args[1];
  58.  
  59.     auto q = getQuote(s);
  60.  
  61.     writefln("Symbol: %s", q.symbol);
  62.     writefln("Name: %s", q.name);
  63.     writefln("Last trade: %s %s (%s %s)",
  64.         q.lastTrade,
  65.         q.currency,
  66.         q.date,
  67.         q.time);
  68. }
Add Comment
Please, Sign In to add comment