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
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
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))
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))
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
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
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
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