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
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'))
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
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'))