From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QlKO5-0003OI-Vq for garchives@archives.gentoo.org; Mon, 25 Jul 2011 12:35:58 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0E75721C0C1; Mon, 25 Jul 2011 12:35:50 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id B5D1121C0C1 for ; Mon, 25 Jul 2011 12:35:50 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CC9A41B4023 for ; Mon, 25 Jul 2011 12:35:48 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id D1DDD8003D for ; Mon, 25 Jul 2011 12:35:47 +0000 (UTC) From: "Vikraman Choudhury" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Vikraman Choudhury" Message-ID: <3c459b75e6d5c193fda884068fb749c1b99c6e32.vikraman@gentoo> Subject: [gentoo-commits] proj/gentoostats:master commit in: server/ X-VCS-Repository: proj/gentoostats X-VCS-Files: server/arch.py server/feature.py server/helpers.py server/host.py server/kwd.py server/lang.py server/mirror.py server/package.py server/profile.py server/repo.py server/search.py X-VCS-Directories: server/ X-VCS-Committer: vikraman X-VCS-Committer-Name: Vikraman Choudhury X-VCS-Revision: 3c459b75e6d5c193fda884068fb749c1b99c6e32 Date: Mon, 25 Jul 2011 12:35:47 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 4654b270dd1230330b6cc2556ff537be commit: 3c459b75e6d5c193fda884068fb749c1b99c6e32 Author: Vikraman Choudhury gmail com> AuthorDate: Mon Jul 25 12:34:52 2011 +0000 Commit: Vikraman Choudhury gmail com> CommitDate: Mon Jul 25 12:34:52 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoostats.g= it;a=3Dcommit;h=3D3c459b75 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 @@ =20 +import helpers from config import render, db =20 class Arch(object): @@ -7,4 +8,7 @@ class Arch(object): arch_data =3D dict() for t in arch_count: arch_data[t['ARCH']] =3D {'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 @@ =20 +import helpers from config import render, db =20 class Feature(object): @@ -7,4 +8,7 @@ class Feature(object): feature_data =3D dict() for t in feature_count: feature_data[t['FEATURE']] =3D {'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 @@ =20 +import web +import json import uuid import re from portage.versions import catpkgsplit @@ -106,3 +108,13 @@ def get_rkey(db, repo): else: rkey =3D db.insert('REPOSITORIES', REPO=3Drepo) return rkey + +def is_json_request(): + return web.ctx.environ['HTTP_ACCEPT'].find('json') !=3D -1 + +def serialize(object, human=3DTrue): + if human: + indent =3D 2 + else: + indent =3D None + return json.JSONEncoder(indent=3Dindent).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 =3D p['CAT'] + '/' + p['PKG'] + '-' + p['VER'] host_data['PACKAGES'][cpv] =3D dict() =20 - return render.host(host_data) + if helpers.is_json_request(): + return helpers.serialize(host_data) + else: + return render.host(host_data) =20 def POST(self, str_uuid): post_data =3D 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 @@ =20 +import helpers from config import render, db =20 class Keyword(object): @@ -7,4 +8,7 @@ class Keyword(object): keyword_data =3D dict() for t in keyword_count: keyword_data[t['KEYWORD']] =3D {'HOSTS':t['HOSTS'], 'PACKAGE= S':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 @@ =20 +import helpers from config import render, db =20 class Lang(object): @@ -7,4 +8,7 @@ class Lang(object): lang_data =3D dict() for t in lang_count: lang_data[t['LANG']] =3D {'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 @@ =20 +import helpers from config import render, db =20 class Mirror(object): @@ -7,4 +8,7 @@ class Mirror(object): mirror_data =3D dict() for t in mirror_count: mirror_data[t['MIRROR']] =3D {'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) =20 def __GET_C(self, top, cat): p_query =3D 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) =20 def __GET_CP(self, top, cat, pkg): p_query =3D 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) =20 def __GET_CPV(self, cat, pkg, ver): p_query =3D db.query('SELECT COUNT(DISTINCT UUID) AS HOST_COUNT\ @@ -79,7 +88,10 @@ class Package(object): p_data =3D { '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) =20 def __top(self, count, *args): t_list =3D 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 @@ =20 +import helpers from config import render, db =20 class Profile(object): @@ -7,4 +8,7 @@ class Profile(object): profile_data =3D dict() for t in profile_count: profile_data[t['PROFILE']] =3D {'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 @@ =20 +import helpers from config import render, db =20 class Repo(object): @@ -7,4 +8,7 @@ class Repo(object): repo_data =3D dict() for t in repo_count: repo_data[t['REPO']] =3D {'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 @@ =20 import web import string +import helpers from config import render, db =20 what =3D ['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) =20 def _build_query(self, where, having): sep =3D ' '