فهرست منبع

Merged DrkSephy/django-hackathon-starter into default

Wan Kim Mok 10 سال پیش
والد
کامیت
af3e3359e0

+ 30 - 3
hackathon_starter/hackathon/scripts/quandl.py

@@ -6,7 +6,7 @@ import json
 
 def fetchData(apikey, url):
     '''Returns JSON data of the Dow Jones Average.'''
-    parameters = {'rows' : 1, 'auth_token' : apikey}
+    parameters = {'rows' : 1, 'column' : 1, 'auth_token' : apikey}
     req = requests.get(url, params=parameters)
     data = json.loads(req.content)
     parsedData = []
@@ -16,12 +16,39 @@ def fetchData(apikey, url):
         stockData['description'] = '''The NASDAQ Composite Index measures all
         NASDAQ domestic and international based common type stocks listed \
         on The NASDAQ Stock Market.'''
-        stockData['data'] = data['data']
+        stockData['data'] = data['data'][0][1]
         stockData['code'] = data['code']
     else:
         stockData['name'] = data['name']
         stockData['description'] = data['description']
-        stockData['data'] = data['data']
+        stockData['data'] = data['data'][0][1]
         stockData['code'] = data['code']
     parsedData.append(stockData)
     return parsedData
+
+def fetchstockData(apikey, url):
+    '''Returns Stock related JSON data of the stock url placed there.'''
+    parameters = {'rows' : 1, 'auth_token' : apikey}
+    req = requests.get(url, params=parameters)
+    data = json.loads(req.content)
+    parsedData = []
+    stockData = {}
+    stockData['name'] = data['name']
+    stockData['open'] = data['data'][0][1]
+    stockData['high'] = data['data'][0][2]
+    stockData['low'] = data['data'][0][3]
+    stockData['close'] = data['data'][0][4]
+    stockData['code'] = data['code']
+    parsedData.append(stockData)
+    return parsedData
+
+def rdiffData(apikey, url):
+    '''Returns data of the difference of the stock URL placed there.'''
+    parameters = {'rows' : 1, 'column' : 1, 'transformation': 'rdiff', 'auth_token' : apikey}
+    req = requests.get(url, params=parameters)
+    data = json.loads(req.content)
+    parsedData = []
+    stockData = {}
+    stockData['rdiff'] = data['data'][0][1]
+    parsedData.append(stockData)
+    return parsedData

+ 0 - 27
hackathon_starter/hackathon/scripts/steam.py

@@ -26,30 +26,3 @@ def steamidpulling(steamun, apikey):
     data = json.loads(req.content)
     steamid = data['response']['steamid']
     return steamid
-
-def steamlibrarypull(steamid, apikey):
-    '''Pulls out a CSV of Steam appids.'''
-    steaminfo = {
-        'key': apikey,
-        'steamid': steamid,
-        'format':'JSON',
-        'include_appinfo':'1'
-    }
-    url = 'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/'
-    req = requests.get(url, params=steaminfo)
-    data = json.loads(req.content)
-    response = data['response']['games']
-    games = {}
-    for game in response:
-        url = 'http://store.steampowered.com/api/appdetails/?appids=%d&filters=price_overview&cc=us'
-        getprice = requests.get(url % game['appid'])
-        if getprice.status_code == 200:
-            rjson = json.loads(getprice.text)
-            # use the appid to fetch the value and convert to decimal
-            # appid is numeric, cast to string to lookup the price
-            try:
-                price = rjson[str(game['appid'])]['data']['price_overview']['initial'] * .01
-            except KeyError:
-                pass
-            games[game['name']] = {'price': price, 'appid': game['appid']}
-    return games

+ 1 - 0
hackathon_starter/hackathon/templates/hackathon/api_examples.html

@@ -16,6 +16,7 @@
 		<div class="col-sm-4"><a href="http://localhost:8000/hackathon/meetupUser/">Meetup</a></div>
 		<div class="col-sm-4"><a href="http://localhost:8000/hackathon/yelp/">Yelp</a></div>
 		<div class="col-sm-4"><a href="http://127.0.0.1:8000/hackathon/nytimesarticles/">New York Times</a></div>
+        <div class="col-sm-4"><a href="http://127.0.0.1:8000/hackathon/facebook/">Facebook JDK Exmaple</a></div>
 
   	</div>
 

