def get(self, request, channel_id): channel = queries.get_channel_by_id(channel_id) filter = request.GET.get('filter', '2') if not channel: return render(request, 'web/channel_feed.html', {}) total_views = queries.get_total_views(channel) subscribed = False if request.user.is_authenticated: subscribed = queries.is_subscribed( channel, queries.get_channel(request.user)) if filter == '1': all_qs = [ video.target_actions.public() for video in channel.videos.all() ] if all_qs: stream = all_qs[0].union(*all_qs) stream = stream.order_by('-timestamp') else: stream = [] else: from actstream.models import actor_stream stream = actor_stream(channel) stream = stream.exclude(verb='commented') return render( request, 'web/channel_feed.html', { 'channel': channel, 'is_subscribed': subscribed, 'total_views': total_views, 'selected_tab': 'feed', 'filter': filter, 'stream': stream })
def get(self, request, channel_id): channel = queries.get_channel_by_id(channel_id) if not channel: return render(request, 'web/channel_videos.html', {}) total_views = queries.get_total_views(channel) subscribed = False if request.user.is_authenticated: subscribed = queries.is_subscribed( channel, queries.get_channel(request.user)) videos = queries.get_videos_from_channel(channel) ordering = request.GET.get('sort', 'da') if ordering == 'da': videos = videos.order_by('-created') elif ordering == 'dd': videos = videos.order_by('created') elif ordering == 'p': videos = videos.order_by('-views') return render( request, 'web/channel_videos.html', { 'channel': channel, 'is_subscribed': subscribed, 'total_views': total_views, 'videos': videos, 'selected_tab': 'videos', 'ordering': ordering })
def post(self, request): if not request.user.is_authenticated: return JsonResponse({ 'success': False, 'error': 'Authentication required.' }) from_channel = get_channel(request.user) channel_id = request.POST.get('channel_id', None) if not channel_id: return JsonResponse({ 'success': False, 'error': 'Missing channel_id.' }) to_channel = get_channel_by_id(channel_id) if not to_channel: return JsonResponse({ 'success': False, 'error': 'Channel not found.' }) if from_channel.id == to_channel.id: return JsonResponse({ 'success': False, 'error': 'Can not subscribe to self.' }) subscriber_count = toggle_subscription(to_channel, from_channel) return JsonResponse({ 'success': True, 'subscriber_count': subscriber_count })
def list(self, request, channel_id): channel = get_channel_by_id(channel_id) if not channel: return Response({'message': 'Channel not found.'}, status=status.HTTP_400_BAD_REQUEST) queryset = Video.objects.filter(channel__exact=channel) serializer = VideoSerializer(queryset, many=True) return Response(serializer.data)
def get(self, request, channel_id): channel = queries.get_channel_by_id(channel_id) if not channel: return render(request, 'web/channel_featured.html', {}) total_views = queries.get_total_views(channel) subscribed = False if request.user.is_authenticated: subscribed = queries.is_subscribed( channel, queries.get_channel(request.user)) qs = queries.get_videos_from_channel(channel) if qs: featured_video = qs.order_by('-views')[0] else: featured_video = None return render( request, 'web/channel_featured.html', { 'channel': channel, 'is_subscribed': subscribed, 'total_views': total_views, 'selected_tab': 'featured', 'featured_video': featured_video })