Esempio n. 1
0
def login():
    """Log in a registered user by adding the user id to the session."""
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        db = get_db()
        error = None
        user = db.execute(
            'SELECT * FROM user WHERE username = ?', (username,)
        ).fetchone()

        if user is None:
            error = 'Incorrect username.'
        elif not check_password_hash(user['password'], password):
            error = 'Incorrect password.'

        if error is None:
            # store the user id in a new session and return to the index
            session.clear()
            session['user_id'] = user['id']
            return redirect(url_for('index'))

        flash(error)

    return render_template('auth/login.html')
Esempio n. 2
0
def load_logged_in_user():
    """If a user id is stored in the session, load the user object from
    the database into ``g.user``."""
    user_id = session.get('user_id')

    if user_id is None:
        g.user = None
    else:
        g.user = get_db().execute(
            'SELECT * FROM user WHERE id = ?', (user_id,)
        ).fetchone()
Esempio n. 3
0
def index():
    """Show all the moods, most recent first."""
    if g.user != None:
        db = get_db()

        moods = db.execute(
            'SELECT m.id, mood_type, created, author_id, username'
            ' FROM mood m JOIN user u ON m.author_id = u.id'
            ' WHERE m.author_id = ?', (g.user['id'], )).fetchall()

        mood_counter = {
            'Happy': 2,
            'Surprise': 2,
            'Angry': 2,
            'Neutral': 4,
            'Disgust': 5,
            'Sad': 1,
            'Fear': 2,
            'Contempt': 3
        }

        for mood in moods:
            if (mood['mood_type'] in mood_counter):
                mood_counter[mood['mood_type']] += 1

        frequent_mood = max(mood_counter.items(),
                            key=operator.itemgetter(1))[0]

        for key, value in mood_counter.items():
            mood_counter[key] = value / (len(moods) + 21) * 100

        last_mood = None
        if len(moods) != 0:
            last_mood = moods[-1]

        return render_template('dashboard/index.html',
                               moods=moods,
                               moods_size=len(moods),
                               last_mood=last_mood,
                               frequent_mood=frequent_mood,
                               mood_distribution=mood_counter)

    return render_template('about.html')
Esempio n. 4
0
def register():
    """Register a new user.
    Validates that the username is not already taken. Hashes the
    password for security.
    """
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        name = request.form['name']
        age = request.form['age']
        gender = request.form['gender']

        db = get_db()
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif db.execute(
            'SELECT id FROM user WHERE username = ?', (username,)
        ).fetchone() is not None:
            error = 'User {0} is already registered.'.format(username)

        if error is None:
            # the name is available, store it in the database and go to
            # the login page
            db.execute(
                'INSERT INTO user (username, password, name, age, gender) VALUES (?, ?, ?, ?, ?)',
                (username, generate_password_hash(password), name, age, gender)
            )
            db.commit()

            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/register.html')
Esempio n. 5
0
def create():
    """Create a new post for the current user."""
    if request.method == 'POST':
        f = request.form['file']

        f += "======================"
        base64_image_str = f[f.find(",") + 1:]

        print(base64_image_str)

        imgdata = base64.b64decode(base64_image_str)
        filename = 'Moody/test_image.png'

        with open(filename, 'wb') as fil3:
            fil3.write(imgdata)

        im = Image.open("Moody/test_image.png")
        rgb_im = im.convert('RGB')
        rgb_im.save('Moody/test_image.jpg')

        mood_type = ModelDriver.do_all(filename)
        mood_type = str(mood_type)
        print(mood_type)

        if not mood_type:
            error = 'mood_type is required.'

        db = get_db()
        db.execute('INSERT INTO mood (mood_type, author_id)'
                   ' VALUES (?,  ?)', (mood_type, g.user['id']))
        db.commit()
        return redirect(url_for('dashboard.index'))

    return render_template('dashboard/create.html')


#commenting out get post route

# def get_post(id, check_author=True):
#     """Get a post and its author by id.
#     Checks that the id exists and optionally that the current user is
#     the author.
#     :param id: id of post to get
#     :param check_author: require the current user to be the author
#     :return: the post with author information
#     :raise 404: if a post with the given id doesn't exist
#     :raise 403: if the current user isn't the author
#     """
#     post = get_db().execute(
#         'SELECT p.id, title, body, created, author_id, username'
#         ' FROM post p JOIN user u ON p.author_id = u.id'
#         ' WHERE p.id = ?',
#         (id,)
#     ).fetchone()

#     if post is None:
#         abort(404, "Post id {0} doesn't exist.".format(id))

#     if check_author and post['author_id'] != g.user['id']:
#         abort(403)

#     return post

# Commenting out update and delete routes

# @bp.route('/<int:id>/update', methods=('GET', 'POST'))
# @login_required
# def update(id):
#     """Update a post if the current user is the author."""
#     post = get_post(id)

#     if request.method == 'POST':
#         title = request.form['title']
#         body = request.form['body']
#         error = None

#         if not title:
#             error = 'Title is required.'

#         if error is not None:
#             flash(error)
#         else:
#             db = get_db()
#             db.execute(
#                 'UPDATE post SET title = ?, body = ? WHERE id = ?',
#                 (title, body, id)
#             )
#             db.commit()
#             return redirect(url_for('blog.index'))

#     return render_template('blog/update.html', post=post)

# @bp.route('/<int:id>/delete', methods=('POST',))
# @login_required
# def delete(id):
#     """Delete a post.
#     Ensures that the post exists and that the logged in user is the
#     author of the post.
#     """
#     get_post(id)
#     db = get_db()
#     db.execute('DELETE FROM post WHERE id = ?', (id,))
#     db.commit()
#     return redirect(url_for('blog.index'))