plist = read_plist(os.path.expanduser(filename))
self.folder = self.loc2name(plist["Music Folder"])
pl_tracks = plist["Tracks"]
- self.playlists = {}
+ pl_lookup = {}
+ self.playlists = []
for pl_playlist in plist["Playlists"]:
- playlist = self.make_playlist(pl_playlist, pl_tracks)
+ playlist = self.make_playlist(pl_playlist, pl_tracks, pl_lookup)
if not playlist:
continue
yield "Read playlist: " + playlist.name
- self.playlists[playlist.pid] = playlist
+ self.playlists.append(playlist)
+ pl_lookup[playlist.pid] = playlist
def loc2name(self, location):
return urllib.splithost(urllib.splittype(urllib.unquote(location))[1])[1]
- def make_playlist(self, pl_playlist, pl_tracks):
+ def make_playlist(self, pl_playlist, pl_tracks, pl_lookup):
if int(pl_playlist.get("Master", 0)):
return
kind = int(pl_playlist.get("Distinguished Kind", -1))
parent = None
try:
parent_pid = pl_playlist["Parent Persistent ID"]
- parent = self.playlists.get(parent_pid)
+ parent = pl_lookup[parent_pid]
except KeyError:
pass
tracks = []
return playlist
def get_playlists(self):
- return self.playlists.values()
+ return self.playlists
encoded_names = {}