Пример #1
0
def create_link():
    if not current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LinkForm()
    if form.validate_on_submit():
        email = form.email.data
        user = User.query.filter_by(email=email).first()
        if user is None:
            user = User(email=email)
            user.set_token(email)
            db.session.add(user)
            db.session.commit()
        text_msg = f"""
            Login requested for email {user.email},
            unique link is {request.url_root}login/{user.token}
        """
        flash(text_msg)
        try:
            with app.app_context():
                msg = Message(
                    subject="Magic link !!!",
                    sender=app.config.get("MAIL_USERNAME"),
                    recipients=[email],
                    body=text_msg
                )
                mail.send(msg)
        except Exception as e:
            print(e)
        return redirect(url_for('links'))

    return render_template('create_link.html', title='Create link', form=form)
Пример #2
0
def summary():
    form = LinkForm()
    # u = request.args.get("url")
    u = form.link.data
    text, keywords = sum_it_up(u)

    if form.validate_on_submit():
        flash(f'Summarized!', 'success')
    return render_template('summary.html', form=form, text=text, u=u, keywords=keywords)
Пример #3
0
def addlink(language):
    '''
    Allow a user add a new link for a language.
    If link already exits within language, user rating is added.
    Credit: Topics select field
    https://stackoverflow.com/questions/40905579/flask-wtf-dynamic-select-field-with-an-empty-option
    https://stackoverflow.com/questions/28133859/how-to-populate-wtform-select-field-using-mongokit-pymongo
    '''
    form = LinkForm()
    document_language = mongo.db.languages.find_one_or_404(
        {"language": language}, {"topics": 1})
    topics = document_language["topics"]
    form.topic.choices = [("", "-select-")] + [(topic, topic)
                                               for topic in topics]
    if form.validate_on_submit():
        existing_link = mongo.db.links.find_one({
            "language": language,
            "url": form.url.data
        })
        if existing_link:
            print(existing_link["_id"])
            mongo.db.links.update_one(
                {"_id": ObjectId(existing_link["_id"])},
                {"$push": {
                    "ratings": int(form.rate.data)
                }})
            flash(
                f'Link exists: {existing_link["topic"]} - {existing_link["link_type"]} - {existing_link["link_name"]}. Your rating was added!'
            )
            return redirect(url_for("links", language=language))
        else:
            mongo.db.links.insert_one({
                "language": language,
                "topic": form.topic.data,
                "url": form.url.data,
                "link_name": form.name.data,
                "link_type": form.link_type.data,
                "description": form.description.data,
                "check": False,
                "flag": False,
                "ratings": [int(form.rate.data)]
            })
            flash("Perfect - link added!")
            return redirect(url_for("links", language=language))
    elif request.method == "GET":
        pass
    else:
        flash("Oops - check fields!", "error")
    return render_template("addlink.html",
                           form=form,
                           language=language,
                           sample1=session["sample1"],
                           sample2=session["sample2"],
                           sample3=session["sample3"],
                           sample4=session["sample4"],
                           quote=session["quote"])
Пример #4
0
def new_link():
    form = LinkForm()
    if form.validate_on_submit():
        name = form.name.data
        url = form.url.data
        link = Link(name=name, url=url)
        db.session.add(link)
        db.session.commit()
        flash('Link created.', 'success')
        return redirect(url_for('.manage_link'))
    return render_template('admin/new_link.html', form=form)
Пример #5
0
def edit_link(link_id):
    form = LinkForm()
    link = Link.query.get_or_404(link_id)
    if form.validate_on_submit():
        link.name = form.name.data
        link.url = form.url.data
        db.session.commit()
        flash('Link updated.', 'success')
        return redirect(url_for('.manage_link'))
    form.name.data = link.name
    form.url.data = link.url
    return render_template('admin/edit_link.html', form=form)
Пример #6
0
def summary():
    form = LinkForm()
    u = request.form.getlist('link')
    print(u)
    text, keywords = getSum(u)
    print(text, ' ', keywords)
    text = ' '.join(text)
    if form.validate_on_submit():
        flash(f'Summarized!', 'success')
    return render_template('summary.html',
                           form=form,
                           text=text,
                           u1=u[0],
                           u2=u[1],
                           u3=u[2],
                           keywords=keywords)
Пример #7
0
def main():
    form = LinkForm()
    if form.validate_on_submit():
        flash(f'Correct input!', 'success')
        return redirect(url_for('main'))
    return render_template('index.html', form=form)