Exemple #1
0
def get_recs(user_id):
    conn = get_db_conn()
    cur = conn.cursor()
    LIMIT_CONST = 0.7
    print user_id
    print LIMIT_CONST
    # Start new code
    outer_dict = []
    cur.execute("SELECT movie_id FROM users_rate WHERE user_id = %s and rating = 1", (user_id,))
    movies = cur.fetchall()
    for movie in movies:
        movie_id = movie[0]

        cur.execute(
            "SELECT movie_id FROM reviews WHERE critic_name IN (SELECT critic_name FROM reviews WHERE movie_id = %s and reviews.score >=%s) AND reviews.score >= %s AND reviews.movie_id NOT IN (SELECT movie_id FROM users_rate WHERE user_id = %s and rating = 1) AND reviews.movie_id NOT IN (SELECT movie_id FROM users_rate WHERE user_id = %s and rating = 0)",
            (movie_id, LIMIT_CONST, LIMIT_CONST, user_id, user_id),
        )
        names = cur.fetchall()
        random.shuffle(names)
        cur.execute("SELECT title FROM movies WHERE id = %s", (movie_id,))
        indextuple = cur.fetchone()
        i = 0
        inner = []
        for row in names:
            if i == 10:
                break
            movie_id2 = row[0]
            cur.execute("SELECT title, year, poster_url,synopsis FROM movies WHERE movies.id = %s", (movie_id2,))
            rows2 = cur.fetchall()
            inner.append(rows2)
            i = i + 1
        outer_dict.append((indextuple, inner))
    cur.close()
    return outer_dict
Exemple #2
0
def index():
    if request.method == 'GET':
        user_id = session.get('user_id')
        if user_id is not None:
            conn = get_db_conn()
            cursor = conn.cursor()
            cursor.execute("SELECT id, title, year, poster_url,synopsis FROM movies WHERE id NOT IN " +
                               "(SELECT movie_id FROM users_rate WHERE user_id = %s) " +
                           "ORDER BY random() LIMIT 1", (user_id,))
            result = cursor.fetchone()
            if result is None:
                return "Error, could not find movie. Please try again later", 500

            if 'rating' in request.args and 'movie_id' in request.args:
                movie_id = int(request.args['movie_id'])
                rating = int(request.args['rating'])
                cursor.execute("SELECT 1 FROM users_rate WHERE user_id = %s and movie_id = %s", (user_id, movie_id))
                if cursor.fetchone() is None:
                    cursor.execute("INSERT INTO users_rate VALUES (%s, %s, %s)", (user_id, movie_id, rating))
                else:
                    cursor.execute("UPDATE users_rate SET rating = %s WHERE user_id = %s and movie_id = %s",
                                   (rating, user_id, movie_id))
                conn.commit()
            cursor.close()

            return render_template('index.html', movie_id=result[0], title=result[1], year=result[2], poster_url=result[3],synopsis=result[4])
        else:
            return redirect(url_for('landing'))
Exemple #3
0
def fb():
    # We need response object for the WerkzeugAdapter.
    response = make_response()
    
    # print authomatic
    # Log the user in, pass it the adapter and the provider name.
    result = authomatic.login(WerkzeugAdapter(request, response), 'fb')
    print result
    
    # If there is no LoginResult object, the login procedure is still pending.
    if result:
        if result.user:
            # We need to update the user to get more info.
            result.user.update()
            conn = get_db_conn()
            cursor = conn.cursor()
            cursor.execute("SELECT id, pw_hash FROM users where email = %s LIMIT 1", (result.user.name,))
            user = cursor.fetchone()
            print user
            if user is None:
                cursor.execute("INSERT into users (email, pw_hash) VALUES (%s, %s)", (result.user.name, result.user.id))
                conn.commit()
                cursor.execute("SELECT id FROM users WHERE email = %s", (result.user.name,))
                user = cursor.fetchone()
            session['user_id'] = user[0]
            session['email'] = result.user.name
            cursor.close()
            conn.close()
        # The rest happens inside the template.
            return redirect(url_for('index'))
        else :
            return redirect(url_for('landing'))
    return response
Exemple #4
0
def signup():
    if request.method == 'GET':
        user_id = session.get('user_id')
        if user_id is None:
            return render_template('signup.html')
        else :
            return redirect(url_for('index'))
    else:
        if request.form['password'] != request.form['password_conf']:
            return redirect(url_for('signup'))

        email = str(request.form['email'])
        conn = get_db_conn()
        cursor = conn.cursor()
        cursor.execute("SELECT id, pw_hash FROM users where email = %s LIMIT 1", (email,))
        result = cursor.fetchone()
        if result is not None:
            print "User exists"
            return redirect(url_for('login'))

        cursor.execute("INSERT into users (email, pw_hash) VALUES (%s, %s)", (email, request.form['password']))
        conn.commit()
        cursor.execute("SELECT id FROM users WHERE email = %s", (email,))
        res = cursor.fetchone()
        cursor.close()
        conn.close()

        session['user_id'] = res[0]
        session['email'] = email

        return redirect(url_for('index'))