diff --git a/deemix/app/downloadjob.py b/deemix/app/downloadjob.py index cefc303..ff8ca6d 100644 --- a/deemix/app/downloadjob.py +++ b/deemix/app/downloadjob.py @@ -104,16 +104,17 @@ class DownloadJob: self.playlistURLs = [] def start(self): - if isinstance(self.queueItem, QISingle): - result = self.downloadWrapper(self.queueItem.single) - if result: - self.singleAfterDownload(result) - elif isinstance(self.queueItem, QICollection): - tracks = [None] * len(self.queueItem.collection) - with ThreadPoolExecutor(self.settings['queueConcurrency']) as executor: - for pos, track in enumerate(self.queueItem.collection, start=0): - tracks[pos] = executor.submit(self.downloadWrapper, track) - self.collectionAfterDownload(tracks) + if not self.queueItem.cancel: + if isinstance(self.queueItem, QISingle): + result = self.downloadWrapper(self.queueItem.single) + if result: + self.singleAfterDownload(result) + elif isinstance(self.queueItem, QICollection): + tracks = [None] * len(self.queueItem.collection) + with ThreadPoolExecutor(self.settings['queueConcurrency']) as executor: + for pos, track in enumerate(self.queueItem.collection, start=0): + tracks[pos] = executor.submit(self.downloadWrapper, track) + self.collectionAfterDownload(tracks) if self.interface: if self.queueItem.cancel: self.interface.send('currentItemCancelled', self.queueItem.uuid) diff --git a/deemix/app/spotifyhelper.py b/deemix/app/spotifyhelper.py index 260e0dc..7c0d385 100644 --- a/deemix/app/spotifyhelper.py +++ b/deemix/app/spotifyhelper.py @@ -237,6 +237,8 @@ class SpotifyHelper: interface.send("startConversion", queueItem.uuid) collection = [] for pos, track in enumerate(queueItem.extra['unconverted'], start=1): + if queueItem.cancel: + return if str(track['id']) in cache['tracks']: trackID = cache['tracks'][str(track['id'])] else: