Beispiel #1
0
def toplist(request, count, format):
    count = parse_range(count, 1, 100, 100)

    entries = Podcast.objects.all().toplist()[:count]
    domain = RequestSite(request).domain

    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")

    def json_map(t):
        podcast = t
        p = podcast_data(podcast, domain, scale)
        return p

    title = _("gpodder.net - Top %(count)d") % {"count": len(entries)}
    return format_podcast_list(
        entries,
        format,
        title,
        get_podcast=lambda t: t,
        json_map=json_map,
        jsonp_padding=request.GET.get("jsonp", ""),
        xml_template="podcasts.xml",
        request=request,
    )
Beispiel #2
0
def toplist(request, count, format):
    count = parse_range(count, 1, 100, 100)

    entries = Podcast.objects.all().toplist()[:count]
    domain = RequestSite(request).domain

    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')


    def get_podcast(t):
        return t

    def json_map(t):
        podcast = t
        p = podcast_data(podcast, domain, scale)
        return p

    title = _('gpodder.net - Top %(count)d') % {'count': len(entries)}
    return format_podcast_list(entries,
                               format,
                               title,
                               get_podcast=get_podcast,
                               json_map=json_map,
                               jsonp_padding=request.GET.get('jsonp', ''),
                               xml_template='podcasts.xml',
                               request=request,
                            )
Beispiel #3
0
def toplist(request, count, format):
    count = parse_range(count, 1, 100, 100)

    entries = Podcast.objects.all().toplist()[:count]
    domain = RequestSite(request).domain

    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')


    def get_podcast(t):
        return t

    def json_map(t):
        podcast = t
        p = podcast_data(podcast, domain, scale)
        return p

    title = _('gpodder.net - Top %(count)d') % {'count': len(entries)}
    return format_podcast_list(entries,
                               format,
                               title,
                               get_podcast=get_podcast,
                               json_map=json_map,
                               jsonp_padding=request.GET.get('jsonp', ''),
                               xml_template='podcasts.xml',
                               request=request,
                            )
Beispiel #4
0
def history(request, count=15, uid=None):

    page = parse_range(request.GET.get('page', None), 0, sys.maxint, 0)

    if uid:
        try:
            device = request.user.get_device_by_uid(uid, only_active=False)
        except DeviceDoesNotExist as e:
            messages.error(request, str(e))

    else:
        device = None

    history_obj = History(request.user, device)

    start = page*count
    end = start+count
    entries = list(history_obj[start:end])
    HistoryEntry.fetch_data(request.user, entries)

    return render(request, 'history.html', {
        'history': entries,
        'device': device,
        'page': page,
    })
Beispiel #5
0
def suggestions(request, count, format):
    count = parse_range(count, 1, 100, 100)

    suggestion_obj = suggestions_for_user(request.user)
    suggestions = suggestion_obj.get_podcasts(count)
    title = _('gpodder.net - %(count)d Suggestions') % {'count': len(suggestions)}
    domain = RequestSite(request).domain
    p_data = lambda p: podcast_data(p, domain)
    return format_podcast_list(suggestions, format, title, json_map=p_data, jsonp_padding=request.GET.get('jsonp'))
Beispiel #6
0
def tag_podcasts(request, tag, count):
    count = parse_range(count, 1, 100, 100)
    category = category_for_tag(tag)
    if not category:
        return JsonResponse([])

    domain = RequestSite(request).domain
    query = category.get_podcasts(0, count)
    resp = map(lambda p: podcast_data(p, domain), query)
    return JsonResponse(resp)
Beispiel #7
0
def suggestions(request, count, format):
    count = parse_range(count, 1, 100, 100)

    user = request.user
    suggestions = Podcast.objects.filter(podcastsuggestion__suggested_to=user,
                                         podcastsuggestion__deleted=False)
    title = _('gpodder.net - %(count)d Suggestions') % {'count': len(suggestions)}
    domain = RequestSite(request).domain
    p_data = lambda p: podcast_data(p, domain)
    return format_podcast_list(suggestions, format, title, json_map=p_data, jsonp_padding=request.GET.get('jsonp'))
Beispiel #8
0
def suggestions(request, count, format):
    count = parse_range(count, 1, 100, 100)

    user = request.user
    suggestions = Podcast.objects.filter(podcastsuggestion__suggested_to=user,
                                         podcastsuggestion__deleted=False)
    title = _('gpodder.net - %(count)d Suggestions') % {'count': len(suggestions)}
    domain = RequestSite(request).domain
    p_data = lambda p: podcast_data(p, domain)
    return format_podcast_list(suggestions, format, title, json_map=p_data, jsonp_padding=request.GET.get('jsonp'))
Beispiel #9
0
def tag_podcasts(request, tag, count):
    count = parse_range(count, 1, 100, 100)
    try:
        category = Category.objects.get(tags__tag=tag)

    except Category.DoesNotExist:
        return JsonResponse([])

    domain = RequestSite(request).domain
    entries = category.entries.all().prefetch_related('podcast',
                                                      'podcast__slugs',
                                                      'podcast__urls')[:count]
    resp = [podcast_data(entry.podcast, domain) for entry in entries]
    return JsonResponse(resp)
Beispiel #10
0
def tag_podcasts(request, tag, count):
    count = parse_range(count, 1, 100, 100)
    try:
        category = Category.objects.get(tags__tag=tag)

    except Category.DoesNotExist:
        return JsonResponse([])

    domain = RequestSite(request).domain
    entries = category.entries.all().prefetch_related(
        'podcast', 'podcast__slugs', 'podcast__urls'
    )[:count]
    resp = [podcast_data(entry.podcast, domain) for entry in entries]
    return JsonResponse(resp)
Beispiel #11
0
def toplist(request, count, format):
    count = parse_range(count, 1, 100, 100)

    toplist = PodcastToplist()
    entries = toplist[:count]
    domain = RequestSite(request).domain

    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')


    def get_podcast(t):
        old_pos, podcast = t
        return podcast.get_podcast()

    def json_map(t):
        old_pos, podcast = t
        podcast.old_pos = old_pos

        p = podcast_data(podcast, domain, scale)
        p.update(dict(
            subscribers           = podcast.subscriber_count(),
            subscribers_last_week = podcast.prev_subscriber_count(),
            position_last_week    = podcast.old_pos,
        ))
        return p

    title = _('gpodder.net - Top %(count)d') % {'count': len(entries)}
    return format_podcast_list(entries,
                               format,
                               title,
                               get_podcast=get_podcast,
                               json_map=json_map,
                               jsonp_padding=request.GET.get('jsonp', ''),
                               xml_template='podcasts.xml',
                               request=request,
                            )
Beispiel #12
0
def top_tags(request, count):
    count = parse_range(count, 1, 100, 100)
    tag_cloud = Topics(count, num_cat=0)
    resp = map(category_data, tag_cloud.tagcloud)
    return JsonResponse(resp)
Beispiel #13
0
def top_tags(request, count):
    count = parse_range(count, 1, 100, 100)
    tag_cloud = Topics(count, num_cat=0)
    resp = list(map(category_data, tag_cloud.tagcloud))
    return JsonResponse(resp)
Beispiel #14
0
def top_tags(request, count):
    count = parse_range(count, 1, 100, 100)
    tag_cloud = TagCloud(count)
    resp = map(category_data, tag_cloud.entries)
    return JsonResponse(resp)