Exemplo n.º 1
0
Arquivo: views.py Projeto: fk-lx/mygpo
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
            ))
Exemplo n.º 2
0
Arquivo: views.py Projeto: Mic92/mygpo
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)
    )
Exemplo n.º 3
0
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,
    )