Move extrasPath to DownloadObject
This commit is contained in:
parent
834de5a09c
commit
8d325d5321
|
@ -165,7 +165,6 @@ class Downloader:
|
||||||
self.bitrate = downloadObject.bitrate
|
self.bitrate = downloadObject.bitrate
|
||||||
self.listener = listener
|
self.listener = listener
|
||||||
|
|
||||||
self.extrasPath = None
|
|
||||||
self.playlistCoverName = None
|
self.playlistCoverName = None
|
||||||
self.playlistURLs = []
|
self.playlistURLs = []
|
||||||
|
|
||||||
|
@ -277,7 +276,7 @@ class Downloader:
|
||||||
writepath = filepath / f"{filename}{extension}"
|
writepath = filepath / f"{filename}{extension}"
|
||||||
|
|
||||||
# Save extrasPath
|
# Save extrasPath
|
||||||
if extrasPath and not self.extrasPath: self.extrasPath = extrasPath
|
if extrasPath and not self.downloadObject.extrasPath: self.downloadObject.extrasPath = extrasPath
|
||||||
|
|
||||||
# Generate covers URLs
|
# Generate covers URLs
|
||||||
embeddedImageFormat = f'jpg-{self.settings["jpegImageQuality"]}'
|
embeddedImageFormat = f'jpg-{self.settings["jpegImageQuality"]}'
|
||||||
|
@ -405,12 +404,11 @@ class Downloader:
|
||||||
if track.searched: returnData['searched'] = True
|
if track.searched: returnData['searched'] = True
|
||||||
self.downloadObject.downloaded += 1
|
self.downloadObject.downloaded += 1
|
||||||
self.downloadObject.files.append(str(writepath))
|
self.downloadObject.files.append(str(writepath))
|
||||||
self.downloadObject.extrasPath = str(self.extrasPath)
|
|
||||||
if self.listener: self.listener.send("updateQueue", {
|
if self.listener: self.listener.send("updateQueue", {
|
||||||
'uuid': self.downloadObject.uuid,
|
'uuid': self.downloadObject.uuid,
|
||||||
'downloaded': True,
|
'downloaded': True,
|
||||||
'downloadPath': str(writepath),
|
'downloadPath': str(writepath),
|
||||||
'extrasPath': str(self.extrasPath)
|
'extrasPath': str(self.downloadObject.extrasPath)
|
||||||
})
|
})
|
||||||
returnData['filename'] = str(writepath)[len(str(extrasPath))+ len(pathSep):]
|
returnData['filename'] = str(writepath)[len(str(extrasPath))+ len(pathSep):]
|
||||||
returnData['data'] = itemData
|
returnData['data'] = itemData
|
||||||
|
@ -490,7 +488,7 @@ class Downloader:
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def afterDownloadSingle(self, track):
|
def afterDownloadSingle(self, track):
|
||||||
if not self.extrasPath: self.extrasPath = Path(self.settings['downloadLocation'])
|
if not self.downloadObject.extrasPath: self.downloadObject.extrasPath = Path(self.settings['downloadLocation'])
|
||||||
|
|
||||||
# Save Album Cover
|
# Save Album Cover
|
||||||
if self.settings['saveArtwork'] and 'albumPath' in track:
|
if self.settings['saveArtwork'] and 'albumPath' in track:
|
||||||
|
@ -505,7 +503,7 @@ class Downloader:
|
||||||
# Create searched logfile
|
# Create searched logfile
|
||||||
if self.settings['logSearched'] and 'searched' in track:
|
if self.settings['logSearched'] and 'searched' in track:
|
||||||
filename = f"{track.data.artist} - {track.data.title}"
|
filename = f"{track.data.artist} - {track.data.title}"
|
||||||
with open(self.extrasPath / 'searched.txt', 'wb+') as f:
|
with open(self.downloadObject.extrasPath / 'searched.txt', 'wb+') as f:
|
||||||
searchedFile = f.read().decode('utf-8')
|
searchedFile = f.read().decode('utf-8')
|
||||||
if not filename in searchedFile:
|
if not filename in searchedFile:
|
||||||
if searchedFile != "": searchedFile += "\r\n"
|
if searchedFile != "": searchedFile += "\r\n"
|
||||||
|
@ -514,10 +512,10 @@ class Downloader:
|
||||||
|
|
||||||
# Execute command after download
|
# Execute command after download
|
||||||
if self.settings['executeCommand'] != "":
|
if self.settings['executeCommand'] != "":
|
||||||
execute(self.settings['executeCommand'].replace("%folder%", quote(str(self.extrasPath))).replace("%filename%", quote(track['filename'])))
|
execute(self.settings['executeCommand'].replace("%folder%", quote(str(self.downloadObject.extrasPath))).replace("%filename%", quote(track['filename'])))
|
||||||
|
|
||||||
def afterDownloadCollection(self, tracks):
|
def afterDownloadCollection(self, tracks):
|
||||||
if not self.extrasPath: self.extrasPath = Path(self.settings['downloadLocation'])
|
if not self.downloadObject.extrasPath: self.downloadObject.extrasPath = Path(self.settings['downloadLocation'])
|
||||||
playlist = [None] * len(tracks)
|
playlist = [None] * len(tracks)
|
||||||
errors = ""
|
errors = ""
|
||||||
searched = ""
|
searched = ""
|
||||||
|
@ -549,26 +547,26 @@ class Downloader:
|
||||||
|
|
||||||
# Create errors logfile
|
# Create errors logfile
|
||||||
if self.settings['logErrors'] and errors != "":
|
if self.settings['logErrors'] and errors != "":
|
||||||
with open(self.extrasPath / 'errors.txt', 'wb') as f:
|
with open(self.downloadObject.extrasPath / 'errors.txt', 'wb') as f:
|
||||||
f.write(errors.encode('utf-8'))
|
f.write(errors.encode('utf-8'))
|
||||||
|
|
||||||
# Create searched logfile
|
# Create searched logfile
|
||||||
if self.settings['logSearched'] and searched != "":
|
if self.settings['logSearched'] and searched != "":
|
||||||
with open(self.extrasPath / 'searched.txt', 'wb') as f:
|
with open(self.downloadObject.extrasPath / 'searched.txt', 'wb') as f:
|
||||||
f.write(searched.encode('utf-8'))
|
f.write(searched.encode('utf-8'))
|
||||||
|
|
||||||
# Save Playlist Artwork
|
# Save Playlist Artwork
|
||||||
if self.settings['saveArtwork'] and self.playlistCoverName and not self.settings['tags']['savePlaylistAsCompilation']:
|
if self.settings['saveArtwork'] and self.playlistCoverName and not self.settings['tags']['savePlaylistAsCompilation']:
|
||||||
for image in self.playlistURLs:
|
for image in self.playlistURLs:
|
||||||
downloadImage(image['url'], self.extrasPath / f"{self.playlistCoverName}.{image['ext']}", self.settings['overwriteFile'])
|
downloadImage(image['url'], self.downloadObject.extrasPath / f"{self.playlistCoverName}.{image['ext']}", self.settings['overwriteFile'])
|
||||||
|
|
||||||
# Create M3U8 File
|
# Create M3U8 File
|
||||||
if self.settings['createM3U8File']:
|
if self.settings['createM3U8File']:
|
||||||
filename = generateDownloadObjectName(self.settings['playlistFilenameTemplate'], self.downloadObject, self.settings) or "playlist"
|
filename = generateDownloadObjectName(self.settings['playlistFilenameTemplate'], self.downloadObject, self.settings) or "playlist"
|
||||||
with open(self.extrasPath / f'{filename}.m3u8', 'wb') as f:
|
with open(self.downloadObject.extrasPath / f'{filename}.m3u8', 'wb') as f:
|
||||||
for line in playlist:
|
for line in playlist:
|
||||||
f.write((line + "\n").encode('utf-8'))
|
f.write((line + "\n").encode('utf-8'))
|
||||||
|
|
||||||
# Execute command after download
|
# Execute command after download
|
||||||
if self.settings['executeCommand'] != "":
|
if self.settings['executeCommand'] != "":
|
||||||
execute(self.settings['executeCommand'].replace("%folder%", quote(str(self.extrasPath))))
|
execute(self.settings['executeCommand'].replace("%folder%", quote(str(self.downloadObject.extrasPath))))
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
class IDownloadObject:
|
class IDownloadObject:
|
||||||
"""DownloadObject Interface"""
|
"""DownloadObject Interface"""
|
||||||
def __init__(self, obj):
|
def __init__(self, obj):
|
||||||
|
@ -14,6 +16,8 @@ class IDownloadObject:
|
||||||
self.progress = obj.get('progress', 0)
|
self.progress = obj.get('progress', 0)
|
||||||
self.errors = obj.get('errors', [])
|
self.errors = obj.get('errors', [])
|
||||||
self.files = obj.get('files', [])
|
self.files = obj.get('files', [])
|
||||||
|
self.extrasPath = obj.get('extrasPath')
|
||||||
|
if self.extrasPath: self.extrasPath = Path(self.extrasPath)
|
||||||
self.progressNext = 0
|
self.progressNext = 0
|
||||||
self.uuid = f"{self.type}_{self.id}_{self.bitrate}"
|
self.uuid = f"{self.type}_{self.id}_{self.bitrate}"
|
||||||
self.isCanceled = False
|
self.isCanceled = False
|
||||||
|
@ -35,6 +39,7 @@ class IDownloadObject:
|
||||||
'progress': self.progress,
|
'progress': self.progress,
|
||||||
'errors': self.errors,
|
'errors': self.errors,
|
||||||
'files': self.files,
|
'files': self.files,
|
||||||
|
'extrasPath': str(self.extrasPath),
|
||||||
'__type__': self.__type__
|
'__type__': self.__type__
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +70,8 @@ class IDownloadObject:
|
||||||
'artist': self.artist,
|
'artist': self.artist,
|
||||||
'cover': self.cover,
|
'cover': self.cover,
|
||||||
'explicit': self.explicit,
|
'explicit': self.explicit,
|
||||||
'size': self.size
|
'size': self.size,
|
||||||
|
'extrasPath': str(self.extrasPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
def updateProgress(self, listener=None):
|
def updateProgress(self, listener=None):
|
||||||
|
|
Loading…
Reference in New Issue