diff --git a/nyaa/routes.py b/nyaa/routes.py index b597733..dc1c948 100644 --- a/nyaa/routes.py +++ b/nyaa/routes.py @@ -1,6 +1,4 @@ -import flask - -from nyaa import api_handler, app, db, forms, models, template_utils, views +from nyaa import api_handler, app, template_utils, views from nyaa.backend import get_category_id_map DEBUG_API = False @@ -12,61 +10,6 @@ def category_name(cat_id): return ' - '.join(get_category_id_map().get(cat_id, ['???'])) -# Routes start here # - -@app.route('/view//comment//delete', methods=['POST']) -def delete_comment(torrent_id, comment_id): - if not flask.g.user: - flask.abort(403) - torrent = models.Torrent.by_id(torrent_id) - if not torrent: - flask.abort(404) - - comment = models.Comment.query.filter_by(id=comment_id).first() - if not comment: - flask.abort(404) - - if not (comment.user.id == flask.g.user.id or flask.g.user.is_moderator): - flask.abort(403) - - db.session.delete(comment) - db.session.flush() - torrent.update_comment_count() - - url = flask.url_for('torrents.view', torrent_id=torrent.id) - if flask.g.user.is_moderator: - log = "Comment deleted on torrent [#{}]({})".format(torrent.id, url) - adminlog = models.AdminLog(log=log, admin_id=flask.g.user.id) - db.session.add(adminlog) - db.session.commit() - - flask.flash('Comment successfully deleted.', 'success') - - return flask.redirect(url) - - -@app.route('/view//submit_report', methods=['POST']) -def submit_report(torrent_id): - if not flask.g.user: - flask.abort(403) - - form = forms.ReportForm(flask.request.form) - - if flask.request.method == 'POST' and form.validate(): - report_reason = form.reason.data - current_user_id = flask.g.user.id - report = models.Report( - torrent_id=torrent_id, - user_id=current_user_id, - reason=report_reason) - - db.session.add(report) - db.session.commit() - flask.flash('Successfully reported torrent!', 'success') - - return flask.redirect(flask.url_for('torrents.view', torrent_id=torrent_id)) - - # #################################### BLUEPRINTS #################################### def register_blueprints(flask_app): diff --git a/nyaa/templates/view.html b/nyaa/templates/view.html index 291974f..41eb23c 100644 --- a/nyaa/templates/view.html +++ b/nyaa/templates/view.html @@ -156,7 +156,7 @@
{{ comment.created_time.strftime('%Y-%m-%d %H:%M UTC') }} {% if g.user.is_moderator or g.user.id == comment.user_id %} -
+
{% endif %} @@ -195,7 +195,7 @@ rules. Useless reports like "download is slow" or "thanks" can get you banned from the site.
-
+ {{ report_form.csrf_token }} {{ render_field(report_form.reason, class_='form-control', maxlength=255) }}
diff --git a/nyaa/views/torrents.py b/nyaa/views/torrents.py index 1615b05..52d3e29 100644 --- a/nyaa/views/torrents.py +++ b/nyaa/views/torrents.py @@ -177,6 +177,59 @@ def download_torrent(torrent_id): return resp +@bp.route('/view//comment//delete', methods=['POST']) +def delete_comment(torrent_id, comment_id): + if not flask.g.user: + flask.abort(403) + torrent = models.Torrent.by_id(torrent_id) + if not torrent: + flask.abort(404) + + comment = models.Comment.query.filter_by(id=comment_id).first() + if not comment: + flask.abort(404) + + if not (comment.user.id == flask.g.user.id or flask.g.user.is_moderator): + flask.abort(403) + + db.session.delete(comment) + db.session.flush() + torrent.update_comment_count() + + url = flask.url_for('torrents.view', torrent_id=torrent.id) + if flask.g.user.is_moderator: + log = "Comment deleted on torrent [#{}]({})".format(torrent.id, url) + adminlog = models.AdminLog(log=log, admin_id=flask.g.user.id) + db.session.add(adminlog) + db.session.commit() + + flask.flash('Comment successfully deleted.', 'success') + + return flask.redirect(url) + + +@bp.route('/view//submit_report', endpoint='report', methods=['POST']) +def submit_report(torrent_id): + if not flask.g.user: + flask.abort(403) + + form = forms.ReportForm(flask.request.form) + + if flask.request.method == 'POST' and form.validate(): + report_reason = form.reason.data + current_user_id = flask.g.user.id + report = models.Report( + torrent_id=torrent_id, + user_id=current_user_id, + reason=report_reason) + + db.session.add(report) + db.session.commit() + flask.flash('Successfully reported torrent!', 'success') + + return flask.redirect(flask.url_for('torrents.view', torrent_id=torrent_id)) + + @bp.route('/upload', methods=['GET', 'POST']) def upload(): upload_form = forms.UploadForm(CombinedMultiDict((flask.request.files, flask.request.form)))