From: Eric Gillespie Date: Sun, 4 Nov 2018 02:39:30 +0000 (-0700) Subject: Attempt to match Microsoft file name rules. X-Git-Url: https://diplodocus.org/git/flac-archive/commitdiff_plain/5c6c37736a1efb72aa47c89fbd821f52502b55f4 Attempt to match Microsoft file name rules. --- diff --git a/flac2mp3 b/flac2mp3 index b2fc719..de2000f 100755 --- a/flac2mp3 +++ b/flac2mp3 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python2 """ =head1 NAME @@ -90,6 +90,25 @@ def flac2mp3(fn, title, artist, album_artist, album, discnum, date, unquoted_fn = fn + # XXX all this quoting is an unholy mess and I can see bugs: + # Escaping quotes and then assembling a file name out of that?! + # Moved this part up 2018-11-03 and followed Microsoft file name rules. + outfile_album = album + if discnum != None: + outfile_album = '%s (disc %s)' % (album, discnum) + quoted_outfile = ('%s (%s) %02d %s.mp3' % ( + artist, outfile_album, track, title)) \ + .replace("'", '_') \ + .replace('<', '_') \ + .replace('>', '_') \ + .replace(':', '_') \ + .replace('"', '_') \ + .replace('/', '_') \ + .replace('\\', '_') \ + .replace('|', '_') \ + .replace('?', '_') \ + .replace('*', '_') + # Escape any single quotes ' so we can quote this. (fn, title, artist, album_artist, album, date) = [(x or '').replace("'", r"'\''") @@ -99,14 +118,11 @@ def flac2mp3(fn, title, artist, album_artist, album, discnum, date, if album_artist: album_artist_options = "--tv 'TPE2=%s'" % album_artist - outfile_album = album discnum_options = '' if discnum != None: - outfile_album = '%s (disc %s)' % (album, discnum) discnum_options = "--tv 'TPOS=%d'" % int(discnum) - quoted_outfile = ('%s (%s) %02d %s.mp3' % (artist, outfile_album, - track, title)).replace('/', '_') + # XXX and I have no idea what this was... # HACK! :( if check_missing: return quoted_outfile.replace(r"'\''", "'")