Пример #1
0
def replyLike(request):
    ret = {}
    uid = request.session.get('login_user_id', None)
    if request.method == 'POST':
        if uid:
            rid = request.POST.get('rid', '')
            if rid.isdigit():
                liked_obj_counts = models.TvReplyLike.objects.filter(
                    user__id=uid, tv_reply_like__id=rid).count()
                if liked_obj_counts > 0:  #该用户对该评论已赞
                    ret['msg'] = '910'
                else:
                    try:
                        user_obj = models.User.objects.get(id=uid)
                    except Exception:
                        ret['msg'] = '101'
                        return HttpResponse(json.dumps(ret))
                    reply_obj = models.TvReply.objects.get(id=rid)
                    models.TvReplyLike.objects.create(user=user_obj,
                                                      tv_reply_like=reply_obj)
                    user_helper.expAdd('like', uid)  #增加经验
                    ret['msg'] = 'success'

            else:
                ret['msg'] = '302'  #前端数据错误
        else:
            ret['msg'] = '401'  #用户未登录
        return HttpResponse(json.dumps(ret))
    else:
        raise Http404
Пример #2
0
def submitReply(request):
    ret = {'logined': False, 'success': False}
    uid = request.session.get('login_user_id', None)
    if request.method == 'POST':
        if uid:
            ret['logined'] = True
            nid = request.POST.get('id', '')
            content = request.POST.get('content', '')
            html_content = htmlContentFilter(content, 'static')
            if not all([nid, html_content]):
                if not nid:
                    ret['msg'] = '302'  #条目ID未得到
                else:
                    ret['msg'] = '901'  #内容为空
                return HttpResponse(json.dumps(ret))
            else:
                if re.search('^\s+$', html_content, re.S):
                    ret['msg'] = '902'  #全为空格
                    return HttpResponse(json.dumps(ret))
            try:
                user_obj = models.User.objects.get(id=uid)
            except Exception:
                ret['msg'] = '103'  #数据库条目不存在
                return HttpResponse(json.dumps(ret))

            try:
                news_obj = models.News.objects.get(id=nid)
                new_reply_obj = models.NewsReply.objects.create(
                    content=html_content, news=news_obj, user=user_obj)

                ret['uid'] = user_obj.id
                ret['avatar_s'] = str(user_obj.thumb_s)
                ret['uname'] = user_obj.username
                ret['new_rid'] = new_reply_obj.id
                ret['content'] = new_reply_obj.content
                user_helper.expAdd('comment', uid)
                ret['success'] = True
            except Exception:
                ret['msg'] = '101'  #数据库写入错误
                return HttpResponse(json.dumps(ret))

            return HttpResponse(json.dumps(ret))
        #未登录
        else:
            ret['msg'] = '401'
            return HttpResponse(json.dumps(ret))

    else:
        raise Http404
Пример #3
0
def submitReplyReply(request):
    ret = {'logined': False, 'success': False}
    uid = request.session.get('login_user_id', None)
    if request.method == 'POST':
        if uid:
            ret['logined'] = True
            rid = request.POST.get('rid', None)  #目标评论ID
            content = request.POST.get('content')
            content = re.sub(r'<[^i].*?>', '', content)
            #过滤HTML标签,保留i开头的
            if not all([rid, content]):
                if not rid:
                    ret['msg'] = '302'  #条目ID未得到
                else:
                    ret['msg'] = '901'  #内容为空
                return HttpResponse(json.dumps(ret))
            else:
                if re.search('^\s+$', content, re.S):
                    ret['msg'] = '902'  #全为空格
                    return HttpResponse(json.dumps(ret))
            try:
                user_obj = models.User.objects.get(id=uid)
            except Exception:
                ret['msg'] = '103'  #数据库条目不存在
                return HttpResponse(json.dumps(ret))
            try:
                ret['new_username'] = user_obj.username  #前端动态添加评论
                ret['new_uid'] = user_obj.id
                ret['new_avatar'] = str(user_obj.thumb_s)
                reply_obj = models.NewsReply.objects.get(id=rid)
                new_rr_obj = models.NewsReplyReply.objects.create(
                    content=content, news_reply=reply_obj, user=user_obj)
                ret['content'] = new_rr_obj.content
                ret['rrid'] = new_rr_obj.id
                user_helper.expAdd('comment_r', uid)
                ret['success'] = True
                return HttpResponse(json.dumps(ret))
            except Exception:
                ret['msg'] = '101'  #数据库错误(前端发送数据有误或数据库自身错误)
                return HttpResponse(json.dumps(ret))

        #未登录
        else:
            ret['msg'] = '401'
        return HttpResponse(json.dumps(ret))
    else:
        return HttpResponse(json.dumps(ret))
