X-Git-Url: https://code.delx.au/notipod/blobdiff_plain/09e1e4ec2d3c9ffc5701e613ac4484d63ee0a8f7..a9de8db967ce3c8d7063301bf3a806a1b1597503:/notipod_gui.py diff --git a/notipod_gui.py b/notipod_gui.py index 5a0d329..85d2f15 100644 --- a/notipod_gui.py +++ b/notipod_gui.py @@ -4,6 +4,8 @@ import logging import os +import sys +import traceback import objc from Foundation import * @@ -167,6 +169,7 @@ class NotiPodController(NSObject): self.loadingLabel.setStringValue_, msg, True) except Exception, e: NSRunAlertPanel("Error!", str(e), "Ok", None, None) + traceback.print_exc() finish = fail self.performSelectorOnMainThread_withObject_waitUntilDone_( self.stopGenerator, finish, True) @@ -188,11 +191,15 @@ class NotiPodController(NSObject): yield "Calculating changes..." folder = self.folders()[0] - playlists = [self.library.get_playlist_pid(pid) for pid in self.playlists()] + if not os.path.isdir(folder.encode("utf-8")): + NSRunAlertPanel("Error!", "Destination " + folder + " does not exist, try mounting it first?", "Ok", None, None) + return all_tracks = [] - for playlist in playlists: - all_tracks.extend(playlist.tracks) + for playlist_id in self.playlists(): + playlist = self.library.get_playlist_pid(playlist_id) + if playlist is not None: + all_tracks.extend(playlist.tracks) gen = libnotipod.sync( dry_run=True, @@ -217,14 +224,17 @@ class NotiPodController(NSObject): @objc.IBAction def doSync_(self, sender): folder = self.folders()[0] - playlists = [self.library.get_playlist_pid(pid) for pid in self.playlists()] - if not os.path.isdir(folder.encode("utf-8")): NSRunAlertPanel("Error!", "Destination " + folder + " does not exist, try mounting it first?", "Ok", None, None) return all_tracks = [] - for playlist in playlists: + for playlist_id in self.playlists(): + playlist = self.library.get_playlist_pid(playlist_id) + if playlist is None: + print "Forgetting unknown playlist:", playlist_id + self.setPlaylist_selected_(playlist_id, False) + continue all_tracks.extend(playlist.tracks) libnotipod.export_m3u(dry_run=False, dest=folder, path_prefix="", playlist_name=playlist.name, files=playlist.tracks)