Beispiel #1
0
    def get(self, request, course_id, *args, **kwargs):
        # 根据course_id获取课程详情,点击数加1
        course = Courses.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        # 首先要查该用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user, course=course)
        # 如果没有关联,就先把该用户和该课程关联
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            # 记得学生数得加1
            course.students += 1
            course.save()

        # 显示右下的'学习过该课程的同学还学过哪些课程'
        # 找到学过该课程的所有'用户课程对象'
        user_courses = UserCourse.objects.filter(course=course)
        # 找到这些学生的id
        user_ids = [user_course.user.id for user_course in user_courses]
        # 找这些学生学过的所有课程的'用户课程对象',并根据课程的点击数进行倒序排列,并设置最多取5个
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by("-course__click_nums")[:5]
        # 最后,取所有的学习过该课程的同学还学过哪些课程,并排除掉当前课程
        related_courses = [user_course.course for user_course in all_courses if user_course.course.id != course.id]

        # 课程资源展示
        course_resources = CourseResource.objects.filter(course=course)

        return render(request, 'course-video.html', {
            "course": course,
            "course_resources": course_resources,
            "related_courses": related_courses,
        })
Beispiel #2
0
    def get(self, request, course_id, video_id, *args, **kwargs):
        #获取章节信息
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        video = Video.objects.get(id=int(video_id))

        #查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        #查询用户是否学习过该课程,没有则新建记录保存
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            course.students += 1
            course.save()

        #获取课程资源
        course_resource = CourseResource.objects.filter(course=course)
        # 获取课程作业
        course_homework = CourseHomework.objects.filter(course=course)

        return render(
            request, "course-play.html", {
                "course": course,
                "course_resource": course_resource,
                "video": video,
                "course_homework": course_homework,
            })
Beispiel #3
0
    def get(self, request, course_id, *args, **kwargs):
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        comments = CourseComments.objects.filter(course=course)

        # 查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user, course=course)
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.students += 1
            course.save()

        # 学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by("-course__click_nums")[:5]
        # related_courses = [user_course.course for user_course in all_courses if user_course.course.id != course.id]
        related_courses = []
        for item in all_courses:
            if item.course.id != course.id:
                related_courses.append(item.course)

       # course_resources = source.objects.filter(course=course)

        return render(request, "course-comment.html", {
            "course": course,
            #"course_resources": course_resources,
            "related_courses": related_courses,
            "comments":comments
        })
Beispiel #4
0
    def get(self, request, course_id):
        course = Course.objects.get(pk=course_id)
        course_resources = CourseResource.objects.filter(course=course)

        # 判断是否有登录LoginRequiredMixin
        # 用户点“开始学习”就保存信息
        user_course = UserCourse.objects.filter(user=request.user,
                                                course=course)
        if not user_course:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.learn_nums += 1
            course.save()

        # 查询学过该课程的 其他学生 ,从而查询该学生学习的其他课程
        other_user_courses = UserCourse.objects.exclude(
            user=request.user).exclude(course=course)
        print(other_user_courses)
        content = {
            'course': course,
            'course_resources': course_resources,
            'other_user_courses': other_user_courses,
        }
        return render(request, 'course-video.html', context=content)
