From 9e960be913c83f76c3aacad273f62275d59dc94f Mon Sep 17 00:00:00 2001 From: flyingrub Date: Wed, 11 Apr 2018 18:27:32 +0200 Subject: [PATCH] Fix some file detection --- scdl/scdl.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/scdl/scdl.py b/scdl/scdl.py index 3cb4874..fa42cdf 100755 --- a/scdl/scdl.py +++ b/scdl/scdl.py @@ -48,7 +48,7 @@ Options: even if track has a Downloadable file --path [path] Use a custom path for downloaded files --remove Remove any files not downloaded from execution - --flac Convert downloaded .wav files to .flac + --flac Convert original files to .flac """ import logging @@ -526,8 +526,8 @@ def download_track(track, playlist_name=None, playlist_file=None): sys.exit() shutil.move(temp.name, os.path.join(os.getcwd(), filename)) - if arguments['--flac'] and filename.endswith('.wav'): - logger.info('Converting from .wav to .flac...') + if arguments['--flac'] and can_convert(filename): + logger.info('Converting to .flac...') newfilename = filename[:-4] + ".flac" new = shlex.quote(newfilename) old = shlex.quote(filename) @@ -536,7 +536,7 @@ def download_track(track, playlist_name=None, playlist_file=None): os.remove(filename) filename = newfilename - if not filename.endswith('.wav'): + if filename.endswith('.mp3') or filename.endswith('.flac'): try: set_metadata(track, filename, playlist_name) except Exception as e: @@ -555,22 +555,28 @@ def download_track(track, playlist_name=None, playlist_file=None): record_download_archive(track) -def already_downloaded(track, title, filename=None): +def can_convert(filename): + ext = os.path.splitext(filename)[1] + return ext == 'wav' or ext in 'aif' + +def already_downloaded(track, title, filename): """ Returns True if the file has already been downloaded """ global arguments already_downloaded = False - if filename and os.path.isfile(filename): + if os.path.isfile(filename): already_downloaded = True - if filename and arguments['--flac'] \ - and filename.endswith('.wav') \ - and os.path.isfile(filename[:-4] + ".flac"): + if arguments['--flac'] and can_convert(filename) \ + and os.path.isfile(filename[:-4] + ".flac"): already_downloaded = True if arguments['--download-archive'] and in_download_archive(track): already_downloaded = True + if arguments['--flac'] and can_convert(filename) and os.path.isfile(filename): + already_downloaded = False + if already_downloaded: if arguments['-c'] or arguments['--remove']: logger.info('Track "{0}" already downloaded.'.format(title))