Skip to content

Movie Specs

Mazharul Maaz edited this page Jun 15, 2022 · 5 revisions
class Movie:
	movie.title: str
	movie.url: str
	movie.suggester: User
	movie.ratings: dict (key=User, val=float)
	movie.rank: int 
	movie.date_watched: datetime
        movie.genres: List<str>

        def get_rating() -> float
        def __str__() -> str

class Genre:
        genre.name: str
        genre.sub_genres: List<Genre>
        genre.count: int


class MovieNight:
	m_movies_watched: List<Movie>
	m_movies_to_watch: Queue<User -> Movie[]>
	m_genres_watched: List<Genre>
        m_shelf: dict
	
	def add_movie_personal(movie_name_or_url: str)
	def remove_movie_personal(movie_name_or_url: str)
	def start_voting(movie_name_or_url: str)
	def pick_movie(user, movie_name_or_url: str)
        def have_we_watched(movie_name_or_url: str)
        def add_already_watched(movie_name_or_url: str, score: float, date: str, user)
        def remove_already_watched(movie_name_or_url: str)

        def update_leaderboard(movie: Movie)
        def update_genre(genre: str)

Movie Night-specific Commands:

!add-movie <movie_name_or_url> : adds movie to personal list. Error if someone already picked it.
!remove-movie <movie_name_or_url> : removes movie from personal list
!vote <score> : adds vote
!movie-info <movie name or url>

Admin Commands:

!start-voting <movie_name_or_url> : join vc and play music, start 1m timer, delete all messages as they come in, at end disconnect, calculate score and update leaderboard
!remove-vote <movie_name_or_url> <user> : removes vote from user
!pick-movie <movie_name_or_url> : make queue<(person_@, Movie[])>, search map for key, find Movie and remove, move tuple back to end of queue
!add-movie-admin <movie_name_or_url> : Similar to add-movie but you can add other's movies as well.
!remove-movie-admin <movie_name_or_url> : Similar to remove-movie but you can remove other's movies as well.
!update-move-info <movie_name_or_url> <movie info>
Clone this wiki locally