diff -r f7febf052997 -r e0dbcf98c13e server/web/tweetgserver/views.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/web/tweetgserver/views.py Tue Feb 14 18:38:48 2012 +0100 @@ -0,0 +1,52 @@ +#!/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 +import simplejson as json #@UnresolvedImport +import re +import math + +def jsonpwrap(resobj): + resp_str = json.dumps(resobj) + callback_param = request.args.get("callback") + if callback_param: + resp_str = "%s( %s );" % (callback_param, resp_str) + mime_type = 'text/javascript' + else: + mime_type = 'application/json' + return Response(resp_str, mimetype=mime_type) + +@app.route('/', methods=['GET']) +def index(): + query = db.session.query(func.count(TweetSource.id)) #@UndefinedVariable + 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 + ts_list_count = query.scalar() + return jsonpwrap({"total":ts_list_count}) + +@app.route('/podium/', methods=['GET']) +def podium(tokens): + token_list = tokens.split(",") + query_base = db.session.query(func.count(Tweet.id)) #@UndefinedVariable + podium_res = {} + for token in token_list: + query = query_base.filter(Tweet.text.op('~*')(token)) #@UndefinedVariable + podium_res[token] = query.scalar() + res = { + "podium" : podium_res, + "total" : query_base.scalar() + } + return jsonpwrap(res) +