def get_movies(repo: AbstractRepository): movies = repo.get_movies() if movies is None: pass return movies
def genre_to_dict(genre: Genre, repo: AbstractRepository): genre_dict = { 'name': genre, 'genre_asso_movies': [movie.rank for movie in repo.get_movies() if genre in movie.genres] } return genre_dict
def get_director_recommendation(repo: AbstractRepository, num_of_recommendations: int, user): director_movies = [] director_recommendations = [] if len(user.watched_movies) > 0: director = get_random_watched_movie(user)['director'] for movie in repo.get_movies(): if movie.director == director: director_movies.append(movie) for num in range(num_of_recommendations): director_recommendations.append(director_movies[random.randrange(len(director_movies))]) return director_recommendations
def get_genre_recommendation(repo: AbstractRepository, num_of_recommendations: int, user): genre_movies = [] genre_recommendations = [] if len(user.watched_movies) > 0: genre = get_random_watched_movie(user)['genres'][0] for movie in repo.get_movies(): if movie.genres[0] == genre: genre_movies.append(movie) for num in range(num_of_recommendations): genre_recommendations.append(genre_movies[random.randrange(len(genre_movies))]) return genre_recommendations
def get_random_movies(quantity, repo: AbstractRepository): movie_count = repo.get_number_of_movies() if quantity >= movie_count: quantity = movie_count - 1 # Pick distinct and random movies. random_indexes = random.sample(range(0, movie_count - 1), quantity) random_movies = list() movies = repo.get_movies() for i in random_indexes: random_movies.append(movies[i]) return movies_to_dict(random_movies)
def get_random_movies(quantity, repo: AbstractRepository): movie_count = repo.get_number_of_movies() if quantity >= movie_count: # Reduce the quantity of ids to generate if the repository has an insufficient number of movies. quantity = movie_count - 1 # Pick distinct and random movies. random_indices = random.sample(range(1, movie_count), quantity) random_movies = [] for index in random_indices: random_movies.append(repo.get_movies()[index]) return random_movies