示例#1
0
def get_create_comment_area_request(request):
    response = {}
    # 这里应该需要使用cookie判断权限
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    # print(user_id)
    try:
        user = User.objects.get(id=user_id)
    except User.DoesNotExist:
        response['code'] = 300
        response['data'] = {'msg': "user id does not exist"}
        return JsonResponse(response)
    # print(user.user_email, user.user_password, user.privilege)

    if user.privilege == False:
        response['code'] = 300
        response['data'] = {'msg': "not administrator"}
        return JsonResponse(response)
    response['code'] = 200
    serializer = CreateRequestSerializer(CreateRequest.objects.all(),
                                         many=True)
    response['data'] = {'msg': "success", "createRequestList": serializer.data}
    return JsonResponse(response)
示例#2
0
def get_comment_area(request):
    response = {}
    if request.method == 'GET':

        user_id = check_cookie(request)
        if user_id == -1:
            response['code'] = 300
            response['data'] = {'msg': "cookie out of date"}
            return JsonResponse(response)
        print(user_id)
        form = GetCommentAreaForm(request.GET)
        if form.is_valid():
            id = form.cleaned_data['commentAreaId']
            try:
                comment_area = CommentArea.objects.get(id=id)
            except CommentArea.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "comment area id does not exist"}
                return JsonResponse(response)
            serializer = CommentAreaSerializer(comment_area)
            # print(serializer.data)
            # print(model_to_dict(comment_area))
            star = comment_area.star_user_list.filter(id=user_id).exists()
            data = serializer.data
            data['path'] = comment_area.paper.path
            data['star'] = star
            response['code'] = 200
            response['data'] = {'msg': "success", 'comment_area': data}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            print(form.errors)
            return JsonResponse(response)
