You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
4.4 KiB

4 months ago
from flask import Blueprint, abort, render_template, request, session, jsonify
from module.comment import Comment
from module.credit import Credit
from module.article import Article
from module.thumb import Thumb
from module.user import Users
comment = Blueprint("comment",__name__)
@comment.route('/comment',methods = ['POST'])
def add_comment():
articleid = request.form.get('articleid')
content = request.form.get('content')
userid = session.get('userid')
ipaddr = request.remote_addr # 直接获取ip地址
# 对得到的comment进行校验这里只进行最简单的字数校验
if len(content) < 5 or len(content) > 1000:
return 'content-invalid'
# 校验结束,进行各种操作
try:
# 更新积分详情表 积分变化原因category 1评论comment 2注册enroll 3登录login 4投稿submission 5文章阅读read
Credit().insert_detail(category='1', target=userid, credit=2)
# 更新个人积分
Users().update_credit(2)
# 评论数量增加
Article().replaycount_add(articleid)
Comment().add_comment(articleid=articleid,content=content,ipaddr=ipaddr)
return 'add-pass'
except:
return 'add-fail'
# 评论点赞
@comment.route('/upcomment',methods = ['post'])
def up_comment():
commentid = request.form.get('commentid') # 通过post从前端页面那边拿取数据
articleid = request.form.get('articleid')
if session.get('islogin') is None: # 如果没有登录
return 'not-login'
else:
try:
Comment().update_add_agreecount(commentid=commentid)
Thumb().insert_up_detail(articleid=articleid,commentid=commentid)
return 'up-pass'
except:
return 'up-fail'
# 评论取消点赞
@comment.route('/cancelup',methods = ['post'])
def canel_comment():
commentid = request.form.get('commentid') # 通过post从前端页面那边拿取数据
articleid = request.form.get('articleid')
if session.get('islogin') is None: # 如果没有登录
return 'not-login'
else:
try:
Comment().update_sub_agreecount(commentid=commentid)
Thumb().insert_sub_up_detail(commentid=commentid)
return 'cancel-pass'
except:
return 'cancel-fail'
# 评论反对
@comment.route('/downcomment',methods = ['post'])
def down_comment():
commentid = request.form.get('commentid') # 通过post从前端页面那边拿取数据
articleid = request.form.get('articleid')
if session.get('islogin') is None: # 如果没有登录
return 'not-login'
else:
try:
Comment().update_add_opposecount(commentid=commentid)
Thumb().insert_down_detail(articleid=articleid, commentid=commentid)
return 'down-pass'
except:
return 'down-fail'
# 评论取消反对
@comment.route('/canceldown',methods = ['post'])
def down_cancel():
commentid = request.form.get('commentid') # 通过post从前端页面那边拿取数据
articleid = request.form.get('articleid')
if session.get('islogin') is None: # 如果没有登录
return 'not-login'
else:
try:
Comment().update_sub_opposecount(commentid=commentid)
Thumb().insert_sub_down_detail(commentid=commentid)
return 'cancel-pass'
except:
return 'cancel-fail'
# 评论隐藏
@comment.route('/hidecomment',methods = ['post'])
def hide_comment():
commentid = request.form.get('commentid') # 通过post从前端页面那边拿取数据
if session.get('islogin') is None: # 如果没有登录
return 'not-login'
else:
try:
Comment().update_hide_comment(commentid=commentid)
return 'hide-pass'
except:
return 'hide-fail'
# 删除评论
@Comment.route('/admin/comment/delete/<int:commentid>', methods=['GET'])
def delete_comment(commentid):
comemnt = Comment()
try:
# 查找评论
userid = session['userid']
result = comemnt.find_coment_by_id(commentid,userid)
if result is None:
return jsonify({"success": False, "message": "该评论不属于您"})
# 删除人员
comemnt.do_delete_comment(commentid)
return jsonify({"success": True, "message": "删除成功"})
except Exception as e:
return jsonify({"success": False, "message": str(e)})