diff --git a/ruqqus/classes/comment.py b/ruqqus/classes/comment.py index aa9bf3f7c..3a5d6d0ca 100644 --- a/ruqqus/classes/comment.py +++ b/ruqqus/classes/comment.py @@ -57,6 +57,7 @@ class Comment(Base, Age_times, Scores, Stndrd, Fuzzing): is_offensive = Column(Boolean, default=False) is_nsfl = Column(Boolean, default=False) is_bot = Column(Boolean, default=False) + banaward = Column(String, default=None) is_pinned = Column(Boolean, default=False) creation_region=Column(String(2), default=None) sentto=Column(Integer, default=None) diff --git a/ruqqus/classes/submission.py b/ruqqus/classes/submission.py index 030becf41..ff42ab1dc 100644 --- a/ruqqus/classes/submission.py +++ b/ruqqus/classes/submission.py @@ -45,6 +45,7 @@ class Submission(Base, Stndrd, Age_times, Scores, Fuzzing): is_banned = Column(Boolean, default=False) views = Column(Integer, default=0) deleted_utc = Column(Integer, default=0) + banaward = Column(String, default=None) purged_utc = Column(Integer, default=0) distinguish_level = Column(Integer, default=0) gm_distinguish = Column(Integer, ForeignKey("boards.id"), default=0) diff --git a/ruqqus/routes/comments.py b/ruqqus/routes/comments.py index 0af996890..964285773 100644 --- a/ruqqus/routes/comments.py +++ b/ruqqus/routes/comments.py @@ -21,6 +21,37 @@ beams_client = PushNotifications( secret_key=PUSHER_KEY, ) +@app.route("/banaward/", methods=["POST"]) +@auth_required +def banaward(comment_id, v): + + if v.banawards != 1 and v.banawards != 2: abort(403) + + comment = g.db.query(Comment).filter_by(id=comment_id).first() + if not comment: abort(400) + u = comment.author + if u.admin_level > 0: abort(403) + + u.ban(admin=v, reason="1 day ban award", days=1) + send_notification(1046, u, f"Your Drama account has been suspended for 1 day for the following reason:\n\n> 1 day ban award") + + ma=ModAction( + kind="exile_user", + user_id=v.id, + target_user_id=u.id, + board_id=1, + note=f'reason: "1 day ban award", duration: 1 day' + ) + g.db.add(ma) + + v.banawards -= 1 + g.db.add(v) + + comment.banaward = v.username + g.db.add(comment) + + return "", 204 + @app.route("/api/v1/post//comment/", methods=["GET"]) def comment_cid_api_redirect(cid=None, pid=None): redirect(f'/api/v1/comment/') diff --git a/ruqqus/routes/posts.py b/ruqqus/routes/posts.py index 4fb39be46..71422472d 100644 --- a/ruqqus/routes/posts.py +++ b/ruqqus/routes/posts.py @@ -31,6 +31,38 @@ BUCKET = "i.ruqqus.ga" with open("snappy.txt", "r") as f: snappyquotes = f.read().split("{[para]}") + +@app.route("/banaward/", methods=["POST"]) +@auth_required +def banaward(post_id, v): + + if v.banawards != 1 and v.banawards != 2: abort(403) + + post = g.db.query(Submission).filter_by(id=post_id).first() + if not post: abort(400) + u = post.author + if u.admin_level > 0: abort(403) + + u.ban(admin=v, reason="1 day ban award", days=1) + send_notification(1046, u, f"Your Drama account has been suspended for 1 day for the following reason:\n\n> 1 day ban award") + + ma=ModAction( + kind="exile_user", + user_id=v.id, + target_user_id=u.id, + board_id=1, + note=f'reason: "1 day ban award", duration: 1 day' + ) + g.db.add(ma) + + v.banawards -= 1 + g.db.add(v) + + post.banaward = v.username + g.db.add(post) + + return "", 204 + @app.route("/api/publish/", methods=["POST"]) @is_not_banned @validate_formkey diff --git a/ruqqus/routes/users.py b/ruqqus/routes/users.py index a9e37d531..c4092177d 100644 --- a/ruqqus/routes/users.py +++ b/ruqqus/routes/users.py @@ -17,32 +17,6 @@ beams_client = PushNotifications( secret_key=PUSHER_KEY, ) -@app.route("/banaward/", methods=["POST"]) -@auth_required -def banaward(user_id, v): - - if v.banawards != 1 and v.banawards != 2: abort(403) - user = g.db.query(User).filter_by(id=user_id).first() - if not user: abort(400) - if user.admin_level > 0: abort(403) - - user.ban(admin=v, reason="1 day ban award", days=1) - - send_notification(1046, user, f"Your Drama account has been suspended for 1 day for the following reason:\n\n> 1 day ban award") - - ma=ModAction( - kind="exile_user", - user_id=v.id, - target_user_id=user.id, - board_id=1, - note=f'reason: "1 day ban award", duration: 1 day' - ) - g.db.add(ma) - - user.banawards -= 1 - g.db.add(user) - return "", 204 - @app.route("/api/v1/user/", methods=["GET"]) @auth_desired @api("read") diff --git a/ruqqus/templates/comments.html b/ruqqus/templates/comments.html index aa6f4e3e6..5939a6739 100644 --- a/ruqqus/templates/comments.html +++ b/ruqqus/templates/comments.html @@ -113,6 +113,7 @@