public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Vikraman Choudhury" <vikraman.choudhury@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoostats:master commit in: server/
Date: Mon, 25 Jul 2011 12:35:47 +0000 (UTC)	[thread overview]
Message-ID: <3c459b75e6d5c193fda884068fb749c1b99c6e32.vikraman@gentoo> (raw)

commit:     3c459b75e6d5c193fda884068fb749c1b99c6e32
Author:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
AuthorDate: Mon Jul 25 12:34:52 2011 +0000
Commit:     Vikraman Choudhury <vikraman.choudhury <AT> gmail <DOT> com>
CommitDate: Mon Jul 25 12:34:52 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoostats.git;a=commit;h=3c459b75

export json from server

---
 server/arch.py    |    6 +++++-
 server/feature.py |    6 +++++-
 server/helpers.py |   12 ++++++++++++
 server/host.py    |    5 ++++-
 server/kwd.py     |    6 +++++-
 server/lang.py    |    6 +++++-
 server/mirror.py  |    6 +++++-
 server/package.py |   20 ++++++++++++++++----
 server/profile.py |    6 +++++-
 server/repo.py    |    6 +++++-
 server/search.py  |    6 +++++-
 11 files changed, 72 insertions(+), 13 deletions(-)

diff --git a/server/arch.py b/server/arch.py
index 8b9ef99..20dde69 100644
--- a/server/arch.py
+++ b/server/arch.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Arch(object):
@@ -7,4 +8,7 @@ class Arch(object):
         arch_data = dict()
         for t in arch_count:
             arch_data[t['ARCH']] = {'HOSTS':t['HOSTS']}
-        return render.arch(arch_data)
+        if helpers.is_json_request():
+            return helpers.serialize(arch_data)
+        else:
+            return render.arch(arch_data)

diff --git a/server/feature.py b/server/feature.py
index d7674f7..1ea1c36 100644
--- a/server/feature.py
+++ b/server/feature.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Feature(object):
@@ -7,4 +8,7 @@ class Feature(object):
         feature_data = dict()
         for t in feature_count:
             feature_data[t['FEATURE']] = {'HOSTS':t['HOSTS']}
-        return render.feature(feature_data)
+        if helpers.is_json_request():
+            return helpers.serialize(feature_data)
+        else:
+            return render.feature(feature_data)

diff --git a/server/helpers.py b/server/helpers.py
index 28d15a2..a5977be 100644
--- a/server/helpers.py
+++ b/server/helpers.py
@@ -1,4 +1,6 @@
 
+import web
+import json
 import uuid
 import re
 from portage.versions import catpkgsplit
@@ -106,3 +108,13 @@ def get_rkey(db, repo):
     else:
         rkey = db.insert('REPOSITORIES', REPO=repo)
     return rkey
+
+def is_json_request():
+    return web.ctx.environ['HTTP_ACCEPT'].find('json') != -1
+
+def serialize(object, human=True):
+    if human:
+        indent = 2
+    else:
+        indent = None
+    return json.JSONEncoder(indent=indent).encode(object)

diff --git a/server/host.py b/server/host.py
index 6d1f6f3..fab706c 100644
--- a/server/host.py
+++ b/server/host.py
@@ -55,7 +55,10 @@ class Host(object):
             cpv = p['CAT'] + '/' + p['PKG'] + '-' + p['VER']
             host_data['PACKAGES'][cpv] = dict()
 
-        return render.host(host_data)
+        if helpers.is_json_request():
+            return helpers.serialize(host_data)
+        else:
+            return render.host(host_data)
 
     def POST(self, str_uuid):
         post_data = json.JSONDecoder().decode(web.data())

diff --git a/server/kwd.py b/server/kwd.py
index 6cef893..b8c50cd 100644
--- a/server/kwd.py
+++ b/server/kwd.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Keyword(object):
@@ -7,4 +8,7 @@ class Keyword(object):
         keyword_data = dict()
         for t in keyword_count:
             keyword_data[t['KEYWORD']] = {'HOSTS':t['HOSTS'], 'PACKAGES':t['PACKAGES']}
-        return render.keyword(keyword_data)
+        if helpers.is_json_request():
+            return helpers.serialize(keyword_data)
+        else:
+            return render.keyword(keyword_data)

diff --git a/server/lang.py b/server/lang.py
index e8c2d90..de6c625 100644
--- a/server/lang.py
+++ b/server/lang.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Lang(object):
@@ -7,4 +8,7 @@ class Lang(object):
         lang_data = dict()
         for t in lang_count:
             lang_data[t['LANG']] = {'HOSTS':t['HOSTS']}
-        return render.lang(lang_data)
+        if helpers.is_json_request():
+            return helpers.serialize(lang_data)
+        else:
+            return render.lang(lang_data)