示例#3
0
def getChatGroupName(request):
    response = {}
    if request.method == 'GET':
        debugflag = True
        if debugflag == False:
            # 根据 cookie 判断能否查看动态
            if check_cookie(request) == -1:
                response['code'] = 300
                response['data'] = {'msg': 'cookie out of date'}
                return JsonResponse(response)

        groupId = request.GET.get('chatGroupId')

        try:
            name = ChatGroup.objects.get(id=groupId).name
            print("hello")
            response['code'] = 200
            response['data'] = {"msg": "success", "name": name}

            return JsonResponse(response)
        except:
            response["code"] = 300
            response["data"] = {"msg": "database corrupted"}
            return JsonResponse(response)
    else:
        # 请用 GET
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)
示例#4
0
def getChatGroupPapers(request):
    response = {}
    if request.method == 'GET':
        debugflag = True
        if debugflag == False:
            # 根据 cookie 判断能否查看动态
            if check_cookie(request) == -1:
                response['code'] = 300
                response['data'] = {'msg': 'cookie out of date'}
                return JsonResponse(response)

        groupId = request.GET.get('chatGroupId')

        try:
            paperlist = list(
                ChatGroup.objects.get(id=groupId).paper.values(
                    "id", "title", "path"))
            response['code'] = 200
            response['data'] = {"msg": "success", "paperList": paperlist}

            return JsonResponse(response)
        except:
            response["code"] = 300
            response["data"] = {"msg": "database corrupted"}
            return JsonResponse(response)
    else:
        # 请用 GET
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)
示例#5
0
def get_username(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = UserIdForm(request.GET)
        if form.is_valid():
            user_id = form.cleaned_data['userId']
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            response['code'] = 200
            response['data'] = {'msg': "success", 'username': user.user_name}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#6
0
def request_create_comment_area(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'POST':
        # 注意这里paperform不是paper对应的form一个是Path一个是File
        form = PaperForm(request.POST, request.FILES)
        if form.is_valid():
            paper_file = PaperFile(title=form.cleaned_data["title"],
                                   paper=request.FILES['paper'])
            paper_file.save()
            paper = Paper(title=paper_file.title, path=paper_file.paper.name)
            paper.save()
            user = User.objects.get(id=user_id)
            create_request = CreateRequest(requestor=user,
                                           paper=paper,
                                           paper_title=paper.title)
            create_request.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#7
0
def add_annotation(request):
    response = {}
    debugflag = False
    if debugflag == False:
        user_id = check_cookie(request)
        #检查cookie
        if user_id == -1:
            response['code'] = 300
            response['data'] = {'msg': "cookie out of date"}
            return JsonResponse(response)
    else:
        user_id = json.loads(request.body)['userId']
    if request.method == 'POST':
        form = AddAnnotationForm(json.loads(request.body))
        if form.is_valid():
            #获取相对坐标
            x = form.cleaned_data['x']
            y = form.cleaned_data['y']
            page_num = form.cleaned_data['pageNum']
            paper_id = form.cleaned_data['paperId']
            content = form.cleaned_data['content']
            try:
                paper = Paper.objects.get(id=paper_id)
            except Paper.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "paper id does not exist"}
                return JsonResponse(response)
            full_path = MEDIA_ROOT + '/' + paper.path
            print(MEDIA_ROOT + '/' + paper.path)
            #打开并获取对应的页
            doc = fitz.open(full_path)
            page = doc.loadPage(page_num)
            rect = page.rect
            #这里乘上这一页的宽和高获取绝对坐标
            top_left = (x * rect[2], y * rect[3])
            #添加批注
            annot = page.addTextAnnot(top_left, content)
            print(dir(annot))
            #这里需要设置Popup的位置
            annot.set_popup(annot.rect)
            annot.setInfo(title=User.objects.get(id=user_id).user_name)
            doc.save(full_path, incremental=True, encryption=False)
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
    else:
        response['code'] = 300
        response['data'] = {
            'msg': 'wrong http method, you should use POST method'
        }
        return JsonResponse(response)
示例#8
0
def approve_create_comment_area_request(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = ApproveCreateCommentAreaRequestForm(request.GET)
        if form.is_valid():
            request_id = form.cleaned_data['requestId']
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            # 判断是否有管理员权限
            if user.privilege == False:
                response['code'] = 300
                response['data'] = {'msg': "not administrator"}
                return JsonResponse(response)
            try:
                create_request = CreateRequest.objects.get(id=request_id)
            except CreateRequest.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "request id does not exist"}
                return JsonResponse(response)
            paper = create_request.paper
            requestor = create_request.requestor
            # 讨论区的名字就默认成论文的名字,版主默认为申请创建者
            comment_area = CommentArea(name=paper.title,
                                       master=requestor,
                                       paper=paper)
            # 创建者默认收藏
            comment_area.save()
            comment_area.star_user_list.add(requestor)
            comment_area.star_number = 1
            comment_area.save()
            # 删除已经审批的请求
            create_request.delete()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#9
0
def post_long_comment(request):
    response = {}
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    if request.method == 'POST':
        form = PostLongCommentForm(json.loads(request.body))
        if form.is_valid():
            comment_area_id = form.cleaned_data['commentAreaId']
            content = form.cleaned_data['content']
            title = form.cleaned_data['title']
            # user_id = form.cleaned_data['userId']
            try:
                comment_area = CommentArea.objects.get(id=comment_area_id)
            except CommentArea.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "comment area id does not exist"}
                return JsonResponse(response)
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            long_comment = LongComment(poster=user,
                                       title=title,
                                       content=content)
            long_comment.save()
            long_comment.star_user_list.add(user)
            long_comment.star_number = 1
            long_comment.save()
            # 建立长评短评之间的关联
            comment_area.long_comment_list.add(long_comment)
            comment_area.save()
            response['code'] = 200
            response['id'] = long_comment.id
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#10
0
def get_long_comment(request):
    response = {}
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    if request.method == 'GET':
        form = GetLongCommentForm(request.GET)
        if form.is_valid():
            long_comment_id = form.cleaned_data['longCommentId']
            in_comment_area = form.cleaned_data['inCommentArea']
            # user_id = form.cleaned_data['userId']
            try:
                long_comment = LongComment.objects.get(id=long_comment_id)
            except LongComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "long comment id does not exist"}
                return JsonResponse(response)
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            if in_comment_area:
                serializer = LongCommentInCommentAreaSerializer(long_comment)
            else:
                serializer = LongCommentSerializer(long_comment)
            star = long_comment.star_user_list.filter(id=user_id).exists()
            data = serializer.data
            data['star'] = star
            #判断当前用户是否发布了该评论
            data['create'] = (user_id == long_comment.poster.id)
            if in_comment_area:
                data['content'] = long_comment.content[:50]
            response['code'] = 200
            response['data'] = {'msg': "success", 'comment': data}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#11
