Example #1
0
def send_drift(gid):
    # 发起索要图书请求
    # 1.检查是不是自己的
    # 2.检查鱼豆是否大于1
    # 3.是否满足,成功索要两本书,必须成功送出一本书
    gift = Gift.query.filter_by(id=gid).first_or_404()
    if gift.is_myself_gift(current_user.id):
        flash('这本书是你自己的^_^, 不能向自己索要书籍噢')
        return redirect(url_for('web.book_detail', isbn=gift.isbn))
    if not current_user.can_send_drift():
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)
    wtform = DriftForm(request.form)
    # 步入正文
    if request.method == 'POST' and wtform.validate():
        drift = Drift()
        drift.save_to_drift(wtform, gift, current_user.id,
                            current_user.nickname)
        send_mail(gift.user.email,
                  '有人想要您上传的图书: 《' + gift.book['title'] + '》',
                  'email/get_gift.html',
                  wisher=current_user,
                  gift=gift)
        return redirect(url_for('web.pending'))
    user = User.query.filter_by(id=gift.uid).first_or_404()
    viewmodel = UsersSummary(user)
    return render_template('drift.html',
                           gifter=viewmodel.first,
                           user_beans=current_user.beans,
                           form=wtform)
Example #2
0
def send_drift(gid):
    gift = Gift.query.get_or_404(gid)
    if gift.is_myself_gift(current_user.id):
        return redirect(url_for('web.book_detail', isbn=gift.isbn))
    if not current_user.can_send_drift():
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)

    wtform = DriftForm(request.form)
    if request.method == 'POST' and wtform.validate():
        drift = Drift()
        drift.save_to_drift(wtform, gift, current_user.id,
                            current_user.nickname)
        send_mail(gift.user.email,
                  '有人想要您上传的图书: 《' + gift.book['title'] + '》',
                  'email/get_gift.html',
                  wisher=current_user,
                  gift=gift)
        return redirect(url_for('web.pending'))
    user = User.query.filter_by(id=gift.uid).first_or_404()
    viewmodel = UsersSummary(user)
    return render_template('drift.html',
                           gifter=viewmodel.first,
                           user_beans=current_user.beans,
                           form=wtform)
