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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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