diff --git a/headphones/helpers.py b/headphones/helpers.py index 9428f319..73054bdb 100644 --- a/headphones/helpers.py +++ b/headphones/helpers.py @@ -121,6 +121,17 @@ def cleanName(string): return out_string +def cleanTitle(title): + + title = re.sub('[\.\-\/\_]', ' ', title).lower() + + # Strip out extra whitespace + title = ' '.join(title.split()) + + title = title.title() + + return title + def extract_data(s): from headphones import logger diff --git a/headphones/postprocessor.py b/headphones/postprocessor.py index f600dc4a..b1f57b38 100644 --- a/headphones/postprocessor.py +++ b/headphones/postprocessor.py @@ -432,21 +432,27 @@ def renameFiles(albumpath, downloaded_track_list, release): tracknumber = '%02d' % f.track if not f.title: - basename = os.path.basename(downloaded_track) + + basename = unicode(os.path.basename(downloaded_track), headphones.SYS_ENCODING, errors='replace') title = os.path.splitext(basename)[0] + ext = os.path.splitext(basename)[1] + + new_file_name = helpers.cleanTitle(title) + ext + else: title = f.title - values = { 'tracknumber': tracknumber, - 'title': title, - 'artist': release['ArtistName'], - 'album': release['AlbumTitle'], - 'year': year - } - - ext = os.path.splitext(downloaded_track)[1] + values = { 'tracknumber': tracknumber, + 'title': title, + 'artist': release['ArtistName'], + 'album': release['AlbumTitle'], + 'year': year + } + + ext = os.path.splitext(downloaded_track)[1] + + new_file_name = helpers.replace_all(headphones.FILE_FORMAT, values).replace('/','_') + ext - new_file_name = helpers.replace_all(headphones.FILE_FORMAT, values).replace('/','_') + ext new_file_name = new_file_name.replace('?','_').replace(':', '_').encode(headphones.SYS_ENCODING) @@ -550,6 +556,4 @@ def forcePostProcess(): logger.error('Can not get release information for this album') continue if rgid: - verify(rgid, albumpath) - - \ No newline at end of file + verify(rgid, albumpath) \ No newline at end of file