wewe / movie_controller.py
mistpe's picture
Upload 5 files
d96fc39 verified
raw
history blame
1.6 kB
from movie_dao import MovieDao
class MovieController:
def __init__(self):
self.__movie_data = MovieDao.load()
def get_all_movies(self):
return self.__movie_data
def get_highest_rated_movie(self):
return max(self.__movie_data, key=lambda movie: movie.rating)
def get_highest_grossing_movie(self):
return max(self.__movie_data, key=lambda movie: movie.box_office)
def get_movies_sorted_by_year(self):
return sorted(self.__movie_data, key=lambda movie: movie.year, reverse=True)
def get_all_genres(self):
return sorted(set(movie.genre for movie in self.__movie_data))
def get_all_languages(self):
return sorted(set(movie.language for movie in self.__movie_data))
def search_movies(self, query):
query = query.lower()
return [movie for movie in self.__movie_data if query in movie.title.lower() or query in movie.director.lower()]
def filter_movies(self, genre=None, year=None, language=None):
filtered = self.__movie_data
if genre:
filtered = [movie for movie in filtered if movie.genre == genre]
if year:
filtered = [movie for movie in filtered if movie.year == int(year)]
if language:
filtered = [movie for movie in filtered if movie.language == language]
return filtered
def sort_movies(self, sort_by='year', order='desc'):
reverse = order.lower() == 'desc'
return sorted(self.__movie_data, key=lambda movie: getattr(movie, sort_by), reverse=reverse)