from django.http import HttpResponse from django.core import serializers from models import * import json JSONSerializer = serializers.get_serializer("json") basic_html = """ PicCast

PicCast

""" def basic_frontpage(request): return HttpResponse(basic_html); def newest_feeds(request): feeds = PicFeed.objects.filter(is_active=True).order_by('-created')[:20] return HttpResponse(json.dumps({'list': [f.serializable() for f in feeds]}, indent=2), mimetype="application/json") def sets_by_feed(request, req_feed): # TODO: validate req_feed sets = PicSet.objects.filter(feed=req_feed, is_valid=True).order_by('-created') return HttpResponse(json.dumps({'list': [s.serializable() for s in sets]}, indent=2), mimetype="application/json") def sets_by_feedslug(request, req_feedslug): # TODO: validate req_feedslug feed = PicFeed.objects.filter(shortname=req_feedslug) sets = PicSet.objects.filter(feed=feed, is_valid=True).order_by('-created') return HttpResponse(json.dumps({'list': [s.serializable() for s in sets]}, indent=2), mimetype="application/json") def pics_by_set(request, req_picset): # TODO: validate 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")