Beispiel #5
0
    def get(self, request, course_id, *args, **kwargs):
        """
        获取课程章节信息
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        # 查询用户是否关联了课程
        user_courses = UserCourse.objects.filter(user=request.user, course=course)
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()
            course.students += 1
            user_course.save()

        # 资料下载
        course_resources = CourseResource.objects.filter(course=course)
        # 学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by("-course__click_nums")[:5]
        related_courses = []
        for item in all_courses:
            if item.course.id != course.id:
                related_courses.append(item.course)

        return render(request, "course-video.html", {
            "course": course,
            "course_resources": course_resources,
            "related_courses": related_courses,
        })
Beispiel #6
0
    def get(self, request, course_id):
        current_page = 'course_info'
        course = Course.objects.get(id=int(course_id))
        course.students += 1
        course.save()
        # 查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_user_courses = UserCourse.objects.filter(user_id__in=user_ids)
        # 取出所有课程 id
        course_ids = [
            user_course.course.id for user_course in all_user_courses
        ]
        # 获取学过该课程用户学过的所有其他课程
        relate_courses = Course.objects.filter(
            id__in=course_ids).order_by('-click_nums')[:5]

        all_resources = CourseResource.objects.filter(course=course)
        return render(
            request, 'course-video.html', {
                'course': course,
                'all_resources': all_resources,
                'current_page': current_page,
                'relate_courses': relate_courses,
            })
Beispiel #7
0
    def get(self, request, course_id, *args, **kwargs):
        '''
        获取课程章节信息
        '''
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        user_courses = UserCourse.objects.filter(user=request.user, course=course)
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            course.students += 1
            course.save()
        course_resource = CourseResource.objects.filter(course=course)

        # 学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by('-course__click_nums')
        related_courses = [user_course.course for user_course in all_courses if user_course.course.id != course.id]

        return render(request, 'course-video.html', {
            'course': course,
            'course_resource': course_resource,
            'related_courses': related_courses
        })
Beispiel #8
0
    def get(self, request, course_id):
        course = Course.objects.get(id=int(course_id))

        if request.user.is_authenticated():
            user_course = UserCourse.objects.filter(user=request.user,
                                                    course=course)
            if not user_course:
                user_course = UserCourse(user=request.user, course=course)
                user_course.save()

        course.click_num += 1
        course.save()
        return render(request, 'course-detail.html', {'course': course})
Beispiel #9
0
    def get(self, request, course_id, *args, **kwarg):
        course = Course.objects.get(id=course_id)
        course.click_nums += 1
        course.save()

        comments = CourseComments.objects.filter(course=course)
        # lessons = course.lesson_set.all()
        # for lesson in lessons:
        #     for video in lesson.video_set.all():
        #         time = video.learn_time

        users_course = UserCourse.objects.filter(user=request.user,
                                                 course=course)

        if not users_course:
            users_course = UserCourse(user=request.user, course=course)
            users_course.save()

            course.students += 1
            course.save()

        # すべてコースに参加したユーザーを取得
        user_courses = UserCourse.objects.filter(course=course)
        # 取得したユーザーのidを取得
        user_ids = [user_course.user.id for user_course in user_courses]
        # idからコースを取得
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]
        # 関連するコースを取得
        # related_courses = [user_course.course
        #                    for user_course in all_courses
        #                    if users_courses.id != course.id
        #                    ]

        related_courses = []
        for item in all_courses:
            if item.course.id != course.id:
                related_courses.append(item.course)

        course.resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-comment.html", {
                "course": course,
                "course_resources": course.resources,
                "related_courses": related_courses,
                "comments": comments,
            })
Beispiel #10
0
    def get(self, request, course_id, *args, **kwargs):
        """
        获取课程章节信息
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        #1. 用户和课程之间的关联
        #2. 对view进行login登录的验证
        #3. 其他课程

        course_org = course.course_org  #查询该课程机构

        #查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.students += 1
            course.save()

            course_org.students += 1  #学习该课程人数+1
            course_org.save()

        #学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:4]
        # related_courses = [user_course.course for user_course in all_courses if user_course.course.id != course.id]
        related_courses = []
        for item in all_courses:
            if item.course.id != course.id:
                related_courses.append(item.course)

        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-video.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses
            })
Beispiel #11
0
    def get(self, request, course_id, *args, **kwargs):
        """
        课程评论
        """
        course = Course.objects.get(id=int(course_id))
        # 点击一次,点击数加1
        course.click_nums += 1
        course.save()

        # 获取课程评论
        comments = CourseComments.objects.filter(course=course)

        # 1.用户和课程之间的关联
        # 查询用户是否已经关联该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.students += 1
            course.save()

        # 学习过该课程的同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id
                    for user_course in user_courses]  # 拿到了学过该课程的所有学生id
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by(
            "-course__click_nums")[:5]  # 取出所有id对应同学的所有课程
        # related_courses = [user_course.course for user_course in all_courses if user_course.course.id != course.id]

        related_courses = []
        for item in all_courses:
            if item.course.id != course.id:
                related_courses.append(item.course)

        # 该课程资源
        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-comment.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses,
                "comments": comments
            })
