import json class SessionManager: def __init__(self, playlist, abController): self._playlist = playlist self._abController = abController def addSong(self, path): self._playlist.addSong(path) def addLimits(self, aLimit, bLimit): self._abController.addLimits(aLimit, bLimit) def loadSession(self, file): jsonStr = file.read() session = json.loads(jsonStr) for entry in session: songPath = entry["path"] abLimits = entry["ab_limits"] self._playlist.addSong(songPath) if abLimits is not None: for l in abLimits: self._abController.addLimits(l[0], l[1], songPath) def saveSession(self, file): songs = self._playlist.getSongs() abLimits = self._abController.getLimits() session = list() for s in songs: entry = { "path": s, "ab_limits" : abLimits.get(s) } session.append(entry) file.write(json.dumps(session))