Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import json
- class MusicPiece(dict):
- def __init__(self, author, title, length):
- dict.__init__(self, author = author, title = title, length = length)
- self.author = author
- self.title = title
- self.length = length
- def __eq__(self, other):
- return self.title == other.title
- def __str__(self):
- return f'{self.author} - {self.title} - {self.length}sec'
- def toJson(self):
- return json.dumps(self.__dict__)
- class Playlist(dict):
- musicPieces = None
- def __init__(self, title):
- self.musicPieces = []
- self.title = title
- def shuffle(self):
- random.shuffle(self.musicPieces)
- def addMusicPiece(self, musicPiece):
- if not isinstance(musicPiece, MusicPiece):
- raise "Can only add music pieces to a playlist"
- self.musicPieces.append(musicPiece)
- def deleteMusicPiece(self, title):
- toRemove = MusicPiece('_', title, 0)
- if(toRemove in self.musicPieces):
- self.musicPieces.remove(toRemove)
- return True
- return False
- def sortByTitle(self, desc=False):
- self.musicPieces.sort(key=lambda mp: mp.title, reverse=desc)
- def __str__(self):
- return "\n".join([piece.__str__() for piece in self.musicPieces])
- def toJson(self):
- dict.__init__(self, musicPieces = self.musicPieces, title=self.title)
- return json.dumps(self.__dict__)
- def main():
- my_playlist = Playlist('Blues')
- my_playlist.addMusicPiece(MusicPiece('Blues Brothers', 'Sweet Home Chicago', 180))
- my_playlist.addMusicPiece(MusicPiece('Eric Clapton', 'Blues With Russel', 230))
- print(my_playlist)
- print("-" * 50)
- print(my_playlist.toJson())
- print("-" * 50)
- my_playlist.deleteMusicPiece('Blues With Russel')
- print(my_playlist)
- print("-" * 50)
- jsonDump = '{\
- "musicPieces":[\
- {\
- "author":"Blues Brothers",\
- "title":"Sweet Home Chicago",\
- "length":180\
- },\
- {\
- "author":"Eric Clapton",\
- "title":"Blues With Russel",\
- "length":230\
- }\
- ],\
- "title":"Blues"\
- }'
- newPlaylist = Playlist(json.loads(jsonDump))
- print(newPlaylist)
- if __name__ == "__main__":
- main()
Add Comment
Please, Sign In to add comment