0
def createChatGroup(request):
    response = {}
    if request.method == 'POST':
        user_id = check_cookie(request)
        if user_id == -1:
            response['code'] = 300
            response['data'] = {'msg': 'cookie out of date'}
            return JsonResponse(response)

        groupName = json.loads(request.body)['groupName']

        if ChatGroup.objects.filter(name=groupName).exists():
            response['code'] = 400
            response['data'] = {"msg": "ChatGroup already exists"}
            return JsonResponse(response)

        memberList = json.loads(request.body)['userList']
        memberList.append({'userId': user_id})

        newChatGroup = ChatGroup()
        newChatGroup.save()
        newChatGroup.name = groupName
        try:
            for mb in memberList:
                mbId = mb['userId']
                user = User.objects.get(id=mbId)
                newChatGroup.user_list.add(user)
            newChatGroup.save()

            response["code"] = 200
            response["data"] = {"msg": "success", "groupId": newChatGroup.id}
        except:
            response["code"] = 300
            response["data"] = {"msg": "database corrupted"}
            return JsonResponse(response)

        return JsonResponse(response)
    else:
        # 请用 GET
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)
示例#12
0
def uploadChatGroupPaper(request):
    # 论文直接上传到公共论文的数据库中
    # 然后再在ChatGroup的PaperList里面增加这篇论文的引用

    response = {}
    if request.method == 'POST':

        debugflag = False
        if debugflag == False and check_cookie(request) == -1:
            response['code'] = 300
            response['data'] = {'msg': "cookie out of date"}
            return JsonResponse(response)

        form = ChatGroupPaperForm(request.POST, request.FILES)
        if form.is_valid():
            paper_file = PaperFile(title=form.cleaned_data["title"],
                                   paper=request.FILES['paper'])
            paper_file.save()
            paper = Paper(title=paper_file.title, path=paper_file.paper.name)
            paper.save()

            try:
                chatGroup = ChatGroup.objects.get(
                    id=form.cleaned_data["chatGroupId"])
                chatGroup.paper.add(paper)

                response["code"] = 200
                response["data"] = {"msg": "success"}
                return JsonResponse(response)
            except:
                response["code"] = 300
                response["data"] = {"msg": "database corrupted"}
                return JsonResponse(response)
        else:
            response["code"] = 300
            response["data"] = {"msg": "wrong paremeter format"}

    else:
        # 请用 post
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)
示例#13
0
def post_short_comment_for_long_comment(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'POST':
        form = PostShortCommentForLongCommentForm(json.loads(request.body))
        if form.is_valid():
            long_comment_id = form.cleaned_data['longCommentId']
            short_comment_content = form.cleaned_data['shortComment']
            # user_id = form.cleaned_data['userId']
            try:
                long_comment = LongComment.objects.get(id=long_comment_id)
            except LongComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "long comment id does not exist"}
                return JsonResponse(response)
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            short_comment = ShortComment(poster=user,
                                         content=short_comment_content)
            # 必须要先save才能建立关联
            short_comment.save()
            # 建立长评短评之间的关联
            long_comment.short_comment_list.add(short_comment)
            response['code'] = 200
            response['id'] = short_comment.id
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#14
0
def get_paper(request):
    response = {}
    if request.method == 'GET':
        user_id = check_cookie(request)
        if user_id == -1:
            response['code'] = 300
            response['data'] = {'msg': "cookie out of date"}
            return JsonResponse(response)
        print(user_id)
        form = PaperIdForm(request.GET)
        if form.is_valid():
            id = form.cleaned_data['paperId']
            try:
                paper = Paper.objects.get(id=id)
            except Paper.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "paper id does not exist"}
                return JsonResponse(response)
            print(paper.path)
            #serializer = PaperSerializer(paper)
            #data = serializer.data
            print(MEDIA_ROOT + '/' + paper.path)
            try:
                response = FileResponse(
                    open(MEDIA_ROOT + '/' + paper.path, 'rb'))
                response['content_type'] = "application/octet-stream"
                response[
                    'Content-Disposition'] = 'inline; filename=' + os.path.basename(
                        paper.path)
                return response
            except Exception as e:
                print(e)
                raise Http404
            #response['code'] = 200
            #response['data'] = {'msg': "success", 'paper': data}
            #return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            print(form.errors)
            return JsonResponse(response)
