From: James Bunton Date: Sun, 2 Jan 2011 19:38:35 +0000 (+1100) Subject: Keep playlists in order X-Git-Tag: notipod-1.3~6 X-Git-Url: https://code.delx.au/notipod/commitdiff_plain/d809be5854a740fc5c60c5df8d76df9491073256 Keep playlists in order --- 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 = {}