diff --git a/server/mirror.py b/server/mirror.py
index c8b44c2..e701404 100644
--- a/server/mirror.py
+++ b/server/mirror.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Mirror(object):
@@ -7,4 +8,7 @@ class Mirror(object):
         mirror_data = dict()
         for t in mirror_count:
             mirror_data[t['MIRROR']] = {'HOSTS':t['HOSTS']}
-        return render.mirror(mirror_data)
+        if helpers.is_json_request():
+            return helpers.serialize(mirror_data)
+        else:
+            return render.mirror(mirror_data)

diff --git a/server/package.py b/server/package.py
index adc2d94..aa037e5 100644
--- a/server/package.py
+++ b/server/package.py
@@ -38,7 +38,10 @@ class Package(object):
                 'CPV_COUNT':p_tuple['CPV_COUNT'],
                 'TOP_C':self.__top(top)
                 }
-        return render.package(p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package(p_data)
 
     def __GET_C(self, top, cat):
         p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT, \
@@ -54,7 +57,10 @@ class Package(object):
                 'CPV_COUNT':p_tuple['CPV_COUNT'],
                 'TOP_CP':self.__top(top, cat)
                 }
-        return render.package_c(cat, p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package_c(cat, p_data)
 
     def __GET_CP(self, top, cat, pkg):
         p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT, \
@@ -68,7 +74,10 @@ class Package(object):
                 'CPV_COUNT':p_tuple['CPV_COUNT'],
                 'TOP_CPV':self.__top(top, cat, pkg)
                 }
-        return render.package_cp(cat, pkg, p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package_cp(cat, pkg, p_data)
 
     def __GET_CPV(self, cat, pkg, ver):
         p_query = db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT\
@@ -79,7 +88,10 @@ class Package(object):
         p_data = {
                 'HOST_COUNT':p_tuple['HOST_COUNT'],
                 }
-        return render.package_cpv(cat, pkg, ver, p_data)
+        if helpers.is_json_request():
+            return helpers.serialize(p_data)
+        else:
+            return render.package_cpv(cat, pkg, ver, p_data)
 
     def __top(self, count, *args):
         t_list = list()

diff --git a/server/profile.py b/server/profile.py
index c0a0fc5..798c90d 100644
--- a/server/profile.py
+++ b/server/profile.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Profile(object):
@@ -7,4 +8,7 @@ class Profile(object):
         profile_data = dict()
         for t in profile_count:
             profile_data[t['PROFILE']] = {'HOSTS':t['HOSTS']}
-        return render.profile(profile_data)
+        if helpers.is_json_request():
+            helpers.serialize(profile_data)
+        else:
+            return render.profile(profile_data)

diff --git a/server/repo.py b/server/repo.py
index 5db221a..7be99ac 100644
--- a/server/repo.py
+++ b/server/repo.py
@@ -1,4 +1,5 @@
 
+import helpers
 from config import render, db
 
 class Repo(object):
@@ -7,4 +8,7 @@ class Repo(object):
         repo_data = dict()
         for t in repo_count:
             repo_data[t['REPO']] = {'HOSTS':t['HOSTS'], 'PACKAGES':t['PACKAGES']}
-        return render.repo(repo_data)
+        if helpers.is_json_request():
+            return helpers.serialize(repo_data)
+        else:
+            return render.repo(repo_data)

diff --git a/server/search.py b/server/search.py
index 69170ac..7ddcded 100644
--- a/server/search.py
+++ b/server/search.py
@@ -1,6 +1,7 @@
 
 import web
 import string
+import helpers
 from config import render, db
 
 what = ['CAT', 'PKG', 'VER', 'REPO', 'COUNT(DISTINCT UUID) AS HOSTS']
@@ -33,7 +34,10 @@ class Search(object):
             'repo':self.args.repo,
             'min_hosts':self.min_hosts,
             'max_hosts':self.max_hosts})
-        return render.search(search_tuples)
+        if helpers.is_json_request():
+            return helpers.serialize(search_tuples)
+        else:
+            return render.search(search_tuples)
 
     def _build_query(self, where, having):
         sep = ' '



             reply	other threads:[~2011-07-25 12:35 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-25 12:35 Vikraman Choudhury [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-08-06 20:04 [gentoo-commits] proj/gentoostats:master commit in: server/ Vikraman Choudhury
2011-08-01 23:40 Vikraman Choudhury
2011-08-01 23:15 Vikraman Choudhury
2011-08-01 23:04 Vikraman Choudhury
2011-07-11  8:26 Vikraman Choudhury
2011-06-30 10:28 Vikraman Choudhury
2011-06-15 20:55 Vikraman Choudhury
2011-05-11 23:52 Vikraman Choudhury
2011-05-11 22:42 Vikraman Choudhury

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3c459b75e6d5c193fda884068fb749c1b99c6e32.vikraman@gentoo \
    --to=vikraman.choudhury@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox