From 4e177ae5617b8e027410a0ed4201c8e5e03f49db Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 13:50:43 -0800 Subject: [PATCH 01/15] in wave 1: completed functions create_movie and add_to_watched --- viewing_party/party.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 6d34a6b5f..e5d5c23ea 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -1,7 +1,39 @@ # ------------- WAVE 1 -------------------- -def create_movie(title, genre, rating): - pass +def create_movie(movie_title, genre, rating): + movies = {} + + if movie_title == None or genre == None or rating == None : + return None + + movies["title"] = movie_title + movies["genre"] = genre + movies["rating"] = rating + + return movies + +movie_title = "MOVIE_TITLE_1" +genre = "GENRE_1" +rating = "RATING_1" + +# print(create_movie(movie_title, genre, rating)) + +def add_to_watched(user_data, movie): + user_data["watched"].append(movie) + return user_data + +# movie = { +# "title": "MOVIE_TITLE_1", +# "genre": "GENRE_1", +# "rating": "RATING_1" +# } +# user_data = { +# "watched": [] +# } + +# print(add_to_watched(user_data, movie)) + + # ----------------------------------------- # ------------- WAVE 2 -------------------- From 63c6277ca8aec6c47a979d004e5af232cebc6785 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 14:13:39 -0800 Subject: [PATCH 02/15] wave 1:completed and tested function add_to_watchlist --- viewing_party/party.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/viewing_party/party.py b/viewing_party/party.py index e5d5c23ea..33c49e62b 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -33,6 +33,10 @@ def add_to_watched(user_data, movie): # print(add_to_watched(user_data, movie)) +def add_to_watchlist(user_data, movie): + user_data["watchlist"].append(movie) + return user_data + # ----------------------------------------- From 7cbb358805ec1a8f575d95b25191476c549e788f Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 14:45:34 -0800 Subject: [PATCH 03/15] wave 1 completed:finished watch_movie function and passing all tests for first wave --- viewing_party/party.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/viewing_party/party.py b/viewing_party/party.py index 33c49e62b..6046881b4 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -38,6 +38,13 @@ def add_to_watchlist(user_data, movie): return user_data +def watch_movie(user_data, movie_title): + for movie in user_data["watchlist"]: + if movie_title in movie.values(): + user_data["watched"].append(movie) + user_data["watchlist"].remove(movie) + + return user_data # ----------------------------------------- # ------------- WAVE 2 -------------------- From 12fa922de4f6bbd1d90bc4670e6d317298aac2a9 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 14:47:04 -0800 Subject: [PATCH 04/15] finished writing all the tests for wave 1 and passing them --- tests/test_wave_01.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/test_wave_01.py b/tests/test_wave_01.py index 6be6994a5..e188ee7c8 100644 --- a/tests/test_wave_01.py +++ b/tests/test_wave_01.py @@ -4,7 +4,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_successful_movie(): # Arrange movie_title = MOVIE_TITLE_1 @@ -19,7 +19,7 @@ def test_create_successful_movie(): assert new_movie["genre"] == GENRE_1 assert new_movie["rating"] == pytest.approx(RATING_1) -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_title_movie(): # Arrange movie_title = None @@ -32,7 +32,7 @@ def test_create_no_title_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_genre_movie(): # Arrange movie_title = "Title A" @@ -45,7 +45,7 @@ def test_create_no_genre_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_rating_movie(): # Arrange movie_title = "Title A" @@ -58,7 +58,7 @@ def test_create_no_rating_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_user_watched(): # Arrange movie = { @@ -79,7 +79,7 @@ def test_adds_movie_to_user_watched(): assert updated_data["watched"][0]["genre"] == GENRE_1 assert updated_data["watched"][0]["rating"] == RATING_1 -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_user_watchlist(): # Arrange movie = { @@ -100,7 +100,7 @@ def test_adds_movie_to_user_watchlist(): assert updated_data["watchlist"][0]["genre"] == GENRE_1 assert updated_data["watchlist"][0]["rating"] == RATING_1 -@pytest.mark.skip() +# @pytest.mark.skip() def test_moves_movie_from_watchlist_to_empty_watched(): # Arrange janes_data = { @@ -118,13 +118,14 @@ def test_moves_movie_from_watchlist_to_empty_watched(): # Assert assert len(updated_data["watchlist"]) == 0 assert len(updated_data["watched"]) == 1 + assert updated_data["watched"][0]["title"] == MOVIE_TITLE_1 - raise Exception("Test needs to be completed.") + # raise Exception("Test needs to be completed.") # ******************************************************************************************* # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_moves_movie_from_watchlist_to_watched(): # Arrange movie_to_watch = HORROR_1 @@ -142,13 +143,14 @@ def test_moves_movie_from_watchlist_to_watched(): # Assert assert len(updated_data["watchlist"]) == 1 assert len(updated_data["watched"]) == 2 + assert updated_data["watched"][1]["title"] == "It Came from the Stack Trace" - raise Exception("Test needs to be completed.") + # raise Exception("Test needs to be completed.") # ******************************************************************************************* # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_does_nothing_if_movie_not_in_watchlist(): # Arrange movie_to_watch = HORROR_1 From c07bdf15cde7549adb0dfe133c9d6e4a8b0f61cd Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 17:19:04 -0800 Subject: [PATCH 05/15] wave 2: completed get_watched_avg_rating function --- viewing_party/party.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/viewing_party/party.py b/viewing_party/party.py index 6046881b4..9578a6bfd 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -49,6 +49,37 @@ def watch_movie(user_data, movie_title): # ----------------------------------------- # ------------- WAVE 2 -------------------- # ----------------------------------------- +# INTRIGUE_3 = { +# "title": "Zero Dark Python", +# "genre": "Intrigue", +# "rating": 3.0 +# } +# USER_DATA_2 = { +# "watched": [ +# FANTASY_1, +# FANTASY_2, +# FANTASY_3, +# ACTION_1, +# INTRIGUE_1, +# INTRIGUE_2 +# ], +# } + +def get_watched_avg_rating(user_data): + if len(user_data["watched"]) == 0: + return 0 + + ratings_sum = 0 + movies_num = 0 + + for movie in user_data["watched"]: + movies_num += 1 + ratings_sum += movie["rating"] + + average_rating = ratings_sum/movies_num + + return average_rating + # ----------------------------------------- From fadfa51d6e2b4055e0cb920a0d202e282bb3cfb2 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 17:38:48 -0800 Subject: [PATCH 06/15] completed wave 2: completed get_most_watched_genre function --- viewing_party/party.py | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 9578a6bfd..a8b2f8451 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -12,9 +12,9 @@ def create_movie(movie_title, genre, rating): return movies -movie_title = "MOVIE_TITLE_1" -genre = "GENRE_1" -rating = "RATING_1" +# movie_title = "MOVIE_TITLE_1" +# genre = "GENRE_1" +# rating = "RATING_1" # print(create_movie(movie_title, genre, rating)) @@ -49,21 +49,6 @@ def watch_movie(user_data, movie_title): # ----------------------------------------- # ------------- WAVE 2 -------------------- # ----------------------------------------- -# INTRIGUE_3 = { -# "title": "Zero Dark Python", -# "genre": "Intrigue", -# "rating": 3.0 -# } -# USER_DATA_2 = { -# "watched": [ -# FANTASY_1, -# FANTASY_2, -# FANTASY_3, -# ACTION_1, -# INTRIGUE_1, -# INTRIGUE_2 -# ], -# } def get_watched_avg_rating(user_data): if len(user_data["watched"]) == 0: @@ -81,6 +66,25 @@ def get_watched_avg_rating(user_data): return average_rating +def get_most_watched_genre(user_data): + if len(user_data["watched"]) == 0: + return None + + genre_frequency = {} + + for movie in user_data["watched"]: + if movie["genre"] in genre_frequency: + genre_frequency[movie["genre"]] += 1 + else: + genre_frequency[movie["genre"]] = 1 + + max_num_for_genre = max(genre_frequency.values()) + + for genre, frequency in genre_frequency.items(): + if frequency == max_num_for_genre: + return genre + + # ----------------------------------------- # ------------- WAVE 3 -------------------- From cd476f962693216edebb4b80c32f665a208e4c33 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 19:28:24 -0800 Subject: [PATCH 07/15] wave 3: completed get_unique_watched and get_friends_unique_watched functions --- viewing_party/party.py | 76 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/viewing_party/party.py b/viewing_party/party.py index a8b2f8451..416bc28a0 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -89,6 +89,82 @@ def get_most_watched_genre(user_data): # ----------------------------------------- # ------------- WAVE 3 -------------------- # ----------------------------------------- +# USER_DATA_2 = { +# "watched": [ +# "FANTASY_1", +# "FANTASY_2", +# "FANTASY_3", +# "ACTION_1", +# "INTRIGUE_1", +# "INTRIGUE_2" +# ], +# "friends": [ +# { +# "watched": [ +# "FANTASY_1", +# "FANTASY_3", +# "FANTASY_4", +# "HORROR_1", +# ] +# }, +# { +# "watched": [ +# "FANTASY_1", +# "ACTION_1", +# "INTRIGUE_1", +# "INTRIGUE_3", +# ] +# } +# ] +# } + +# def get_unique_watched(user_data): +# user_movies_set = set(user_data["watched"]) +# friends_movies_set = set() + +# for friend in user_data["friends"]: +# # print(f"friend['watched'] converted to a set is{set(friend['watched'])}") +# # print(f"friends_movies_set is {friends_movies_set}") +# friends_movies_set.update(set(friend["watched"])) + +# unique_movies = user_movies_set.difference(friends_movies_set) +# return unique_movies + +# print(get_unique_watched(USER_DATA_2)) + +def get_collective_friends_movies(user_data): + friends_movies_list = [] + + for friend in user_data["friends"]: + for movie in friend["watched"]: + if movie not in friends_movies_list: + friends_movies_list.append(movie) + + return friends_movies_list + + +def get_unique_watched(user_data): + unique_movies = [] + + friends_movies_list = get_collective_friends_movies(user_data) + + for movie in user_data["watched"]: + if movie not in friends_movies_list: + unique_movies.append(movie) + + return unique_movies + +def get_friends_unique_watched(user_data): + unique_movies = [] + + friends_movies_list = get_collective_friends_movies(user_data) + + for movie in friends_movies_list: + if movie not in user_data["watched"]: + unique_movies.append(movie) + + return unique_movies + # ----------------------------------------- From c3810a253081df159b868ce4786e9be52f240207 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 19:29:35 -0800 Subject: [PATCH 08/15] removed all skip marks --- tests/test_wave_02.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_wave_02.py b/tests/test_wave_02.py index 3a588299e..198e395b3 100644 --- a/tests/test_wave_02.py +++ b/tests/test_wave_02.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_calculates_watched_average_rating(): # Arrange janes_data = clean_wave_2_data() @@ -14,7 +14,7 @@ def test_calculates_watched_average_rating(): assert average == pytest.approx(3.58333) assert janes_data == clean_wave_2_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_empty_watched_average_rating_is_zero(): # Arrange janes_data = { @@ -27,7 +27,7 @@ def test_empty_watched_average_rating_is_zero(): # Assert assert average == pytest.approx(0.0) -@pytest.mark.skip() +# @pytest.mark.skip() def test_most_watched_genre(): # Arrange janes_data = clean_wave_2_data() @@ -39,7 +39,7 @@ def test_most_watched_genre(): assert popular_genre == "Fantasy" assert janes_data == clean_wave_2_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_genre_is_None_if_empty_watched(): # Arrange janes_data = { From e6cf248448de6ea2341ab15d95199201be78cd73 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 19:36:16 -0800 Subject: [PATCH 09/15] removed all skip marks --- tests/test_wave_03.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/test_wave_03.py b/tests/test_wave_03.py index 046429360..a82fa722d 100644 --- a/tests/test_wave_03.py +++ b/tests/test_wave_03.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_my_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -16,7 +16,7 @@ def test_my_unique_movies(): assert INTRIGUE_2 in amandas_unique_movies assert amandas_data == clean_wave_3_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_my_not_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -28,7 +28,7 @@ def test_my_not_unique_movies(): # Assert assert len(amandas_unique_movies) == 0 -@pytest.mark.skip() +# pytest.mark.skip() def test_friends_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -43,7 +43,7 @@ def test_friends_unique_movies(): assert FANTASY_4 in friends_unique_movies assert amandas_data == clean_wave_3_data() -@pytest.mark.skip() +# pytest.mark.skip() def test_friends_unique_movies_not_duplicated(): # Arrange amandas_data = clean_wave_3_data() @@ -54,13 +54,16 @@ def test_friends_unique_movies_not_duplicated(): # Assert assert len(friends_unique_movies) == 3 - - raise Exception("Test needs to be completed.") + assert INTRIGUE_3 in friends_unique_movies + assert HORROR_1 in friends_unique_movies + assert FANTASY_4 in friends_unique_movies + + # raise Exception("Test needs to be completed.") # ************************************************************************************************* # ****** Add assertions here to test that the correct movies are in friends_unique_movies ********** # ************************************************************************************************** -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_not_unique_movies(): # Arrange amandas_data = { From 3a644cd5e757ae9b010dd1d4c6fd0b0063142f33 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 19:57:39 -0800 Subject: [PATCH 10/15] wave 4 completed: finished get_available_recs function --- viewing_party/party.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 416bc28a0..5c8dd7383 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -145,7 +145,6 @@ def get_collective_friends_movies(user_data): def get_unique_watched(user_data): unique_movies = [] - friends_movies_list = get_collective_friends_movies(user_data) for movie in user_data["watched"]: @@ -156,7 +155,6 @@ def get_unique_watched(user_data): def get_friends_unique_watched(user_data): unique_movies = [] - friends_movies_list = get_collective_friends_movies(user_data) for movie in friends_movies_list: @@ -170,6 +168,18 @@ def get_friends_unique_watched(user_data): # ----------------------------------------- # ------------- WAVE 4 -------------------- # ----------------------------------------- +def get_available_recs(user_data): + friends_unique_movies = get_friends_unique_watched(user_data) + available_recommendations = [] + + for movie in friends_unique_movies: + if movie["host"] in user_data["subscriptions"]: + available_recommendations.append(movie) + + return available_recommendations + + + # ----------------------------------------- # ------------- WAVE 5 -------------------- From 875de02723fc203b2cc282dffebbd09124c75cff Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 19:58:16 -0800 Subject: [PATCH 11/15] removed all skip signs --- tests/test_wave_04.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_wave_04.py b/tests/test_wave_04.py index 499669077..0b0b3c7e2 100644 --- a/tests/test_wave_04.py +++ b/tests/test_wave_04.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_get_available_friend_rec(): # Arrange amandas_data = clean_wave_4_data() @@ -16,7 +16,7 @@ def test_get_available_friend_rec(): assert FANTASY_4b in recommendations assert amandas_data == clean_wave_4_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_no_available_friend_recs(): # Arrange amandas_data = { @@ -38,7 +38,7 @@ def test_no_available_friend_recs(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_no_available_friend_recs_watched_all(): # Arrange amandas_data = { From 7d900d751dbb5d808dbf4af57651ce25c9a46396 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 20:45:16 -0800 Subject: [PATCH 12/15] wave 5: finished get_new_rec_by_genre function --- viewing_party/party.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 5c8dd7383..ca0332213 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -179,9 +179,18 @@ def get_available_recs(user_data): return available_recommendations - - # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- +def get_new_rec_by_genre(user_data): + most_watched_genre = get_most_watched_genre(user_data) + friends_unique_movies = get_friends_unique_watched(user_data) + recommendation = [] + + for movie in friends_unique_movies: + if movie["genre"] == most_watched_genre: + recommendation.append(movie) + + return recommendation + From 342700f5ec0906d81a07b81de25743cfbba50c04 Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 20:54:32 -0800 Subject: [PATCH 13/15] completed wave 5: finished get_rec_from_favorites function --- viewing_party/party.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/viewing_party/party.py b/viewing_party/party.py index ca0332213..9b6c0fc72 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -193,4 +193,14 @@ def get_new_rec_by_genre(user_data): return recommendation +def get_rec_from_favorites(user_data): + friends_movies_list = get_collective_friends_movies(user_data) + recommendations = [] + + for movie in user_data["favorites"]: + if movie not in friends_movies_list: + recommendations.append(movie) + + return recommendations + From 0f55307ac7cd35046eb58cd60dcd1633152075aa Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 20:55:01 -0800 Subject: [PATCH 14/15] removed all skip signs --- tests/test_wave_05.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/tests/test_wave_05.py b/tests/test_wave_05.py index 85ebb8b18..e7db1d476 100644 --- a/tests/test_wave_05.py +++ b/tests/test_wave_05.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec(): # Arrange sonyas_data = clean_wave_5_data() @@ -17,7 +17,7 @@ def test_new_genre_rec(): assert FANTASY_4b in recommendations assert sonyas_data == clean_wave_5_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec_from_empty_watched(): # Arrange sonyas_data = { @@ -38,7 +38,7 @@ def test_new_genre_rec_from_empty_watched(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec_from_empty_friends(): # Arrange sonyas_data = { @@ -53,12 +53,18 @@ def test_new_genre_rec_from_empty_friends(): ] } - raise Exception("Test needs to be completed.") + #Act + recommendations = get_new_rec_by_genre(sonyas_data) + + #Assert + assert len(recommendations) == 0 + + # raise Exception("Test needs to be completed.") # ********************************************************************* # ****** Complete the Act and Assert Portions of theis tests ********** # ********************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_unique_rec_from_favorites(): # Arrange sonyas_data = clean_wave_5_data() @@ -72,7 +78,7 @@ def test_unique_rec_from_favorites(): assert INTRIGUE_2b in recommendations assert sonyas_data == clean_wave_5_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_unique_from_empty_favorites(): # Arrange sonyas_data = { @@ -94,7 +100,7 @@ def test_unique_from_empty_favorites(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_rec_from_empty_friends(): # Arrange sonyas_data = { From cae801659d368d4cbd37dd06b45aba917421497b Mon Sep 17 00:00:00 2001 From: dalia Date: Tue, 8 Nov 2022 21:02:28 -0800 Subject: [PATCH 15/15] removed extra print statements that were used for debugging --- viewing_party/party.py | 64 ++---------------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 9b6c0fc72..30eec99dc 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -12,26 +12,11 @@ def create_movie(movie_title, genre, rating): return movies -# movie_title = "MOVIE_TITLE_1" -# genre = "GENRE_1" -# rating = "RATING_1" - -# print(create_movie(movie_title, genre, rating)) def add_to_watched(user_data, movie): user_data["watched"].append(movie) return user_data -# movie = { -# "title": "MOVIE_TITLE_1", -# "genre": "GENRE_1", -# "rating": "RATING_1" -# } -# user_data = { -# "watched": [] -# } - -# print(add_to_watched(user_data, movie)) def add_to_watchlist(user_data, movie): user_data["watchlist"].append(movie) @@ -85,53 +70,9 @@ def get_most_watched_genre(user_data): return genre - # ----------------------------------------- # ------------- WAVE 3 -------------------- # ----------------------------------------- -# USER_DATA_2 = { -# "watched": [ -# "FANTASY_1", -# "FANTASY_2", -# "FANTASY_3", -# "ACTION_1", -# "INTRIGUE_1", -# "INTRIGUE_2" -# ], -# "friends": [ -# { -# "watched": [ -# "FANTASY_1", -# "FANTASY_3", -# "FANTASY_4", -# "HORROR_1", -# ] -# }, -# { -# "watched": [ -# "FANTASY_1", -# "ACTION_1", -# "INTRIGUE_1", -# "INTRIGUE_3", -# ] -# } -# ] -# } - -# def get_unique_watched(user_data): -# user_movies_set = set(user_data["watched"]) -# friends_movies_set = set() - -# for friend in user_data["friends"]: -# # print(f"friend['watched'] converted to a set is{set(friend['watched'])}") -# # print(f"friends_movies_set is {friends_movies_set}") -# friends_movies_set.update(set(friend["watched"])) - -# unique_movies = user_movies_set.difference(friends_movies_set) -# return unique_movies - -# print(get_unique_watched(USER_DATA_2)) - def get_collective_friends_movies(user_data): friends_movies_list = [] @@ -153,6 +94,7 @@ def get_unique_watched(user_data): return unique_movies + def get_friends_unique_watched(user_data): unique_movies = [] friends_movies_list = get_collective_friends_movies(user_data) @@ -163,8 +105,6 @@ def get_friends_unique_watched(user_data): return unique_movies - - # ----------------------------------------- # ------------- WAVE 4 -------------------- # ----------------------------------------- @@ -178,7 +118,6 @@ def get_available_recs(user_data): return available_recommendations - # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- @@ -193,6 +132,7 @@ def get_new_rec_by_genre(user_data): return recommendation + def get_rec_from_favorites(user_data): friends_movies_list = get_collective_friends_movies(user_data) recommendations = []