+ 43 - 40
hackathon_starter/hackathon/templates/hackathon/quandl.html

@@ -3,81 +3,84 @@
 <body>
 	{% include 'hackathon/base.html' %}
 
-    <h1 class="text-center"> Quandl Collection </h1>
-    <h2 class="text-center"> Dow Jones Data </h2>
-	<div class="col-lg-12">
+<h1 class="text-center"> Quandl Collection </h1>
+    <h2 class="text-center"> Index Data </h2>
+    <div class="col-lg-12">
         <div class="table-responsive">
             <table class="table table-bordered table-hover table-striped tablesorter">
                 <thead>
                 <tr>
                 <th class="header"> Name <i class="icon-sort"></i></th>
-                <th class="header"> Description <i class="icon-sort"></i></th>
+                <th class="header"> Code <i class="icon-sort"></i></th>
                 <th class="header"> Data <i class="icon-sort"></i></th>
-                <th class="header"> Code <i class="icon-sort"></i></th>  
+                <th class="header"> Change <i class="icon-sort"></i></th> 
                 </tr>
             </thead>
             <tbody>
-
+            <tr>
             {% for data in everyData.dow %}
-                <tr>
                     <td>{{ data.name }}</td>
-                    <td>{{ data.description }}</td>
-                    <td>{{ data.data }}</td>
                     <td>{{ data.code }}</td>
-                </tr>
+                    <td>{{ data.data }}</td>
+            {% endfor %}
+            {% for data in everyData.dowdiff %}
+                    <td>{{ data.rdiff }}</td>
             {% endfor %}
-            </tbody>
-            </table>
-        </div>
-    </div>
-    <h2 class="text-center"> SnP 500 Data </h2>
-    <div class="col-lg-12">
-        <div class="table-responsive">
-            <table class="table table-bordered table-hover table-striped tablesorter">
-                <thead>
-                <tr>
-                <th class="header"> Name <i class="icon-sort"></i></th>
-                <th class="header"> Description <i class="icon-sort"></i></th>
-                <th class="header"> Data <i class="icon-sort"></i></th>
-                <th class="header"> Code <i class="icon-sort"></i></th>  
                 </tr>
-            </thead>
-            <tbody>
-
-            {% for data in everyData.snp %}
                 <tr>
+            {% for data in everyData.snp %}
                     <td>{{ data.name }}</td>
-                    <td>{{ data.description }}</td>
-                    <td>{{ data.data }}</td>
                     <td>{{ data.code }}</td>
+                    <td>{{ data.data }}</td>
+            {% endfor %}
+            {% for data in everyData.snpdiff %}
+                    <td>{{ data.rdiff }}</td>
+            {% endfor %}
                 </tr>
+                <tr>
+            {% for data in everyData.nasdaq %}
+                    <td>{{ data.name }}</td>
+                    <td>{{ data.code }}</td>
+                    <td>{{ data.data }}</td>
+            {% endfor %}
+            {% for data in everyData.nasdaqdiff %}
+                    <td>{{ data.rdiff }}</td>
             {% endfor %}
+                </tr>
             </tbody>
             </table>
         </div>
     </div>
-    <h2 class="text-center"> Nasdaq Data </h2>
+
+<h2 class="text-center"> Stock Data </h2>
     <div class="col-lg-12">
         <div class="table-responsive">
             <table class="table table-bordered table-hover table-striped tablesorter">
                 <thead>
                 <tr>
                 <th class="header"> Name <i class="icon-sort"></i></th>
-                <th class="header"> Description <i class="icon-sort"></i></th>
-                <th class="header"> Data <i class="icon-sort"></i></th>
-                <th class="header"> Code <i class="icon-sort"></i></th>  
+                <th class="header"> Code <i class="icon-sort"></i></th>
+                <th class="header"> Open <i class="icon-sort"></i></th>
+                <th class="header"> High <i class="icon-sort"></i></th>
+                <th class="header"> Low <i class="icon-sort"></i></th>
+                <th class="header"> Close <i class="icon-sort"></i></th>
+                <th class="header"> Change <i class="icon-sort"></i></th> 
                 </tr>
             </thead>
             <tbody>
-
-            {% for data in everyData.nasdaq %}
-                <tr>
+            <tr>
+            {% for data in everyData.apple %}
                     <td>{{ data.name }}</td>