Пример #4
0
def submitReplyReply(request):
    ret = {'logined': False, 'success': False}
    uid = request.session.get('login_user_id', None)
    if request.method == 'POST':
        if uid:
            ret['logined'] = True
            rid = request.POST.get('rid')  #目标评论ID
            html_content = request.POST.get('content', '')
            html_content = htmlContentFilter(html_content, 'static')
            if not all([rid, html_content]):
                if not rid:
                    ret['msg'] = '302'  #条目ID未得到
                else:
                    ret['msg'] = '901'  #内容为空
                return HttpResponse(json.dumps(ret))
            else:
                if re.search('^\s+$', html_content, re.S):
                    ret['msg'] = '902'  #全为空格
                    return HttpResponse(json.dumps(ret))
            try:
                user_obj = models.User.objects.get(id=uid)
            except Exception:
                ret['msg'] = '103'  #数据库条目不存在
                return HttpResponse(json.dumps(ret))

            try:
                reply_obj = models.TvReply.objects.get(id=rid)
                new_rr_obj = models.TvReplyReply.objects.create(
                    content=html_content, tv_reply=reply_obj, user=user_obj)
            except Exception:
                ret['msg'] = '101'  #数据库错误(前端发送数据有误或数据库自身错误)
                return HttpResponse(json.dumps(ret))

            ret['new_username'] = user_obj.username
            ret['new_uid'] = user_obj.id
            ret['new_avatar'] = str(user_obj.thumb_s)
            ret['content'] = new_rr_obj.content
            ret['rrid'] = new_rr_obj.id
            user_helper.expAdd('comment_r', uid)
            target_uid = reply_obj.user.id
            if not target_uid == uid:
                check_obj = models.User_Notification_Check.objects.filter(
                    target_user__id=target_uid)
                if check_obj.count() == 1:
                    try:
                        #存在即更新
                        check_obj.update(movie_rr=check_obj[0].movie_rr + 1)
                    except Exception:
                        ret['msg'] = '101'
                        return HttpResponse(json.dumps(ret))
                elif check_obj.count() == 0:  #以防万一
                    try:
                        models.User_Notification_Check.objects.create(
                            target_user=models.User.objects.filter(
                                id=target_uid)[0],
                            movie_rr=1)
                    except Exception:
                        ret['msg'] = '103'  #用户不存在
                        return HttpResponse(json.dumps(ret))
                else:  #重复数据
                    ret['msg'] = '102'
                    return HttpResponse(json.dumps(ret))
            ret['success'] = True
            return HttpResponse(json.dumps(ret))

        #未登录
        else:
            ret['msg'] = '107'
        return HttpResponse(json.dumps(ret))
    else:
        return HttpResponse(json.dumps(ret))
Пример #5
0
def submitReply(request):
    ret = {'logined': False, 'success': False}
    uid = request.session.get('login_user_id', None)
    if request.method == 'POST':
        if uid:
            ret['logined'] = True
            tid = request.POST.get('id', '')
            html_content = request.POST.get('content', '')
            html_content = htmlContentFilter(html_content, 'static')
            rating = try_int(request.POST.get('rating', 0), 0)
            if not all([tid, html_content]):
                if not tid:
                    ret['msg'] = '302'  #条目ID未得到
                else:
                    ret['msg'] = '901'  #内容为空
                return HttpResponse(json.dumps(ret))
            else:
                if re.search('^\s+$', html_content, re.S):
                    ret['msg'] = '902'  #全为空格
                    return HttpResponse(json.dumps(ret))
            try:
                user_obj = models.User.objects.get(id=uid)
            except Exception:
                ret['msg'] = '103'  #数据库条目不存在
                return HttpResponse(json.dumps(ret))

            try:
                tv_obj = models.Tv.objects.get(id=tid)
                if not rating:
                    new_reply_obj = models.TvReply.objects.create(
                        content=html_content, tv=tv_obj, user=user_obj)
                else:
                    reply_with_rating = models.TvReply.objects.filter(
                        user__id=uid, tv__id=tid, rating__gt=0)
                    if not reply_with_rating.count():
                        new_reply_obj = models.TvReply.objects.create(
                            rating=rating,
                            content=html_content,
                            tv=tv_obj,
                            user=user_obj)
                    else:
                        ret['msg'] = '909'
                        return HttpResponse(json.dumps(ret))
            except Exception:
                ret['msg'] = '101'  #数据库写入错误
                return HttpResponse(json.dumps(ret))

            ret['uid'] = user_obj.id
            ret['avatar_s'] = str(user_obj.thumb_s)
            ret['uname'] = user_obj.username
            ret['content'] = new_reply_obj.content
            ret['new_rid'] = new_reply_obj.id
            user_helper.expAdd('comment', uid)
            ret['success'] = True
            return HttpResponse(json.dumps(ret))
        #未登录
        else:
            ret['msg'] = '401'
            return HttpResponse(json.dumps(ret))

    else:
        raise Http404
