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 = ' '
next 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