Beispiel #12
0
    def get(self, request, course_id, video_id, *args, **kwargs):
        """
        获取课程章节信息
        :param request:
        :param course_id:
        :param args:
        :param kwargs:
        :return:
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        video = Video.objects.get(id=int(video_id))

        #查询用户是否已关联该课程
        user_course = UserCourse.objects.filter(user=request.user,
                                                course=course)
        if not user_course:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.students += 1
            course.save()

        #学习过该课程所有同学
        user_course = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_course]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by('-course__click_nums')[:5]
        related_courses = []
        for item in all_courses:
            if item.course_id != course_id:
                related_courses.append(item.course)
        #课程资料下载
        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, 'course-play.html', {
                'course': course,
                'course_resources': course_resources,
                'related_courses': related_courses,
                'video': video,
            })
Beispiel #13
0
    def get(self, request, course_id, *args, **kwargs):
        '''
        获取课程章节信息
        '''
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        # 用户课程之间的关联
        # 对view进行login登陆的验证
        # 其他课程

        # 查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()

            course.students += 1
            course.save()

        # 学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:6]
        related_courses = [
            user_course.course for user_course in all_courses
            if user_course.course.id != course.id
        ]
        # related_courses = []
        # for item in all_courses:
        #     related_courses.append(item.course)

        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-video.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses,
            })
Beispiel #14
0
    def get(self, request, course_id, video_id, *args, **kwargs):
        """获取课程章节详情"""
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        video = Video.objects.get(id=int(video_id))

        #学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]
        related_courses = [
            user_course.course for user_course in all_courses
            if user_course.course.id != course.id
        ]

        #1. 用户和课程之间的联系
        #2. 对view进行login登陆的验证
        #3. 其他课程

        #查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(
            user=request.user, course=course)  #用户能进入说明已经处于登陆状态,不用再检查
        #关联用户和课程
        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()
            course.students += 1
            course.save()

        #课程资料的下载
        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-play.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses,
                "video": video,
            })
Beispiel #15
0
    def get(self, request, course_id, video_id, *args, **kwargs):
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        # 1.用户和课程之间的关联
        # 2.对view进行登录的验证
        # 3.其他课程

        # 查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)

        if not user_courses:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.students += 1
            course.save()

        video = Video.objects.get(id=int(video_id))

        # 学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]

        relate_courses = [
            user_course.course for user_course in all_courses
            if user_course.course_id != course.id
        ]

        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-play.html", {
                "course": course,
                "course_resources": course_resources,
                "relate_courses": relate_courses,
                "video": video
            })
Beispiel #16
0
    def get(self, request, course_id, video_id,*args, **kwargs):
        """
        获取课程章节信息
        """
        course = Course.objects.get(id=int(course_id))
        course.click_num += 1
        course.save()

        video = Video.objects.get(id=int(video_id))

        # 将课程与用户绑定
        user_course = UserCourse.objects.filter(user=request.user, course=course)
        if not user_course:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()
            course.students += 1
            course.save()
        lesson = Lesson.objects.filter(course=course)

        # 获取评论内容
        comments = CourseComments.objects.filter(course=course)

        # 获取学习该课程的用户还学过的课程
        # 获取所有学习该课程的对象
        user_courses = UserCourse.objects.filter(course=course)
        # 从对象中获取学习过该课程的所有同学id
        user_ids = [user_course.user.id for user_course in user_courses]
        # 根据ID获取所有学生学习的所有课程的对象
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by("-course__click_num")
        # 获取所有的对象的课程,存储到一个列表中
        related_courses = set()
        for user_course in all_courses:
            if user_course.course.id != course.id:
                related_courses.add(user_course.course)

        return render(request, "course-play.html", {
            "course": course,
            "related_courses": related_courses,
            "comments": comments,
            "all_lesson":lesson,
            "video":video,
        })
Beispiel #17
0
    def get(self, request, course_id, *args, **kwargs):
        # 获取用户点击的是哪个课程
        course = Course.objects.get(id=course_id)

        # 如果用户点击学习了该课程,那么就添加到 用户课程 的表中
        # 判断用户之前是否学习过该课程。
        if not UserCourse.objects.filter(user=request.user, course=course):  # 单例模式
            uscour = UserCourse()  # 实例化表
            uscour.user = request.user  # 增加用户课程表
            uscour.course = course
            uscour.save()

        # 学过该课的同学该学过模块
        all_user = UserCourse.objects.filter(course=course)  # 查询学过该课的用户都有谁
        user_ids = [users.user_id for users in all_user]  # 循环遍历这些用户,添加到数组中
        # print(user_ids)
        # 筛选出表中user_id在数组中的queryset对象
        course_all = UserCourse.objects.filter(user_id__in=user_ids).order_by('-course__click_nums')
        course_list = []  # 用于存储课程列表
        for icourse in course_all:  # 遍历queryset对象
            if icourse.course_id != int(course_id) and icourse.course not in course_list:
                # 如果数组中遍历到当前课程,就pass掉,   如果该课程对象没有在列表中,就加入该列表
                course_list.append(icourse.course)
        course_list = course_list[:5]
        # print(course_id)
        # print(course.id)
        # print(course_list)

        # 查询该课程的资源
        courseresource = CourseResource.objects.filter(course=course)

        #加载数据库中评论
        comments = CourseComments.objects.filter(course=course)      #查询有关该课的评论


        return render(request, 'course-comment.html', {
            'course': course,  # 用户学习的课程
            'courseresource': courseresource,  # 该课程的资源
            'course_list': course_list,  # 学过该课程的还学过的课程
            'comments':comments       #该课的用户评论
        })
Beispiel #18
0
    def get(self, request, course_id, *args, **kwargs):
        """ 获取课程章节信息"""
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()
        #1. 用户和课程之间的关联
        #2. 对view进行login登录的验证 --- 使用LoginRequiredMixin完成
        #3. 其他课程

        # 查询用户是否已经关联了该课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            # 若用户未关联该课程,则进行关联,同时增加该课程的学生数
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            course.students += 1
            course.save()

        # 学习过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]
        # related_courses = [user_course.course for user_course in all_courses]
        related_courses = []
        for item in all_courses:
            if item.course.id != course.id:
                related_courses.append(item.course)

        # 课程资料下载
        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-video.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses,
            })
    def get(self, request, course_id, *args, **kwargs):
        """
        获取课程章节信息
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        #1.课程和用户关联
        #2.必须登录才能进入view
        #3.其他课程

        #查询用户是否已经关联了该课程
        user_course = UserCourse.objects.filter(user=request.user,
                                                course=course)
        if not user_course:
            user_course = UserCourse(user=request.user, course=course)
            user_course.save()

            course.students += 1
            course.save()

        #学过该课程的所有同学
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(user_id__in=user_ids).exclude(
            course__id=course.id).order_by("-course__click_nums")[:5]
        related_courses = [user_course.course for user_course in all_courses]

        #课程资源
        course_resources = CourseResource.objects.filter(course=course)

        return render(
            request, "course-video.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses
            })
