X-Git-Url: https://code.delx.au/notipod/blobdiff_plain/091ffd73bb5472213fe7b2e40e85a8ac1a418891..02030014f9372d738ae6a519ec71c464dbfb0f6a:/libnotipod.py diff --git a/libnotipod.py b/libnotipod.py index 49af34a..02f7c30 100644 --- a/libnotipod.py +++ b/libnotipod.py @@ -27,9 +27,10 @@ class Playlist(NSObject): def init(self): return self - def set(self, name, pid, tracks, parent): + def set(self, name, pid, ptype, tracks, parent): self.name = name self.pid = pid + self.ptype = ptype self.children = [] self.tracks = tracks self.parent = parent @@ -48,6 +49,8 @@ class ITunesLibrary(NSObject): self.playlists = {} for pl_playlist in plist["Playlists"]: playlist = self.make_playlist(pl_playlist, pl_tracks) + if not playlist: + continue yield "Read playlist: " + playlist.name self.playlists[playlist.pid] = playlist @@ -55,8 +58,33 @@ class ITunesLibrary(NSObject): return urllib.splithost(urllib.splittype(urllib.unquote(location))[1])[1] def make_playlist(self, pl_playlist, pl_tracks): + if int(pl_playlist.get("Master", 0)): + return + kind = int(pl_playlist.get("Distinguished Kind", -1)) + if kind == 26: + # Don't do genius + return + name = pl_playlist["Name"] pid = pl_playlist["Playlist Persistent ID"] + if kind > 0: + ptype = { + 2: "movies", + 3: "tv-shows", + 4: "music", + 5: "books", + 10: "podcasts", + 19: "purchased", + 22: "itunes-dj", + 31: "itunes-u", + }.get(kind, "playlist") + elif pl_playlist.has_key("Smart Info"): + ptype = "smart-playlist" + elif int(pl_playlist.get("Folder", 0)): + ptype = "folder" + else: + ptype = "playlist" + parent = None try: parent_pid = pl_playlist["Parent Persistent ID"] @@ -75,7 +103,7 @@ class ITunesLibrary(NSObject): filename = strip_prefix(filename, self.folder) tracks.append(filename) playlist = Playlist.alloc().init() - playlist.set(name, pid, tracks, parent) + playlist.set(name, pid, ptype, tracks, parent) return playlist def has_playlist_name(self, name):