X-Git-Url: https://code.delx.au/notipod/blobdiff_plain/ebcbeef5fb45ea997fdbf6e2220398d892537dd3..29b2c46f6b47c8f3a39157ccad85e74a381bf77f:/libnotipod.py diff --git a/libnotipod.py b/libnotipod.py index 270c272..caf3b72 100644 --- a/libnotipod.py +++ b/libnotipod.py @@ -46,18 +46,20 @@ class ITunesLibrary(NSObject): 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)) @@ -88,7 +90,7 @@ class ITunesLibrary(NSObject): 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 = [] @@ -123,7 +125,7 @@ class ITunesLibrary(NSObject): return playlist def get_playlists(self): - return self.playlists.values() + return self.playlists encoded_names = {}