def course_video(request,course_id):
    if course_id:
        course = CourseInfo.objects.filter(id=course_id)[0]
        # 判断用户之前是否已经学习过了这门课程,没有学过则添加记录,学过则不做处理
        userCourseList = UserCourse.objects.filter(study_man=request.user,study_course=course)
        if not userCourseList:
            a = UserCourse()
            a.study_man = request.user
            a.study_course = course
            a.save()
            #课程的学习人数加1
            course.study_num += 1
            course.save()
            #机构的学习人数加1
            #获取当前客户学习过的所有课程
            userCourseList = UserCourse.objects.filter(study_man=request.user)
            course_list =[userCourse.study_course for userCourse in userCourseList]
            #根据拿到的课程,找到每一个课程对应的机构
            org_list = list(set([orgs.orginfo for orgs in course_list]))
            if course.orginfo in org_list:
                course.orginfo.study_num += 1
                course.orginfo.save()

        #学过该课的同学还学过
        #1 获取学习过当前课程的列表信息
        userCourseList = UserCourse.objects.filter(study_course=course)
        #2 获取学习过当前课程的用户列表
        userList = [userCourse.study_man for userCourse in userCourseList]
        #3 获取这些用户学习得课程列表信息,并过滤掉当前课程
        userCourseList = UserCourse.objects.filter(study_man__in=userList).exclude(study_course = course)
        #4 获取到这些用户学习得课程
        courseList = list(set([userCourse.study_course for userCourse in userCourseList]))
        return render(request,'courses/course-video.html',{
            'course':course,
            "courseList":courseList
        })
