server/web/tweetgserver/views.py
changeset 1 e0dbcf98c13e
child 6 8ffe9b89a23e
--- /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/<tokens>', 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)
+