添加举报|完善功能

merge-requests/3/head
bug_creator 3 years ago
parent e3376bbc59
commit b96a9d54af

@ -19,3 +19,12 @@ def send_email(to, subject, template, **kwargs):
thr = Thread(target=send_async_email, args=[app, msg])
thr.start()
return thr
def send_email_text(to, subject, text, **kwargs):
app = current_app._get_current_object()
msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + ' ' + subject,
sender=app.config['FLASKY_MAIL_SENDER'], recipients=to)
msg.body =text
thr = Thread(target=send_async_email, args=[app, msg])
thr.start()
return thr

@ -28,5 +28,12 @@ class UploadPhotoForm(FlaskForm):
class CommentForm(FlaskForm):
body = TextAreaField('Enter your comment', render_kw={"placeholder": "Enter your comment"}, validators=[DataRequired()])
body = TextAreaField('Enter your comment', render_kw={"placeholder": "Enter your comment"},
validators=[DataRequired()])
submit = SubmitField('Submit')
class ReportForm(FlaskForm):
body = TextAreaField('Report comment', render_kw={"placeholder": "Enter your report comment"},
validators=[DataRequired()])
submit = SubmitField('Submit')

@ -1,5 +1,8 @@
import os
import smtplib
from datetime import datetime
from email.header import Header
from email.mime.text import MIMEText
from operator import or_
from flask import render_template, redirect, url_for, flash, request, \
current_app, make_response, jsonify
@ -8,8 +11,9 @@ from sqlalchemy.sql.functions import func
from werkzeug.utils import secure_filename
from . import main
from .forms import UploadPhotoForm, CommentForm, PostMdForm
from .forms import UploadPhotoForm, CommentForm, PostMdForm, ReportForm
from .. import db, csrf, cache
from ..email import send_email_text
from ..models import Permission, User, Post, Comment, Notification, Like, Transaction, Activity, Collect, Want, \
Question, Savequestion, Saveanswer
from ..decorators import permission_required
@ -976,7 +980,7 @@ def edit_answer_md(answer_id):
else:
is_anonymous = False
body_html = request.form['test-editormd-html-code']
answer.title=title
answer.title = title
answer.body = body
answer.body_html = body_html
answer.is_anonymous = is_anonymous
@ -1107,3 +1111,24 @@ def invite(question_id, user_id):
db.session.add(notification)
db.session.commit()
return redirect(url_for('.invite_list', question_id=question_id))
@main.route('/report/<type>/<id>/',methods=['GET','POST'])
def report(type, id):
form=ReportForm()
if(request.method=='POST'):
url = ""
user_url = url_for(".user", username=current_user.username)
if (type == "answer"):
url = url_for(".post", id=id)
elif (type == "question"):
url = url_for(".view_question", question_id=id)
try:
send_email_text(current_app.config["ADMIN_EMAIL"], "举报消息",'用户({})举报({}),内容如下:\n{}'.format(user_url, url,form.body.data))
flash("举报成功")
return redirect(".index")
except smtplib.SMTPException:
flash("举报失败")
return redirect(".index")
else:
return render_template("report.html",form=form,id=id,type=type)

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{{ url_for(".report",id=id,type=type) }}" method="post">
{{ form.csrf_token }}
{{ form.body }}
{{ form.submit }}
</form>
</body>
</html>

@ -8,14 +8,14 @@ basedir = os.path.abspath(os.path.dirname(__file__))
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY') or 'ec94cr32ffs2123ffd3fg3dsa2r39cfc6d796ae3029594d'
MAIL_SERVER = 'smtp.qq.com'
MAIL_PORT = 587
MAIL_SERVER = 'smtp.163.com'
MAIL_PORT = 25
MAIL_USE_TLS = True
MAIL_USE_SSL = False
MAIL_USERNAME = '609899054@qq.com'
MAIL_PASSWORD = 'hnktohctbgwhbchh'
MAIL_USERNAME = 'xcvuadho@163.com'
MAIL_PASSWORD = 'PJOHSGYQYCYOZXYW'
FLASKY_MAIL_SUBJECT_PREFIX = '[Student Exchange Forum of BJUT]'
FLASKY_MAIL_SENDER = '609899054@qq.com'
FLASKY_MAIL_SENDER = 'xcvuadho@163.com'
FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')
SQLALCHEMY_TRACK_MODIFICATIONS = False
FLASKY_POSTS_PER_PAGE = 20
@ -23,6 +23,8 @@ class Config:
FLASKY_COMMENTS_PER_PAGE = 30
FLASKY_LIKER_PER_PAGE = 50
CACHE_TYPE = "simple"
ADMIN_EMAIL=['1148636961@qq.com']
@staticmethod
def init_app(app):

Binary file not shown.
Loading…
Cancel
Save