コード例 #1
0
    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
            })
コード例 #2
0
    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
            })
コード例 #3
0
ファイル: views.py プロジェクト: haydenwalker980/Winfinitube
    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
        })
コード例 #4
0
ファイル: views.py プロジェクト: haydenwalker980/Winfinitube
 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)
コード例 #5
0
 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
         })