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