示例#1
0
def get_movies(repo: AbstractRepository):
    movies = repo.get_movies()

    if movies is None:
        pass

    return movies
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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)
示例#6
0
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