Beispiel #21
0
    def get(self, request, course_id, *args, **kwargs):
        """
        获取课程章节详情
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()

        comments = CourseComments.objects.filter(
            course=course).order_by("-add_time")
        # 查询客户是否已经关联课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            course.students += 1
            course.save()
        # 学习过该课程的所有学生
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]
        related_courses = [
            user_course.course for user_course in all_courses
            if user_course.course.id != course.id
        ]

        is_VIP = request.user.is_VIP
        is_nianVIP = request.user.is_nian_VIP

        # 对课程机构数据进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        # Provide Paginator with the request object for complete querystring generation

        p = Paginator(comments, per_page=9, request=request)

        detailcomment = p.page(page)

        if is_VIP is True:
            # 课程资源下载
            course_resources = CourseResource.objects.filter(course=course)
            user_is_vip = "true"
            user_is_nianVIP = "flase"
            return render(
                request, "course-comment.html", {
                    "course": course,
                    "course_resources": course_resources,
                    "related_courses": related_courses,
                    "user_is_vip": user_is_vip,
                    "comments": comments,
                    "detailcomment": detailcomment,
                    "user_is_nianVIP": user_is_nianVIP
                })

        else:
            if is_nianVIP is True:
                course_resources = CourseResource.objects.filter(course=course)
                user_is_nianVIP = "true"
                user_is_vip = "false"
                return render(
                    request, "course-comment.html", {
                        "course": course,
                        "course_resources": course_resources,
                        "related_courses": related_courses,
                        "user_is_vip": user_is_vip,
                        "user_is_nianVIP": user_is_nianVIP,
                        "comments": comments,
                        "detailcomment": detailcomment,
                    })

            user_is_vip = "false"
            user_is_nianVIP = "flase"
            # 课程资源下载
            return render(
                request, "course-comment.html", {
                    "course": course,
                    "related_courses": related_courses,
                    "user_is_vip": user_is_vip,
                    "comments": comments,
                    "user_is_nianVIP": user_is_nianVIP,
                    "detailcomment": detailcomment,
                })
Beispiel #22
0
    def get(self, request, course_id, *args, **kwargs):
        """
        获取课程章节详情
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()
        # a=datetime.date.today()
        # request.user.birthday = a
        # request.user.save()
        # 查询客户是否已经关联课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            course.students += 1
            course.save()
        # 学习过该课程的所有学生
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]
        related_courses = [
            user_course.course for user_course in all_courses
            if user_course.course.id != course.id
        ]
        comments = CourseComments.objects.filter(course=course)
        comments_count = comments.count()
        is_VIP = request.user.is_VIP
        is_nianVIP = request.user.is_nian_VIP

        if is_VIP is True:
            a = datetime.date.today()
            if request.user.birthday != a:
                request.user.birthday = a
                request.user.request_numb = 1
                request.user.save()
            else:
                if request.user.request_numb > 20:
                    teacher = Teacher.objects.get(id=int(4))
                    msg = "您的账户有风险请把您的账号名发给官方邮箱:" + teacher.work_company + " 管理员会及时处理的哟!    温馨提示:请不要随意把账号分享给别人,异地登录可能会触发封号系统"
                    return render(request, "submit-vip.html", {"msg": msg})

            course_resources = CourseResource.objects.filter(course=course)
            user_is_vip = "true"
            user_is_nianVIP = "flase"
            request.user.request_numb += 1
            request.user.save()
            return render(
                request, "course-video.html", {
                    "course": course,
                    "course_resources": course_resources,
                    "related_courses": related_courses,
                    "user_is_vip": user_is_vip,
                    "comments_count": comments_count,
                    "user_is_nianVIP": user_is_nianVIP
                })

        else:
            if is_nianVIP is True:

                a = datetime.date.today()
                if request.user.birthday != a:
                    request.user.birthday = a
                    request.user.request_numb = 1
                    request.user.save()
                else:
                    if request.user.request_numb > 20:
                        teacher = Teacher.objects.get(id=int(4))
                        msg = "您的账户有风险请把您的账号名发给官方邮箱:" + teacher.work_company + " 管理员会及时处理的哟!    温馨提示:请不要随意把账号分享给别人,异地登录可能会触发封号系统"
                        return render(request, "submit-vip.html", {"msg": msg})

                course_resources = CourseResource.objects.filter(course=course)
                user_is_nianVIP = "true"
                user_is_vip = "false"
                return render(
                    request, "course-video.html", {
                        "course": course,
                        "course_resources": course_resources,
                        "related_courses": related_courses,
                        "user_is_vip": user_is_vip,
                        "comments_count": comments_count,
                        "user_is_nianVIP": user_is_nianVIP
                    })

            user_is_vip = "false"
            user_is_nianVIP = "flase"
            # 课程资源下载
            return render(
                request, "course-video.html", {
                    "course": course,
                    "related_courses": related_courses,
                    "user_is_vip": user_is_vip,
                    "comments_count": comments_count,
                    "user_is_nianVIP": user_is_nianVIP
                })
