server/web/tweetgserver/views.py
changeset 6 8ffe9b89a23e
parent 1 e0dbcf98c13e
child 32 1e47b1f9f42d
--- a/server/web/tweetgserver/views.py	Thu Feb 16 12:24:18 2012 +0100
+++ b/server/web/tweetgserver/views.py	Thu Feb 16 18:09:30 2012 +0100
@@ -1,18 +1,13 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from datetime import datetime, timedelta
 from flask import Response, request #@UnresolvedImport
 from flaskext.sqlalchemy import get_debug_queries
 from iri_tweet.models import TweetSource, Tweet
-from pyrfc3339.generator import generate
-from sqlalchemy import func, desc #@UnresolvedImport
-from sqlalchemy.orm import joinedload
-from tweetgserver import app, db, cache
-import pytz
+from sqlalchemy import func #@UnresolvedImport
+from tweetgserver import app, db
+from datetime import datetime
 import simplejson as json #@UnresolvedImport
-import re
-import math
 
 def jsonpwrap(resobj):
     resp_str = json.dumps(resobj)
@@ -30,14 +25,23 @@
     ts_list_count = query.scalar()
     return 'Nb of tweets ' + str(ts_list_count)
 
-@app.route('/total', methods=['GET'])
-def total():
-    query = db.session.query(func.count(TweetSource.id)) #@UndefinedVariable
+@app.route('/total/<int:since>', methods=['GET'])
+def total(since):
+    sincetime = datetime.fromtimestamp(since)
+    delta_td = datetime.now() - sincetime
+    delta_s = delta_td.total_seconds()
+    query = db.session.query(func.count(Tweet.id)).filter(Tweet.created_at >= sincetime) #@UndefinedVariable
     ts_list_count = query.scalar()
-    return jsonpwrap({"total":ts_list_count})
+    res = {
+           "total" : ts_list_count,
+           "delta": int(delta_s),
+           "tweets_per_minute": 60. * ts_list_count / delta_s
+           }
+    return jsonpwrap(res)
 
-@app.route('/podium/<tokens>', methods=['GET'])
-def podium(tokens):
+@app.route('/podium/<int:since>/<tokens>', methods=['GET'])
+def podium(since, tokens):
+    sincetime = datetime.fromtimestamp(since)
     token_list = tokens.split(",")
     query_base = db.session.query(func.count(Tweet.id)) #@UndefinedVariable
     podium_res = {}