Пример #6
0
def submitLayerReply(request):
    if request.method == 'POST':
        ret = {}
        prid = request.POST.get('prid', '')
        html_content = request.POST.get('content', None)
        html_content = htmlContentFilter(html_content, 'static')
        target_uid = request.POST.get('target_uid', '')

        if target_uid.isdigit():
            target_uid = int(target_uid)
            target_user_obj = models.User.objects.filter(id=target_uid)
            print target_user_obj
            if not target_user_obj.count():
                ret['msg'] = '103'
                return HttpResponse(json.dumps(ret))
        else:
            ret['msg'] = '302'
            return HttpResponse(json.dumps(ret))

        try:
            uid = request.session['login_user_id']
        except Exception:
            ret['msg'] = '401'
            return HttpResponse(json.dumps(ret))

        user_obj = models.User.objects.filter(id=uid)

        if prid.isdigit():
            post_reply_obj = models.PostReply.objects.filter(id=prid)
            if not post_reply_obj.count():
                ret['msg'] = '103'
                return HttpResponse(json.dumps(ret))
        else:
            ret['msg'] = '302'
            return HttpResponse(json.dumps(ret))

        try:
            new_post_lr = models.PostLayerReply.objects.create(
                user=user_obj[0],
                content=html_content,
                post_reply=post_reply_obj[0],
                target_user=target_user_obj[0])
        except Exception:
            ret['msg'] = '101'

        #增加经验值
        expAdd('post_layer_reply', uid)
        ret['msg'] = 'success'

        #更新帖子最后回复时间
        post_obj = models.Post.objects.filter(id=post_reply_obj[0].post.id)
        post_obj.update(last_replied_date=new_post_lr.create_date,
                        last_replied_user=user_obj[0])
        #若target_user不是自己
        if not target_uid == uid:
            models.User_Notification_Check.objects.create(
                target_user=target_user_obj[0], bbs_r=1)
        #若层主不是自己,通知层主
        if not post_reply_obj[0].user.id == uid:
            models.User_Notification_Check.objects.create(
                target_user=post_reply_obj[0].user, bbs_r=1)
        #若楼主不是自己,通知楼主
        if not post_obj[0].user.id == uid:
            models.User_Notification_Check.objects.create(
                target_user=post_obj[0].user, bbs_r=1)

        return HttpResponse(json.dumps(ret))
    else:
        raise Http404
