aboutsummaryrefslogtreecommitdiffstats
path: root/piccast/feeds/views.py
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2011-05-02 21:41:28 -0400
committerbnewbold <bnewbold@robocracy.org>2011-05-02 21:41:28 -0400
commita8cf5584204d77bd3f234fe579844ca84bb3558d (patch)
treed45ad752f2d514ff78fb10877565db3e94e5bde1 /piccast/feeds/views.py
parentcb7110e3694bba239f7754f275c071341bba1088 (diff)
downloadpiccast-a8cf5584204d77bd3f234fe579844ca84bb3558d.tar.gz
piccast-a8cf5584204d77bd3f234fe579844ca84bb3558d.zip
basic json keyword search
Diffstat (limited to 'piccast/feeds/views.py')
-rw-r--r--piccast/feeds/views.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/piccast/feeds/views.py b/piccast/feeds/views.py
index 1c26d12..d434818 100644
--- a/piccast/feeds/views.py
+++ b/piccast/feeds/views.py
@@ -35,3 +35,25 @@ def pics_by_set(request, req_picset):
pics = Pic.objects.filter(set=req_picset).order_by('id')
return HttpResponse(json.dumps({'list':[p.serializable() for p in pics]}, indent=2), mimetype="application/json")
+def json_search(request):
+ query_string = ''
+ found_feeds = []
+ found_picsets = []
+ found_pics = []
+ query_keywords = []
+ if ('q' in request.GET) and request.GET['q'].strip():
+ query_string = request.GET['q']
+ feed_query = get_query(query_string, ['title', 'description',])
+ picset_query = get_query(query_string, ['title', 'description','keywords'])
+ pic_query = get_query(query_string, ['title', 'description','keywords'])
+ found_feeds = PicFeed.objects.filter(feed_query).order_by('-created')[:6]
+ found_picsets = PicSet.objects.filter(picset_query).order_by('-created')[:6]
+ found_pics = PicSet.objects.filter(pic_query).order_by('-created')[:6]
+ query_keywords = normalize_query(query_string)
+
+ return HttpResponse(json.dumps({'matching_feeds':[feed.serializable() for feed in found_feeds],
+ 'matching_picsets':[picset.serializable() for picset in found_picsets],
+ 'matching_pics':[pic.serializable() for pic in found_pics],
+ 'query_keywords':query_keywords,
+ }, indent=2), mimetype="application/json")
+