diff -r ab76826cf7bc -r 8ffe9b89a23e server/web/tweetgserver/views.py --- 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/', 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/', methods=['GET']) -def podium(tokens): +@app.route('/podium//', 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 = {}