--- 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 = {}