示例#15
0
def star_comment_area(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = OpCommentAreaForm(request.GET)
        if form.is_valid():
            comment_area_id = form.cleaned_data['commentAreaId']
            # user_id = form.cleaned_data['userId']
            # 根据id获取讨论区
            try:
                comment_area = CommentArea.objects.get(id=comment_area_id)
            except CommentArea.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "comment area id does not exist"}
                return JsonResponse(response)
            # 根据id获取收藏的用户
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            # 收藏用户列表加入收藏用户
            comment_area.star_user_list.add(user)
            comment_area.star_number = comment_area.star_number + 1
            # 更新数据库
            comment_area.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#16
0
def star_comment(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = OpLongCommentForm(request.GET)
        if form.is_valid():
            long_comment_id = form.cleaned_data['longCommentId']
            # user_id = form.cleaned_data['userId']
            # 根据id获取长评
            try:
                long_comment = LongComment.objects.get(id=long_comment_id)
            except LongComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "long comment id does not exist"}
                return JsonResponse(response)
            # 根据id获取收藏用户
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            # 评论点赞数++,点赞用户列表填入点赞用户
            long_comment.star_number = long_comment.star_number + 1
            long_comment.star_user_list.add(user)
            # 更新数据库
            long_comment.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#17
0
def GetSelfMomments(request):
    response = {}
    if request.method == 'POST':
        # 不使用 cookie 测试的话,就将 debugflag = TRUE
        debugflag = True
        if debugflag == False:
            # 根据 cookie 判断能否查看动态
            userid = check_cookie(request)
            if userid == -1:
                response['code'] = 300
                response['data'] = {'msg': 'cookie out of date'}
                return JsonResponse(response)
        else:
            userid = json.loads(request.body)['userid']

        try:
            user = User.objects.get(id=userid)
            long_comment_list = list(
                user.post_long_comment.values("id", "title", "content",
                                              "post_time"))
            long_comment_list.sort(key=lambda x: x["post_time"])

            response['code'] = 200
            response['data'] = {
                'msg': "success",
                'LongComments': long_comment_list
            }
            return JsonResponse(response)

        except:
            # 多半是数据库挂了
            response["code"] = 300
            response["data"] = {"msg": "database corrupted"}
            return JsonResponse(response)

    else:
        # 请用 POST
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)
示例#18
0
def rose_comment(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = OpShortCommentForm(request.GET)
        if form.is_valid():
            short_comment_id = form.cleaned_data['shortCommentId']
            # user_id = form.cleaned_data['userId'] 现在使用cookie了
            # 根据id获取短评
            try:
                short_comment = ShortComment.objects.get(id=short_comment_id)
            except ShortComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "short comment id does not exist"}
                return JsonResponse(response)
            # 根据id获取点赞用户
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            # 评论点赞数++,点赞用户列表填入点赞用户
            short_comment.rose_number = short_comment.rose_number + 1
            short_comment.rose_user_list.add(user)
            # 更新数据库
            short_comment.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#19
0
def get_star_long_comment_list(request):
    response = {}
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    if request.method == 'GET':
        try:
            user = User.objects.get(id=user_id)
        except User.DoesNotExist:
            response['code'] = 300
            response['data'] = {'msg': "user id does not exist"}
            return JsonResponse(response)
        response['code'] = 200
        serializer = LongCommentInListSerializer(user.star_long_comment.all(),
                                                 many=True)
        response['data'] = {
            'msg': "success",
            "longCommentList": serializer.data
        }
        return JsonResponse(response)
示例#20
0
def cancel_star_comment_area(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = OpCommentAreaForm(request.GET)
        if form.is_valid():
            comment_area_id = form.cleaned_data['commentAreaId']
            # user_id = form.cleaned_data['userId']
            # 根据id获取讨论区
            try:
                comment_area = CommentArea.objects.get(id=comment_area_id)
            except CommentArea.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "comment area id does not exist"}
                return JsonResponse(response)
            star = comment_area.star_user_list.filter(id=user_id).exists()
            if not star:
                response['code'] = 300
                response['data'] = {
                    'msg': "you have not starred this comment area"
                }
                return JsonResponse(response)
            comment_area.star_user_list.remove(user_id)
            comment_area.star_number = comment_area.star_number - 1
            # 更新数据库
            comment_area.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#21
