diff --git a/core/convert.py b/core/convert.py index 4abacf2..a7af385 100644 --- a/core/convert.py +++ b/core/convert.py @@ -7,12 +7,11 @@ def song(input_song, output_song, avconv=False, verbose=False): output_song = output_song.encode('utf-8') print('Converting ' + input_song + ' to ' + output_song.split('.')[-1]) if avconv: - convert_with_avconv(input_song, output_song, verbose) + exit_code = convert_with_avconv(input_song, output_song, verbose) else: - convert_with_FFmpeg(input_song, output_song, verbose) - os.remove('Music/' + input_song) - return True - return False + exit_code = convert_with_FFmpeg(input_song, output_song, verbose) + return exit_code + return None def convert_with_avconv(input_song, output_song, verbose): # different path for windows diff --git a/core/metadata.py b/core/metadata.py index e6e5adb..2cda5aa 100755 --- a/core/metadata.py +++ b/core/metadata.py @@ -30,14 +30,17 @@ def embed(music_file, meta_tags): music_file = music_file.encode('utf-8') if meta_tags is None: print('Could not find meta-tags') + return None elif music_file.endswith('.m4a'): print('Fixing meta-tags') - embed_m4a(music_file, meta_tags) + return embed_m4a(music_file, meta_tags) + return True elif music_file.endswith('.mp3'): print('Fixing meta-tags') - embed_mp3(music_file, meta_tags) + return embed_mp3(music_file, meta_tags) else: print('Cannot embed meta-tags into given output extension') + return False def embed_mp3(music_file, meta_tags): # EasyID3 is fun to use ;) @@ -69,6 +72,7 @@ def embed_mp3(music_file, meta_tags): audiofile["APIC"] = APIC(encoding=3, mime='image/jpeg', type=3, desc=u'Cover', data=albumart.read()) albumart.close() audiofile.save(v2_version=3) + return True def embed_m4a(music_file, meta_tags): # Apple has specific tags - see mutagen docs - @@ -107,3 +111,4 @@ def embed_m4a(music_file, meta_tags): audiofile[tags['albumart']] = [ MP4Cover(albumart.read(), imageformat=MP4Cover.FORMAT_JPEG) ] albumart.close() audiofile.save() + return True diff --git a/spotdl.py b/spotdl.py index 8db4352..3c75f49 100755 --- a/spotdl.py +++ b/spotdl.py @@ -254,6 +254,7 @@ def grab_single(raw_song, number=None): output_song, avconv=args.avconv, verbose=args.verbose) + os.remove('Music/' + input_song) meta_tags = generate_metadata(raw_song) if not args.no_metadata: metadata.embed(output_song, meta_tags) diff --git a/test/test_basic.py b/test/test_defaults.py similarity index 76% rename from test/test_basic.py rename to test/test_defaults.py index dc14c38..e380be0 100644 --- a/test/test_basic.py +++ b/test/test_defaults.py @@ -35,7 +35,8 @@ def test_download(): assert download == expect_download def test_convert(): - expect_convert = True + # exit code None = success + expect_convert = None content = spotdl.go_pafy(raw_song) music_file = spotdl.misc.generate_filename(content.title) music_file = spotdl.misc.fix_decoding(music_file) @@ -43,3 +44,13 @@ def test_convert(): output_song = music_file + spotdl.args.output_ext convert = spotdl.convert.song(input_song, output_song) assert convert == expect_convert + +def test_metadata(): + expect_metadata = True + content = spotdl.go_pafy(raw_song) + music_file = spotdl.misc.generate_filename(content.title) + music_file = spotdl.misc.fix_decoding(music_file) + output_song = music_file + spotdl.args.output_ext + meta_tags = spotdl.generate_metadata(raw_song) + metadata = spotdl.metadata.embed(output_song, meta_tags) + assert metadata == expect_metadata