X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/bd4b0cf0cecfd135c579924b155a021c6be99d5c..e0a7f4f7a7ae12ecbd9e016713bca7962ddf77c6:/flac2mp3 diff --git a/flac2mp3 b/flac2mp3 index 20ab476..982a012 100755 --- a/flac2mp3 +++ b/flac2mp3 @@ -61,7 +61,7 @@ from org.diplodocus.util import run_or_die ################################################################################ # The child processes -def flac2mp3(fn, title, artist, album, date, track, skip_until, pic=None): +def flac2mp3(fn, title, artist, album, date, track, skip_until, pics=None): (title, artist, album, date) = [(x == None and 'unknown') or x for x in (title, artist, album, date)] try: @@ -84,20 +84,24 @@ def flac2mp3(fn, title, artist, album, date, track, skip_until, pic=None): verbose and tmp.append('--verbose') lame_options = ' '.join(tmp) + outfile = ('%s (%s) %02d %s.mp3' % (artist, album, + track, title)).replace('/', '_') + # Escape any single quotes ' so we can quote this. (fn, title, artist, album, date) = [x.replace("'", r"'\''") for x in (fn, title, artist, album, date)] - outfile = ('%s (%s) %02d %s.mp3' % (artist, album, - track, title)).replace('/', '_') + quoted_outfile = ('%s (%s) %02d %s.mp3' % (artist, album, + track, title)).replace('/', '_') run_or_die(3, "flac %s -cd %s %s '%s' | lame --add-id3v2 %s --tt '%s' --ta '%s' --tl '%s' --ty '%s' --tn %d - '%s'" % (flac_options, skip_arg or '', until_arg or '', fn, - lame_options, title, artist, album, date, track, outfile)) + lame_options, title, artist, album, date, track, + quoted_outfile)) - if pic != None: - taglib.add_apic_frame_to_mp3(outfile, pic[0], pic[1], pic[2]) + if pics != None: + taglib.add_apic_frame_to_mp3(outfile, pics) return 0 @@ -197,17 +201,14 @@ def get_tags(fn): return tags -def find_pic(fn, tags): - pic = tags.get('__flac2mp3_PICTURE') +def find_pics(fn, tags): + pics = tags.get('__flac2mp3_PICTURE') - if not isinstance(pic, tuple): - for i in flac.get_pictures(fn): - if i[1] == flac.PICTURE_TYPE_FRONT_COVER: - pic = i[:3] - break - tags.set('__flac2mp3_PICTURE', pic) + if not isinstance(pics, list): + pics = flac.get_pictures(fn) + tags.set('__flac2mp3_PICTURE', pics) - return pic + return pics def main(argv): # Control the exit code for any uncaught exceptions. @@ -271,7 +272,7 @@ def main(argv): tags.gets('ARTIST', track), album, tags.gets('DATE', track), - track, args[i], find_pic(fn, tags)]) + track, args[i], find_pics(fn, tags)]) track = i + 2 except Exception, error: sys.stderr.write(getattr(error, 'msg', ''))