Beispiel #23
0
    def get(self, request, course_id, video_id, *args, **kwargs):
        """
        获取课程章节详情
        """
        course = Course.objects.get(id=int(course_id))
        course.click_nums += 1
        course.save()
        # 查询客户是否已经关联课程
        user_courses = UserCourse.objects.filter(user=request.user,
                                                 course=course)
        if not user_courses:
            user_courses = UserCourse(user=request.user, course=course)
            user_courses.save()
            course.students += 1
            course.save()

        video = Video.objects.get(id=int(video_id))
        # 学习过该课程的所有学生
        user_courses = UserCourse.objects.filter(course=course)
        user_ids = [user_course.user.id for user_course in user_courses]
        all_courses = UserCourse.objects.filter(
            user_id__in=user_ids).order_by("-course__click_nums")[:5]
        related_courses = [
            user_course.course for user_course in all_courses
            if user_course.course.id != course.id
        ]

        # 课程资源下载
        course_resources = CourseResource.objects.filter(course=course)
        if video.url == "none":
            return render(
                request, "course-play-benfeng.html", {
                    "course": course,
                    "course_resources": course_resources,
                    "related_courses": related_courses,
                })

        cookies = Teacher.objects.get(id=int(7))

        # 获取视频资源
        # agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        # header = {
        #     "Host": "weibo.com",
        #     # "Referer": "https://weibo.com/tv/v/Ig92m5Vqy?fid=1034:4438479548141050",
        #     "Referer": video.url,
        #     "User-Agent": agent,
        #     "Cookie": cookies.points
        # }
        # video_url = video.url
        #
        # response = requests.get(video_url, headers=header)
        # r = response.text
        #
        # video_name = video.video_name
        # s = video_name + "(.+?)KID"
        # d = re.findall(s, r)
        # c = d[0]
        # ssig = re.findall(r"ssig%3D(.+?)%26", c)[0]
        # expires = re.findall(r"Expires%3D(.+?)%26", c)[0]
        # new = ssig.replace("%25", "%")
        #
        # # url = "https://f.video.weibocdn.com/001kCDEJlx07yzHzQKHm01041201iZAQ0E010.mp4?label=mp4_720p&template=960x720.25.0&trans_finger=721584770189073627c6ee9d880087b3&Expires=" + expires + "&ssig=" + new + "&KID=unistore,video"
        # url = "https://f.video.weibocdn.com/" + video_name + "?label=mp4_720p&template=960x720.25.0&trans_finger=721584770189073627c6ee9d880087b3&Expires=" + expires + "&ssig=" + new + "&KID=unistore,video"
        # # url = "https://f.video.weibocdn.com/002rJVj8gx07B6rI753O01041204EKCy0E020.mp4?label=mp4_720p&template=960x720.25.0&trans_finger=721584770189073627c6ee9d880087b3&Expires=1584091647&ssig=I%2BUuMLJP8%2B&KID=unistore,video"

        # 获取视频资源
        agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        header = {
            "Host":
            "www.hzzlgy.cn",
            "Referer":
            video.video_name,
            "User-Agent":
            agent,
            "Cookie":
            "sessionid=xbt2fra3u43y42dnxwj8tlc185hhbpi5; csrftoken=aOEJdHNmq7l4AMcr0lzPS1QqYSQv7ridgDfDENyCgd63iu26PHJ3plRkp0Q8bcwb"
        }
        response = requests.get(video.url, headers=header)

        r = response.text

        d = re.findall("https://f.video.weibocdn.com/(.+?)KID", r)

        e = d[0]

        c = e.replace("&", "&")
        url = "https://f.video.weibocdn.com/" + c + "KID=unistore,video"

        return render(
            request, "course-play.html", {
                "course": course,
                "course_resources": course_resources,
                "related_courses": related_courses,
                "video": video,
                "url": url
            })