def search(request, template='search.html', args={}): if 'q' in request.GET: q = request.GET.get('q', '').encode('utf-8') try: page = int(request.GET.get('page', 1)) except ValueError: page = 1 results, total = search_podcasts(q=q, skip=RESULTS_PER_PAGE*(page-1)) num_pages = int(ceil(total / RESULTS_PER_PAGE)) page_list = get_page_list(1, num_pages, page, 15) else: results = [] q = None page_list = [] max_subscribers = max([p.subscriber_count() for p in results] + [0]) current_site = RequestSite(request) return render(request, template, dict( q= q, results= results, page_list= page_list, max_subscribers= max_subscribers, domain= current_site.domain, **args ))
def search(request, template="search.html", args={}): if "q" in request.GET: q = request.GET.get("q", "").encode("utf-8") try: page = int(request.GET.get("page", 1)) except ValueError: page = 1 results, total = search_podcasts(q=q, skip=RESULTS_PER_PAGE * (page - 1)) num_pages = total / RESULTS_PER_PAGE page_list = utils.get_page_list(1, num_pages, page, 15) else: results = [] q = None page_list = [] max_subscribers = max([p.subscriber_count() for p in results] + [0]) return render( request, template, dict(q=q, results=results, page_list=page_list, max_subscribers=max_subscribers, **args) )
def search(request, format): NUM_RESULTS = 20 query = request.GET.get('q', '') try: scale = int(request.GET.get('scale_logo', 64)) except (TypeError, ValueError): return HttpResponseBadRequest('scale_logo has to be a numeric value') if scale not in range(1, 257): return HttpResponseBadRequest('scale_logo has to be a number from 1 to 256') if not query: return HttpResponseBadRequest('/search.opml|txt|json?q={query}') results = search_podcasts(query)[:NUM_RESULTS] title = _('gpodder.net - Search') domain = RequestSite(request).domain p_data = lambda p: podcast_data(p, domain, scale) return format_podcast_list( results, format, title, json_map=p_data, jsonp_padding=request.GET.get('jsonp', ''), xml_template='podcasts.xml', request=request, )