-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maple - Sabrina Lauredan #82
base: master
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,129 @@ | ||||||||||||||||||||||||||||||||||||||
#wave 1 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def create_movie(title, genre, rating): | ||||||||||||||||||||||||||||||||||||||
if title == None: | ||||||||||||||||||||||||||||||||||||||
return None | ||||||||||||||||||||||||||||||||||||||
if genre == None: | ||||||||||||||||||||||||||||||||||||||
return None | ||||||||||||||||||||||||||||||||||||||
if rating == None: | ||||||||||||||||||||||||||||||||||||||
return None | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. since all of these if statements will produce the same return statement, let's combine them!
Suggested change
|
||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||
movie = {"title": title, "genre": genre, "rating": rating} | ||||||||||||||||||||||||||||||||||||||
return movie | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def add_to_watched(user_data, movie): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||||||||||||||||||||||||||||||||||||||
user_data['watched'].append(movie) | ||||||||||||||||||||||||||||||||||||||
return user_data | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def add_to_watchlist(user_data, movie): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||||||||||||||||||||||||||||||||||||||
user_data['watchlist'].append(movie) | ||||||||||||||||||||||||||||||||||||||
return user_data | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def watch_movie(user_data, title): | ||||||||||||||||||||||||||||||||||||||
for movie in user_data['watchlist']: | ||||||||||||||||||||||||||||||||||||||
if movie['title'] == title: | ||||||||||||||||||||||||||||||||||||||
user_data['watchlist'].remove(movie) | ||||||||||||||||||||||||||||||||||||||
user_data["watched"].append(movie) | ||||||||||||||||||||||||||||||||||||||
if user_data['watched'] == []: | ||||||||||||||||||||||||||||||||||||||
user_data["watched"].append(movie) | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. so, if
Suggested change
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
return user_data | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
#wave 2 pt 1 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_watched_avg_rating(user_data): | ||||||||||||||||||||||||||||||||||||||
if len(user_data["watched"]) == 0: | ||||||||||||||||||||||||||||||||||||||
return 0 | ||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||
ratings = [] | ||||||||||||||||||||||||||||||||||||||
for movie in user_data['watched']: | ||||||||||||||||||||||||||||||||||||||
ratings.append(movie["rating"]) | ||||||||||||||||||||||||||||||||||||||
average = sum(ratings)/len(ratings) | ||||||||||||||||||||||||||||||||||||||
return average | ||||||||||||||||||||||||||||||||||||||
Comment on lines
+31
to
+35
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 this looks great! but I think we can do both the summing and the for loop in one! behind the scenes,
Suggested change
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# wave 2 pt 2 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_most_watched_genre(user_data): | ||||||||||||||||||||||||||||||||||||||
genres_watched = [] | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
if len (user_data["watched"]) == 0: | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. careful with too many spaces! len is a function, and it's being called here. so keep the |
||||||||||||||||||||||||||||||||||||||
return None | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
for movie in user_data["watched"]: | ||||||||||||||||||||||||||||||||||||||
genres_watched.append(movie["genre"]) | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
freq = {} | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
for genre in genres_watched: | ||||||||||||||||||||||||||||||||||||||
if not genre in freq: | ||||||||||||||||||||||||||||||||||||||
freq.update({genre:1}) | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oh funky! never used |
||||||||||||||||||||||||||||||||||||||
else: | ||||||||||||||||||||||||||||||||||||||
freq[genre] += 1 | ||||||||||||||||||||||||||||||||||||||
Comment on lines
+43
to
+52
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nicely done! let's see if we can combine these together:
Suggested change
both of these work just fine! we can, though, discard |
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
popular_genre = max(freq, key = freq.get) | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
return popular_genre | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
#wave 3 pt 1 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_unique_watched(user_data): | ||||||||||||||||||||||||||||||||||||||
user_watched = user_data["watched"] | ||||||||||||||||||||||||||||||||||||||
friends_watched = user_data["friends"] | ||||||||||||||||||||||||||||||||||||||
Comment on lines
+61
to
+62
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like that you created variables to make it easier to isolate the data you are working with |
||||||||||||||||||||||||||||||||||||||
friend_titles = [] | ||||||||||||||||||||||||||||||||||||||
unique = [] | ||||||||||||||||||||||||||||||||||||||
for friend in friends_watched: | ||||||||||||||||||||||||||||||||||||||
for title in friend["watched"]: | ||||||||||||||||||||||||||||||||||||||
friend_titles.append(title["title"]) | ||||||||||||||||||||||||||||||||||||||
for title in user_watched: | ||||||||||||||||||||||||||||||||||||||
if title['title'] not in friend_titles: | ||||||||||||||||||||||||||||||||||||||
unique.append(title) | ||||||||||||||||||||||||||||||||||||||
return unique | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
#wave 3 pt 2 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_friends_unique_watched(user_data): | ||||||||||||||||||||||||||||||||||||||
unique_movies = [] | ||||||||||||||||||||||||||||||||||||||
for friend in user_data["friends"]: | ||||||||||||||||||||||||||||||||||||||
for movie in friend["watched"]: | ||||||||||||||||||||||||||||||||||||||
if not is_movie_in_list(user_data["watched"], movie) and not is_movie_in_list(unique_movies, movie): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 I see a helper function! noice! |
||||||||||||||||||||||||||||||||||||||
unique_movies.append(movie) | ||||||||||||||||||||||||||||||||||||||
return unique_movies | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# wave 4 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_available_recs(user_data): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||||||||||||||||||||||||||||||||||||||
host_list = [] | ||||||||||||||||||||||||||||||||||||||
user_subscriptions = user_data["subscriptions"] | ||||||||||||||||||||||||||||||||||||||
rec = [] | ||||||||||||||||||||||||||||||||||||||
friends_unique = get_friends_unique_watched(user_data) | ||||||||||||||||||||||||||||||||||||||
for movie in friends_unique: | ||||||||||||||||||||||||||||||||||||||
if movie["host"] in user_subscriptions: | ||||||||||||||||||||||||||||||||||||||
rec.append(movie) | ||||||||||||||||||||||||||||||||||||||
return rec | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# #wave 5 pt1 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_new_rec_by_genre(user_data): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||||||||||||||||||||||||||||||||||||||
fav = get_most_watched_genre(user_data) | ||||||||||||||||||||||||||||||||||||||
friends_unique = get_friends_unique_watched(user_data) | ||||||||||||||||||||||||||||||||||||||
rec =[] | ||||||||||||||||||||||||||||||||||||||
for movie in friends_unique: | ||||||||||||||||||||||||||||||||||||||
if movie["genre"] == fav and not is_movie_in_list(rec, movie): | ||||||||||||||||||||||||||||||||||||||
rec.append(movie) | ||||||||||||||||||||||||||||||||||||||
return rec | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# wave 5 pt 2 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def get_rec_from_favorites(user_data): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||||||||||||||||||||||||||||||||||||||
unique_watched = get_unique_watched(user_data) | ||||||||||||||||||||||||||||||||||||||
favorites = user_data['favorites'] | ||||||||||||||||||||||||||||||||||||||
return [movie for movie in unique_watched if movie in favorites] | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# helper | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
def is_movie_in_list(list, movie): | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 |
||||||||||||||||||||||||||||||||||||||
for item in list: | ||||||||||||||||||||||||||||||||||||||
if item["title"] == movie["title"]: | ||||||||||||||||||||||||||||||||||||||
return True | ||||||||||||||||||||||||||||||||||||||
return False |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