被举报内容不进搜索
This commit is contained in:
19
hole.py
19
hole.py
@@ -116,7 +116,7 @@ def get_one():
|
|||||||
post = Post.query.get(pid)
|
post = Post.query.get(pid)
|
||||||
if not post:
|
if not post:
|
||||||
abort(404)
|
abort(404)
|
||||||
if post.deleted:
|
if post.deleted or post.is_reported:
|
||||||
abort(451)
|
abort(451)
|
||||||
|
|
||||||
data = map_post(post, u.name)
|
data = map_post(post, u.name)
|
||||||
@@ -143,22 +143,24 @@ def search():
|
|||||||
tag=keywords
|
tag=keywords
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
print(tag_pids)
|
|
||||||
|
|
||||||
tag_pids = [tag_pid for tag_pid, in tag_pids] or [0] # sql not allowed empty in
|
tag_pids = [tag_pid for tag_pid, in tag_pids] or [0] # sql not allowed empty in
|
||||||
|
|
||||||
posts = Post.query.filter(
|
posts = Post.query.filter(
|
||||||
Post.search_text.like("%{}%".format(keywords))
|
Post.search_text.like("%{}%".format(keywords))
|
||||||
).filter(
|
).filter(
|
||||||
Post.id.notin_(tag_pids)
|
Post.id.notin_(tag_pids)
|
||||||
).filter_by(deleted=False).order_by(
|
).filter_by(
|
||||||
|
deleted=False, is_reported=False
|
||||||
|
).order_by(
|
||||||
Post.id.desc()
|
Post.id.desc()
|
||||||
).limit(pagesize).offset((page - 1) * pagesize).all()
|
).limit(pagesize).offset((page - 1) * pagesize).all()
|
||||||
|
|
||||||
if page == 1:
|
if page == 1:
|
||||||
posts = Post.query.filter(
|
posts = Post.query.filter(
|
||||||
Post.id.in_(tag_pids)
|
Post.id.in_(tag_pids)
|
||||||
).filter_by(deleted=False).order_by(
|
).filter_by(
|
||||||
|
deleted=False, is_reported=False
|
||||||
|
).order_by(
|
||||||
Post.id.desc()
|
Post.id.desc()
|
||||||
).all() + posts
|
).all() + posts
|
||||||
|
|
||||||
@@ -451,7 +453,7 @@ def system_log():
|
|||||||
|
|
||||||
|
|
||||||
@app.route('/_api/v1/report', methods=['POST'])
|
@app.route('/_api/v1/report', methods=['POST'])
|
||||||
@limiter.limit("50 / hour; 1 / 3 second")
|
@limiter.limit("10 / hour; 1 / 3 second")
|
||||||
def report():
|
def report():
|
||||||
u = require_token()
|
u = require_token()
|
||||||
|
|
||||||
@@ -464,6 +466,11 @@ def report():
|
|||||||
log_detail=f"pid={pid}\n{reason}",
|
log_detail=f"pid={pid}\n{reason}",
|
||||||
name_hash=hash_name(u.name)
|
name_hash=hash_name(u.name)
|
||||||
))
|
))
|
||||||
|
|
||||||
|
post = Post.query.get(pid)
|
||||||
|
if post:
|
||||||
|
post.is_reported = True
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
return {'code': 0}
|
return {'code': 0}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class Post(db.Model):
|
|||||||
likenum = db.Column(db.Integer, default=0)
|
likenum = db.Column(db.Integer, default=0)
|
||||||
timestamp = db.Column(db.Integer)
|
timestamp = db.Column(db.Integer)
|
||||||
deleted = db.Column(db.Boolean, default=False)
|
deleted = db.Column(db.Boolean, default=False)
|
||||||
|
is_reported = db.Column(db.Boolean, default=False)
|
||||||
comment_timestamp = db.Column(db.Integer, default=0)
|
comment_timestamp = db.Column(db.Integer, default=0)
|
||||||
|
|
||||||
comments = db.relationship('Comment', backref='post', lazy=True)
|
comments = db.relationship('Comment', backref='post', lazy=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user