0
def getBothStarList(request):
    response = {}
    if request.method == 'POST':

        debugflag = True
        if debugflag == False and check_cookie(request) == -1:
            response['code'] = 300
            response['data'] = {'msg': "cookie out of date"}
            return JsonResponse(response)
        else:
            userId = json.loads(request.body)['userId']

        try:
            user = User.objects.get(id=userId)
            userStarList = list(user.star_user_list.values("id"))

            retList = []
            for fd in userStarList:
                friend = User.objects.get(id=fd["id"])
                if user in friend.star_user_list.all():
                    tmp = {}
                    tmp["userId"] = friend.id
                    tmp["userName"] = friend.user_name
                    tmp["userAvatar"] = friend.user_photo.url
                    retList.append(tmp)

            response["code"] = 200
            response["data"] = {"msg": "success", "userList": retList}

            return JsonResponse(response)
        except:
            response["code"] = 300
            response["data"] = {"msg": "database corrupted"}
            return JsonResponse(response)
    else:
        # 请用 POST
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)
示例#22
0
def cancel_rose_comment(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = OpShortCommentForm(request.GET)
        if form.is_valid():
            short_comment_id = form.cleaned_data['shortCommentId']
            # user_id = form.cleaned_data['userId']
            # 根据id获取短评
            try:
                short_comment = ShortComment.objects.get(id=short_comment_id)
            except ShortComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "short comment id does not exist"}
                return JsonResponse(response)
            # 查询是否已经点赞
            rose = short_comment.rose_user_list.filter(id=user_id).exists()
            if not rose:
                response['code'] = 300
                response['data'] = {'msg': "you have not rosed this comment"}
                return JsonResponse(response)

            short_comment.rose_number = short_comment.rose_number - 1
            short_comment.rose_user_list.remove(user_id)
            # 更新数据库
            short_comment.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#23
0
def cancel_star_comment(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = OpLongCommentForm(request.GET)
        if form.is_valid():
            long_comment_id = form.cleaned_data['longCommentId']
            # user_id = form.cleaned_data['userId']
            # 根据id获取长评
            try:
                long_comment = LongComment.objects.get(id=long_comment_id)
            except LongComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "long comment id does not exist"}
                return JsonResponse(response)
            # 查询是否已经收藏
            star = long_comment.star_user_list.filter(id=user_id).exists()
            if not star:
                response['code'] = 300
                response['data'] = {'msg': "you have not starred this comment"}
                return JsonResponse(response)
            long_comment.star_number = long_comment.star_number - 1
            long_comment.star_user_list.remove(user_id)
            # 更新数据库
            long_comment.save()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#24
0
def get_short_comment(request):
    response = {}
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    if request.method == 'GET':
        form = OpShortCommentForm(request.GET)
        if form.is_valid():
            short_comment_id = form.cleaned_data['shortCommentId']
            # user_id = form.cleaned_data['userId']
            try:
                short_comment = ShortComment.objects.get(id=short_comment_id)
            except ShortComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "short comment id does not exist"}
                return JsonResponse(response)
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            serializer = ShortCommentSerializer(short_comment)
            # 查询是否赞过或者踩过
            rose = short_comment.rose_user_list.filter(id=user.id).exists()
            egg = short_comment.egg_user_list.filter(id=user.id).exists()
            data = serializer.data
            data['egg'] = egg
            data['rose'] = rose
            response['code'] = 200
            response['data'] = {'msg': "success", 'comment': data}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#25
0
def reject_create_comment_area_request(request):
    response = {}

    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)

    if request.method == 'GET':
        form = ApproveCreateCommentAreaRequestForm(request.GET)
        if form.is_valid():
            request_id = form.cleaned_data['requestId']
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            # 判断是否有管理员权限
            if user.privilege == False:
                response['code'] = 300
                response['data'] = {'msg': "not administrator"}
                return JsonResponse(response)
            try:
                create_request = CreateRequest.objects.get(id=request_id)
            except CreateRequest.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "request id does not exist"}
                return JsonResponse(response)
            create_request.delete()
            response['code'] = 200
            response['data'] = {'msg': "success"}
            return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#26
