def render_specific_search_results(keyword): """Serve up search results based on user's specific input parameters""" current_user = crud.get_user_by_email(session['email']) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() search_result = crud.get_movies_by_title(keyword) if search_result != None: flash(f" {keyword}") session['render-search-results'] = "many" return render_template("homepage.html", user=current_user, user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=search_result) else: flash(f"...crickets chirping.... 🦗") flash(f"try a different search term, {session['name']}?") return redirect('/')
def homepage(): """View homepage.""" all_genres = crud.get_stored_genres() session['render-search-results'] = "splash" try: session['logged_in'] if session['logged_in'] == True: login_user = crud.get_user_by_email(session['email']) user_preferred_genres = crud.get_user_genre_preferences_active( login_user) # flash(f"enter your search criteria here") return render_template('homepage.html', user=login_user, all_genres=GENRES, user_genres=user_preferred_genres, languages=LANGUAGES) else: return render_template('base.html') except KeyError: return render_template('base.html')
def discovery_page(): """View search results page for recommendation(s)""" current_user = crud.get_user_by_email(session['email']) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) genre_list = request.form.get( 'genre-input' ) # comma-separated list of Netflix genre id's (see genre endpoint for list) # #strip out the curly braces # genre_list = genre_list.replace('{','') # genre_list = genre_list.replace('}','') movie_or_series = request.form.get( 'movie-or-series-input') # movie or series? start_rating = request.form.get('start-rating-input') # imdb rating 0-10 # end_rating = request.form.get('end-rating-input') # imdb rating 0-10 # start_year = request.form.get('date-range-start') # 4 digit year end_year = request.form.get('date-range-end') # 4 digit year # subtitle = request.form.get('preferred-subtitle') audio = request.form.get('preferred-audio') # *ONE* valid language type search_results = crud.discover_films_by_parameters(current_user, movie_or_series, audio, end_year, start_rating, genre_list) #new_year, if session['logged_in'] == True: if search_results: session['render-search-results'] = "many" return render_template("homepage.html", user=current_user, user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=search_results) else: flash("please update your search criteria") session['render-search-results'] = "update-search-criteria" return render_template("recommendations.html", user=current_user, user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=search_results) else: flash("please try again") return redirect('/')
def show_user(): """Show details for one particular user.""" login_user = crud.get_user_by_email(session['email']) all_genres = crud.get_stored_genres() user_preferred_genres = crud.get_user_genre_preferences_active(login_user) if login_user: return render_template('profile.html', user=login_user, all_genres=GENRES, user_genres=user_preferred_genres, languages=LANGUAGES) else: flash(f'Your account was not found, please login or create an account') session['name'] = 'no-account-found-please-create-account' return redirect('/')
def get_user_preferences(): """Get the most recent group of a user's current preferences""" current_user = crud.get_user_by_email(session['email']) current_preferences = crud.get_current_user_preferences(current_user) current_preferred_genres = crud.get_user_genre_preferences_active( current_user) return jsonify({ 'user': str(current_user.id), 'subtitle': str(current_preferences.subtitle), 'audio': str(current_preferences.audio), 'syear': str(current_preferences.syear), 'eyear': str(current_preferences.eyear), 'duration': str(current_preferences.duration), 'matlevel': str(current_preferences.matlevel), 'location': str(current_preferences.viewing_location_id), 'genres': str(current_preferred_genres) })
def show_title(filmid): """Show full details on a particular title.""" title = crud.get_full_details_with_movie_id(filmid) current_user = crud.get_user_by_email(session['email']) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() session['render-search-results'] = "one" return render_template( 'homepage.html', user=current_user, # user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=title)
def get_titles_with_original_language(iso_639_1_id, english_name): """Show results for a particular original recorded language.""" current_user = crud.get_user_by_email(session['email']) films_of_genre = crud.get_titles_with_original_language(iso_639_1_id) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() flash(f"{english_name}") session['render-search-results'] = "many" return render_template( 'homepage.html', user=current_user, # user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=films_of_genre)
def show_all_films_by_person_name(person_id, person_name): """Show film results for a particular person.""" filmography = crud.get_titles_with_person(person_id) current_user = crud.get_user_by_email(session['email']) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() flash(f'{person_name}') session['render-search-results'] = "many" return render_template( 'homepage.html', user=current_user, # user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=filmography)
def show_top10_films_by_keyword(keyword): """Show films results for a particular keyword.""" keyword_id = crud.get_keyword_id_by_name(keyword) current_user = crud.get_user_by_email(session['email']) films_of_keyword = crud.get_titles_with_keyword(keyword_id) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() flash(f"{keyword}") session['render-search-results'] = "many" return render_template( 'homepage.html', user=current_user, # user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=films_of_keyword)
def show_films_by_genre_name(genre_id, genre_name): """Show top-10 best rated films results for a particular genre.""" genre_name = unquote(genre_name) current_user = crud.get_user_by_email(session['email']) films_of_genre = crud.get_titles_with_genre(genre_id) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() flash(f"{genre_name}") session['render-search-results'] = "many" return render_template( 'homepage.html', user=current_user, # user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=films_of_genre)
def get_films_from_a_given_studio(studio_id, studio_name): """Show films results from a particular production studio.""" studio = crud.get_studio_info_from_name(studio_name) films_from_studio = crud.get_titles_from_studio(studio_id) current_user = crud.get_user_by_email(session['email']) # current_user_prefs = get_current_user_preferences(current_user) current_user_preferred_genres = crud.get_user_genre_preferences_active( current_user) all_genres = crud.get_stored_genres() flash(f"{studio_name}") session['render-search-results'] = "many" return render_template( 'homepage.html', user=current_user, # user_genres=current_user_preferred_genres, all_genres=GENRES, languages=LANGUAGES, current_recommendations=films_from_studio, studio=studio)