import logging
import os
+import sys
+import traceback
import objc
from Foundation import *
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)
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,
@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)