0
def getMyChatGroupList(request):
    response = {}
    if request.method == 'POST':
        userid = check_cookie(request)
        if userid == -1:
            response['code'] = 300
            response['data'] = {'msg': "cookie out of date"}
            return JsonResponse(response)
        else:
            try:
                response['code'] = 200
                grouplist = list(
                    User.objects.get(id=userid).my_chat_group.values(
                        "id", "name"))
                response['data'] = {
                    'msg': "success",
                    'MyChatGroupList': grouplist
                }
                return JsonResponse(response)
            except:
                response['code'] = 300
                response['data'] = {'msg': "User does not exist"}
                return JsonResponse(response)
示例#27
0
def delete_long_comment(request):
    response = {}
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    if request.method == 'GET':
        form = OpLongCommentForm(request.GET)
        if form.is_valid():
            long_comment_id = form.cleaned_data['longCommentId']
            # user_id = form.cleaned_data['userId']
            try:
                long_comment = LongComment.objects.get(id=long_comment_id)
            except LongComment.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "long comment id does not exist"}
                return JsonResponse(response)
            try:
                user = User.objects.get(id=user_id)
            except User.DoesNotExist:
                response['code'] = 300
                response['data'] = {'msg': "user id does not exist"}
                return JsonResponse(response)
            if long_comment.poster.id == user_id:
                long_comment.delete()
                response['code'] = 200
                response['data'] = {'msg': "success"}
                return JsonResponse(response)
            else:
                response['code'] = 300
                response['data'] = {'msg': "you can't delete others' comment"}
                return JsonResponse(response)
        else:
            response['code'] = 300
            response['data'] = {'msg': form.errors}
            return JsonResponse(response)
示例#28
0
def get_star_comment_area_list(request):
    response = {}
    user_id = check_cookie(request)
    if user_id == -1:
        response['code'] = 300
        response['data'] = {'msg': "cookie out of date"}
        return JsonResponse(response)
    if request.method == 'GET':
        # id = form.cleaned_data['userId']
        try:
            user = User.objects.get(id=user_id)
        except User.DoesNotExist:
            response['code'] = 300
            response['data'] = {'msg': "user id does not exist"}
            return JsonResponse(response)
        response['code'] = 200
        #这里用的serializer和之前的不一样,只会发送id and name
        serializer = CommentAreaInListSerializer(user.star_comment_area.all(),
                                                 many=True)
        response['data'] = {
            'msg': "success",
            "commentAreaList": serializer.data
        }
        return JsonResponse(response)
示例#29
0
def GetMomments(request):
    response = {}
    if request.method == 'POST':
        # print(request.body)
        # 不使用 cookie 测试的话,就将 debugflag = TRUE
        debugflag = True
        if debugflag == False:
            # 根据 cookie 判断能否查看动态
            userid = check_cookie(request)
            if userid == -1:
                response['code'] = 300
                response['data'] = {'msg': 'cookie out of date'}
                return JsonResponse(response)
        else:
            userid = json.loads(request.body)['userid']

        # 请传送时间戳
        start_time = datetime.fromtimestamp(
            int(json.loads(request.body)['time']))
        user = User.objects.get(id=userid)

        try:
            # 获取关注了的人的id
            # userlist = [{"id" : ...}, ....]
            userlist = list(user.star_user_list.values('id'))
            # 包括他自己
            userlist.append({'id': user.id})

            # 根据关注了的人的 id 进行检索,找到 start_time 之后提交的长评
            friends_long_comment_list = []
            for friends in userlist:
                friends_id = friends['id']
                friends_recent_long_comment = list(
                    User.objects.get(id=friends_id).post_long_comment.filter(
                        post_time__gte=start_time).values(
                            "id", "title", "content", "post_time", "poster"))

                friend_name = User.objects.get(id=friends_id).user_name
                for i in friends_recent_long_comment:
                    i['poster_name'] = friend_name
                friends_long_comment_list.extend(friends_recent_long_comment)

                friends_long_comment_list.sort(key=lambda x: x["post_time"])

            response['code'] = 200
            response['data'] = {
                'msg': "success",
                'LongComments': friends_long_comment_list
            }
            return JsonResponse(response)

        except:
            # 多半是数据库挂了
            response["code"] = 300
            response["data"] = {"msg": "database corrupted"}
            return JsonResponse(response)

    else:
        # 请用 POST
        response["code"] = 600
        response["data"] = {"msg": "incorrect request method"}
        return JsonResponse(response)