Пример #7
0
def submitPost(request):
    if request.method == 'POST':
        ret = {}
        try:
            uid = request.session['login_user_id']
        except Exception:
            ret['msg'] = '401'
            return HttpResponse(json.dumps(ret))
        board = request.POST.get('board', None)
        title = request.POST.get('title', None).strip()
        html_content = request.POST.get('html_content', None)
        html_content = htmlContentFilter(html_content, 'rich')
        #处理内容中的图片
        content_imgs = re.findall(r'<img.*?src="(/media.*?)".*?>',
                                  html_content, re.S)
        uploaded_imgs = models.Post_Temp_Images.objects.filter(user__id=uid)
        #print 'uploaded_imgs_counts: '+ str(uploaded_imgs.count())
        #print 'uploaded_imgs: '+ str(uploaded_imgs)
        first_exist_img = True  #只生成第一张图片缩略图,用于通知等quote
        if uploaded_imgs.count() > 0:  #临时表中存在图片
            if len(content_imgs) == 0:  #用户清空了内容中的图片
                for i in uploaded_imgs:  #删除每个图片
                    deleteImg(str(i.img))

            else:
                for i in uploaded_imgs:  #循环临时表中该用户的每个图片
                    temp_img = str(i.img)

                    img_exist = False  #临时表中每个图片初始化为不存在
                    for j in content_imgs:  #与content中每个img_url比较
                        if temp_img == j:
                            img_exist = True

                    if img_exist:
                        is_gif = re.search('.*(\.gif$)', temp_img.lower())

                        if first_exist_img and not is_gif:
                            #存在且为第一张图片,生成缩略图和路径

                            result_path = genPostImgThumb(temp_img, uid)
                            first_exist_img = False

                    else:
                        deleteImg(temp_img)

            uploaded_imgs.delete()  #清空该用户在临时表中条目

        #存入Post表
        try:
            user_obj = models.User.objects.get(id=uid)
        except Exception:
            ret['msg'] = '103'  #记录不存在
            return HttpResponse(json.dumps(ret))
        try:
            if 'result_path' in dir():  #如果生成了缩略图
                models.Post.objects.create(board=board,
                                           title=title,
                                           content=html_content,
                                           user=user_obj,
                                           img_thumb=result_path,
                                           last_replied_user=user_obj)
            else:
                models.Post.objects.create(board=board,
                                           title=title,
                                           content=html_content,
                                           user=user_obj,
                                           last_replied_user=user_obj)
        except Exception:
            ret['msg'] = '101'  #写入错误

        #增加经验值
        expAdd('post', uid)
        ret['msg'] = 'success'

        return HttpResponse(json.dumps(ret))
    else:
        raise Http404
Пример #8
0
def submitReply(request):
    if request.method == 'POST':
        ret = {}
        try:
            uid = request.session['login_user_id']
        except Exception:
            ret['msg'] = '401'
            return HttpResponse(json.dumps(ret))
        html_content = request.POST.get('html_content', None)
        pid = request.POST.get('pid', None)

        if not pid.isdigit():
            ret['msg'] = '302'  #前端数据格式错误
            return HttpResponse(json.dumps(ret))

        content_imgs = re.findall(r'<img.*?src="(/media.*?)".*?>',
                                  html_content, re.S)
        uploaded_imgs = models.Post_Temp_Images.objects.filter(user__id=uid)
        #print 'uploaded_imgs: '+ str(uploaded_imgs.count())
        if uploaded_imgs.count() > 0:  #临时表中存在图片
            if len(content_imgs) == 0:  #用户清空了内容中的图片
                for i in uploaded_imgs:  #删除每个图片
                    deleteImg(str(i.img))

            else:
                for i in uploaded_imgs:  #循环临时表中该用户的每个图片
                    img_exist = False
                    temp_img = str(i.img)
                    for j in content_imgs:  #与content中每个img_url比较
                        #print 'temp_Img:' + temp_img
                        #print 'j:' + j
                        if temp_img == j:
                            img_exist = True
                            break
                    if not img_exist:
                        deleteImg(temp_img)

            uploaded_imgs.delete()  #清空该用户在临时表中条目

        #存入PostReply表
        try:
            post_obj = models.Post.objects.get(id=pid)
            user_obj = models.User.objects.get(id=uid)
        except Exception:
            ret['msg'] = '103'  #记录不存在
            return HttpResponse(json.dumps(ret))
        try:
            new_post_obj = models.PostReply.objects.create(
                content=html_content, user=user_obj, post=post_obj)
        except Exception:
            ret['msg'] = '101'  #写入错误

        #更新帖子最后回复时间/回帖人
        models.Post.objects.filter(id=pid).update(
            last_replied_date=new_post_obj.create_date,
            last_replied_user=user_obj)

        #增加经验值
        expAdd('post_reply', uid)
        ret['msg'] = 'success'

        #若楼主不是自己,通知楼主
        target_uid = post_obj.user.id
        if not target_uid == uid:
            check_obj = models.User_Notification_Check.objects.filter(
                target_user__id=target_uid)
            if check_obj.count() == 1:
                try:
                    #存在即更新
                    check_obj.update(bbs_r=check_obj[0].bbs_r + 1)
                except Exception:
                    ret['msg'] = '101'
                    return HttpResponse(json.dumps(ret))
            elif check_obj.count() == 0:  #以防万一
                try:
                    models.User_Notification_Check.objects.create(
                        target_user=post_obj.user, bbs_r=1)
                except Exception:
                    ret['msg'] = '103'  #用户不存在
                    return HttpResponse(json.dumps(ret))
            else:  #重复数据
                ret['msg'] = '102'
                return HttpResponse(json.dumps(ret))
        return HttpResponse(json.dumps(ret))
    else:
        raise Http404