From: Date: Mon, 9 Dec 2013 00:22:30 +0000 (-0800) Subject: switch to metaflac --export-picture-to X-Git-Url: https://diplodocus.org/git/flac-archive/commitdiff_plain/920b33a2889066a6a236cff1ac8f13c8f757aa35 switch to metaflac --export-picture-to Eliminates the last compiled module. I half wonder if this flag were there from the beginning and my stupid flac module was never needed, but I'm not going digging for the answer to that right now. --- diff --git a/flac2mp3 b/flac2mp3 index 24e4a48..aa00fff 100755 --- a/flac2mp3 +++ b/flac2mp3 @@ -61,14 +61,13 @@ from subprocess import Popen, PIPE import org.diplodocus.jobs from org.diplodocus.util import run_or_die -from flac_archive import flac from flac_archive.tags import Tags ################################################################################ # The child processes def flac2mp3(fn, title, artist, album_artist, album, discnum, date, - track, skip_until, pics=None): + track, skip_until): (title, artist, album) = [(x == None and 'unknown') or x for x in (title, artist, album)] if date == None: @@ -111,12 +110,21 @@ def flac2mp3(fn, title, artist, album_artist, album, discnum, date, return quoted_outfile.replace(r"'\''", "'") pic_options = '' - if pics: - (fd, picfn) = tempfile.mkstemp() - f = os.fdopen(fd, 'wb') - f.write(pics[0][7]) - f.close() + (fd, picfn) = tempfile.mkstemp() + os.close(fd) + p = Popen(['metaflac', '--export-picture-to=' + picfn, fn], stderr=PIPE) + status = p.wait() + stderr = ''.join(p.stderr) + # Hacky check for flac with no album art + if 'no PICTURE block' in stderr: + # That's fine, just no picture. + pass + else: + if status != 0: + sys.stderr.write('metaflac exited %d: %s\n' % (status, stderr)) + return pic_options = "--ti '%s'" % picfn + os.system('md5sum ' + picfn) try: run_or_die(3, "flac %s -cd %s '%s' | lame --id3v2-only --id3v2-latin1 --pad-id3v2-size 0 %s --tt '%s' --ta '%s' --tl '%s' --ty '%s' --tn %d %s %s %s - '%s'" % (flac_options, ' '.join(skip_until), fn, @@ -124,7 +132,7 @@ def flac2mp3(fn, title, artist, album_artist, album, discnum, date, pic_options, album_artist_options, discnum_options, quoted_outfile)) finally: - if pic_options: + if pic: try: os.unlink(picfn) except: @@ -245,8 +253,6 @@ def main(argv): else: track = int(track) - pics = flac.get_pictures(fn) - for i in range(len(tags)): title = tags.gets('TITLE', track, separator) part = tags.gets('PART', track) @@ -263,7 +269,7 @@ def main(argv): ', '.join(artist), album_artist, album, discnum, tags.gets('DATE', track), - track, args[i], pics) + track, args[i]) if not os.path.exists(mp3): print fn break @@ -272,7 +278,7 @@ def main(argv): ', '.join(artist), album_artist, album, discnum, tags.gets('DATE', track), - track, args[i], pics)) + track, args[i])) track = i + 2 except Exception, error: sys.stderr.write(getattr(error, 'msg', ''))