Example #3
0
def send_drift(gid):
    current_gift = Gift.query.get_or_404(gid)

    if current_gift.is_yourself_gift(current_user.id):
        flash("这本书是你自己的,不能向自己索要")
        return redirect(url_for('web.book_detail'), isbn=current_gift.isbn)
    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)

    form = DriftForm(request.form)

    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email,
                  '有人想要一本书',
                  'email/get_gift.html',
                  wisher=current_user,
                  gift=current_gift)
        # return redirect(url_for('web.pending'))

    gifter = current_gift.user.summary

    return render_template('drift.html',
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Example #4
0
def Dlog():
    if request.method == "POST":
        form = LoginForm(request.values)
        if form.validate():
            b = Blogger.query.filter_by(email=form.email.data).first()
            if b and b.check_pwd(form.password.data):
                if b.role == "Faith":
                    if not current_app.config.get('LOGIN_EMAIL'):
                        set_login(b)
                        emit('receive',
                             trueReturn(data=url_for('admin.index')),
                             namespace='/chat',
                             broadcast=True)
                        return jsonify(falseReturn())
                    token = b.generate_token()
                    login_time = datetime.now()
                    send_mail(to=form.email.data,
                              subject='登录确认',
                              template='email/confirm_login',
                              user=b,
                              token=token,
                              login_time=login_time)
                    return jsonify(trueReturn(msg='E-mail sent successfully!'))
                else:
                    return jsonify(falseReturn(msg='Authentication failure'))
            else:
                return jsonify(
                    falseReturn(msg="Email doesn't exist or Password error!"))
        else:
            return jsonify(falseReturn(msg=get_errors_msg(form.errors)))

    if request.method == "GET":
        return render_template('Dlog.html')
Example #5
0
def comment():
    form = CommentForm(request.values)
    if form.validate():
        email = form.email.data
        guest = Guest.query.filter_by(guest_email=email).first()
        if guest:
            if guest.state and not guest.black:  # 检验成功,未被拉黑
                c = Comment()
                res = c.add_comment(form, guest.nickname, yes=True)
                if res is not None:
                    return jsonify(trueReturn(msg="留言成功!", data=res))
                if res is None:
                    return jsonify(falseReturn(msg='网络错误'))
            if guest.black:
                return jsonify(falseReturn(msg='此邮箱在小黑屋反省中...'))
        if not guest or not guest.state:
            c = Comment()
            res = c.add_comment(form)
            token = Guest.generate_token({"email": email, "id": c.id})
            send_mail(to=email,
                      subject="Dlog留言",
                      template='email/confirm_comment',
                      token=token)
            return jsonify(
                trueReturn(msg='此邮箱为第一次留言,为确认是否有效,请登录邮箱查看并确认,后续不再检验.'),
                data="")
    if not form.validate():
        msg = get_errors_msg(form.errors)
        return jsonify(falseReturn(msg=msg))
Example #6
0
def forget_password_request():
    wtform=EmailForm(request.form)
    if request.method=='POST' and wtform.validate():
        user=User.query.filter_by(email=wtform.email.data).first_or_404()
        send_mail(wtform.email.data,'重置密码','email/reset_password.html',user=user,token=user.generate_token())
        return render_template('email_has_send.html')
    return render_template('auth/forget_password_request.html',form=wtform)
Example #7
0
def satisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书,请加入到赠送清单,添加前请确保可以赠送此书')
    else:
        send_mail(wish.user.email, '有人想送你一本书', 'email/satisify_wish.html', wish=wish, gift=gift)
        flash('已向他/她发送了一封邮件,如果她/他愿意接收你的赠送,你会收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Example #8
0
def satisfy_wish(wid):
    wish = Wish.query.filter(Wish.id == wid, Wish.uid != current_user.id, Wish.status == 1,
                             Wish.launched == False).first_or_404()
    gift = Gift.query.filter_by(isbn=wish.isbn, uid=current_user.id, launched=False).first()
    if not gift:
        flash('你还没有上传此书,请点击“加入到赠送清单”添加此书。添加前,请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email, '有人想送你一本书:《' + gift.book['title'] + '》', 'email/satisify_wish.html', wish=wish,
                  gift=gift)
        flash('已向他/她发送了一封邮件,如果他/她愿意接受你的赠送,你将收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Example #9
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()

            send_mail(form.email.data, '重置您的密码',
                      'email/reset_password.html', user=user,
                      token=user.generate_token())
            flash('邮件已发送至'+account_email+',请及时查收')

    return render_template('auth/forget_password_request.html', form=form)
Example #10
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            from app.lib.email import send_mail
            send_mail(form.email.data,
                      '重置你的密码',
                      'email/reset_password.html',
                      user=user,
                      token=user.generate_token())
            flash('一封邮件已发送到邮箱' + account_email + ',请及时查收')
            # return redirect(url_for('web.login'))
    return render_template('auth/forget_password_request.html', form=form)
Example #11
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == "POST" and form.validate():
        email = form.email.data
        user = User.query.filter_by(email=email).first()
        if user:
            token = user.generate_token()
            send_mail(email,
                      "【重置密码】",
                      'email/reset_passwd.html',
                      user=user,
                      token=token)
            flash('一封邮件已发送到邮箱' + email + ',请及时查收')
        else:
            flash("输入的邮箱有误,请重新输入")
    return render_template('auth/forget_password_request.html', form=form)
Example #12
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            from app.lib.email import send_mail
            send_mail(form.email.data, "重置你的密码",
                      'email/reset_password.html',
                      user=user,
                      tokrn=user.generate_token()
                      )
            flash('一份邮件已成功发送')
            # try:
            #     user = User.query.filter_by(email=account_email).first_or_404()
            # except Exception as e:
            #     return render_template('404.html')
    return render_template('auth/forget_password_request.html', form=form)
Example #13
0
def forget_password_request():
    form = EmailForm(request.form)
    if form.validate():
        account_email = form.email.data
        user = User.getUserByEmail(account_email)
        if user is not None:
            send_log('/v1/auth/reset/password')
            send_mail(account_email,
                      "重置你的密码",
                      'email/reset_password.html',
                      user=user,
                      token=user.generate_token())
            return jsonify({"code": 200})
        else:
            send_log('/v1/auth/reset/password')
            return jsonify({"code": -1, "errMsg": "邮箱不存在"})
    else:
        send_log('/v1/auth/reset/password')
        return jsonify({"code": -1, "errMsg": form.errors})