Made nextitem work on a thread
This commit is contained in:
parent
9c49bf5d23
commit
318ad689ea
|
@ -117,7 +117,6 @@ class DownloadJob:
|
|||
with ThreadPoolExecutor(self.settings['queueConcurrency']) as executor:
|
||||
for pos, track in enumerate(self.queueItem.collection, start=0):
|
||||
tracks[pos] = executor.submit(self.downloadWrapper, track)
|
||||
pool.waitall()
|
||||
self.collectionAfterDownload(tracks)
|
||||
if self.interface:
|
||||
if self.queueItem.cancel:
|
||||
|
@ -159,7 +158,7 @@ class DownloadJob:
|
|||
searched = ""
|
||||
|
||||
for i in range(len(tracks)):
|
||||
result = tracks[i].wait()
|
||||
result = tracks[i].result()
|
||||
if not result: return None # Check if item is cancelled
|
||||
|
||||
# Log errors to file
|
||||
|
|
|
@ -15,6 +15,8 @@ from os import remove
|
|||
import uuid
|
||||
from urllib.request import urlopen
|
||||
|
||||
import threading
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger('deemix')
|
||||
|
||||
|
@ -26,6 +28,7 @@ class QueueManager:
|
|||
self.currentItem = ""
|
||||
self.dz = deezerHelper or Deezer()
|
||||
self.sp = spotifyHelper
|
||||
self.queueThread = None
|
||||
|
||||
def generateTrackQueueItem(self, id, settings, bitrate, trackAPI=None, albumAPI=None, dz=None):
|
||||
if not dz: dz = self.dz
|
||||
|
@ -440,15 +443,18 @@ class QueueManager:
|
|||
if interface: interface.send("addedToQueue", queueItem.getSlimmedItem())
|
||||
else:
|
||||
return False
|
||||
self.nextItem(dz, interface)
|
||||
if not self.queueThread:
|
||||
self.queueThread = threading.Thread(target=self.nextItem, args=(dz, interface))
|
||||
self.queueThread.start()
|
||||
return True
|
||||
|
||||
def nextItem(self, dz=None, interface=None):
|
||||
if not dz: dz = self.dz
|
||||
# Check that nothing is already downloading and
|
||||
# that the queue is not empty
|
||||
if self.currentItem != "": return None
|
||||
if not len(self.queue): return None
|
||||
if self.currentItem != "" or not len(self.queue):
|
||||
self.queueThread = None
|
||||
return None
|
||||
|
||||
self.currentItem = self.queue.pop(0)
|
||||
|
||||
|
|
Loading…
Reference in New Issue