-                    <td>{{ data.description }}</td>
-                    <td>{{ data.data }}</td>
                     <td>{{ data.code }}</td>
-                </tr>
+                    <td>{{ data.open }}</td>
+                    <td>{{ data.high }}</td>
+                    <td>{{ data.low }}</td>
+                    <td>{{ data.close }}</td>
             {% endfor %}
+            {% for data in everyData.applediff %}
+                    <td>{{ data.rdiff }}</td>
+            {% endfor %}
+                </tr>
             </tbody>
             </table>
         </div>

+ 5 - 0
hackathon_starter/hackathon/urls.py

@@ -31,8 +31,13 @@ urlpatterns = patterns('',
     url(r'^facebook/$', views.facebook, name='facebook'),
     url(r'^quandlSnp500/$', views.quandlSnp500, name='quandlsnp500'),
     url(r'^quandlNasdaq/$', views.quandlNasdaq, name='quandlnasdaq'),
+    url(r'^quandlNasdaqdiff/$', views.quandlNasdaqdiff, name='quandlnasdaqdiff'),
     url(r'^quandlDowJones/$', views.quandlDowJones, name='quandldowjones'),
     url(r'^quandlstocks/$', views.quandlstocks, name='quandlstocks'),
+    url(r'^quandlapple/$', views.quandlapple, name='quandlapple'),
+    url(r'^quandlapplediff/$', views.quandlapplediff, name='quandlapplediff'),
+    url(r'^quandlDowJonesdiff/$', views.quandlDowJonesdiff, name='quandldowjonesdiff'),
+    url(r'^quandlSnp500diff/$', views.quandlSnp500diff, name='quandlsnp500diff'),
     url(r'^nytimespop/$', views.nytimespop, name='nytimespop'),
     url(r'^nytimestop/$', views.nytimestop, name='nytimestop'),
     url(r'^nytimesarticles/$', views.nytimesarticles, name='nytimesarticles'),

+ 30 - 0
hackathon_starter/hackathon/views.py

@@ -270,14 +270,44 @@ def quandlNasdaq(request):
     nasdaqdata = fetchData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/NASDAQOMX/COMP.json?')
     return JsonResponse({'data': nasdaqdata})
 
+def quandlapple(request):
+    '''Returns JSON response about the latest apple stock.'''
+    appledata = fetchstockData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/GOOG/NASDAQ_AAPL.json')
+    return JsonResponse({'data': appledata})
+
+def quandlNasdaqdiff(request):
+    '''Returns JSON response about the latest nasdaq index.'''
+    nasdaqdata = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/NASDAQOMX/COMP.json?')
+    return JsonResponse({'data': nasdaqdata})
+
+def quandlSnp500diff(request):
+    '''Returns JSON response about the latest SNP 500 index.'''
+    snpdata = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/YAHOO/INDEX_GSPC.json?')
+    return JsonResponse({'data': snpdata})
+
+def quandlDowJonesdiff(request):
+    '''Returns JSON response about the latest dowjones index.'''
+    dowjonesdata = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/BCB/UDJIAD1.json?')
+    return JsonResponse({'data': dowjonesdata})
+
+def quandlapplediff(request):
+    '''Returns JSON response about the latest apple stock.'''
+    appledata = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/GOOG/NASDAQ_AAPL.json')
+    return JsonResponse({'data': appledata})
+
 def quandlstocks(request):
     everyData = {}
     dowjonesdata = fetchData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/BCB/UDJIAD1.json?')
     everyData['dow'] = dowjonesdata
+    everyData['dowdiff'] = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/BCB/UDJIAD1.json?')
     snpdata = fetchData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/YAHOO/INDEX_GSPC.json?')
     everyData['snp'] = snpdata
+    everyData['snpdiff'] = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/YAHOO/INDEX_GSPC.json?')
     nasdaqdata = fetchData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/NASDAQOMX/COMP.json?')
     everyData['nasdaq'] = nasdaqdata
+    everyData['nasdaqdiff'] = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/NASDAQOMX/COMP.json?')
+    everyData['apple'] = fetchstockData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/GOOG/NASDAQ_AAPL.json')
+    everyData['applediff'] = rdiffData(settings.QUANDLAPIKEY, 'https://www.quandl.com/api/v1/datasets/GOOG/NASDAQ_AAPL.json')
     return render(request, 'hackathon/quandl.html', { 'everyData': everyData })
 
 #################