Merge branch 'develop'

This commit is contained in:
Ade
2017-03-11 09:04:37 +13:00
2 changed files with 29 additions and 26 deletions
+14 -12
View File
@@ -623,7 +623,7 @@ def get_downloaded_track_list(albumpath):
return downloaded_track_list return downloaded_track_list
def preserve_torrent_directory(albumpath): def preserve_torrent_directory(albumpath, forced=False):
""" """
Copy torrent directory to temp headphones_ directory to keep files for seeding. Copy torrent directory to temp headphones_ directory to keep files for seeding.
""" """
@@ -647,17 +647,19 @@ def preserve_torrent_directory(albumpath):
return None return None
# Attempt to stop multiple temp dirs being created for the same albumpath # Attempt to stop multiple temp dirs being created for the same albumpath
try: if not forced:
workdir = os.path.join(tempdir, prefix) try:
workdir = re.sub(r'\[', '[[]', workdir) workdir = os.path.join(tempdir, prefix)
workdir = re.sub(r'(?<!\[)\]', '[]]', workdir) workdir = re.sub(r'\[', '[[]', workdir)
if len(glob.glob(workdir + '*/')) >= 3: workdir = re.sub(r'(?<!\[)\]', '[]]', workdir)
logger.error( if len(glob.glob(workdir + '*/')) >= 3:
"Looks like a temp directory has previously been created for this albumpath, not continuing " + workdir.decode( logger.error(
headphones.SYS_ENCODING, 'replace')) "Looks like a temp directory has previously been created for this albumpath, not continuing " + workdir.decode(
return None headphones.SYS_ENCODING, 'replace'))
except Exception as e: shutil.rmtree(new_folder)
logger.warn("Cannot determine if already copied/processed, will copy anyway: Warning: " + str(e)) return None
except Exception as e:
logger.warn("Cannot determine if already copied/processed, will copy anyway: Warning: " + str(e))
# Copy to temp dir # Copy to temp dir
try: try:
+15 -14
View File
@@ -216,7 +216,7 @@ def verify(albumid, albumpath, Kind=None, forced=False, keep_original_folder=Fal
new_folder = None new_folder = None
new_albumpath = albumpath new_albumpath = albumpath
if keep_original_folder: if keep_original_folder:
temp_path = helpers.preserve_torrent_directory(new_albumpath) temp_path = helpers.preserve_torrent_directory(new_albumpath, forced)
if not temp_path: if not temp_path:
markAsUnprocessed(albumid, new_albumpath, keep_original_folder) markAsUnprocessed(albumid, new_albumpath, keep_original_folder)
return return
@@ -263,7 +263,7 @@ def verify(albumid, albumpath, Kind=None, forced=False, keep_original_folder=Fal
if metaartist == dbartist and metaalbum == dbalbum: if metaartist == dbartist and metaalbum == dbalbum:
doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind, doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind,
keep_original_folder) keep_original_folder, forced)
return return
# test #2: filenames # test #2: filenames
@@ -282,7 +282,7 @@ def verify(albumid, albumpath, Kind=None, forced=False, keep_original_folder=Fal
if dbtrack in filetrack: if dbtrack in filetrack:
doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind, doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind,
keep_original_folder) keep_original_folder, forced)
return return
# test #3: number of songs and duration # test #3: number of songs and duration
@@ -315,7 +315,7 @@ def verify(albumid, albumpath, Kind=None, forced=False, keep_original_folder=Fal
delta = abs(downloaded_track_duration - db_track_duration) delta = abs(downloaded_track_duration - db_track_duration)
if delta < 240: if delta < 240:
doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind, doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind,
keep_original_folder) keep_original_folder, forced)
return return
logger.warn(u'Could not identify album: %s. It may not be the intended album.', logger.warn(u'Could not identify album: %s. It may not be the intended album.',
@@ -337,13 +337,13 @@ def markAsUnprocessed(albumid, albumpath, keep_original_folder=False):
def doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind=None, def doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list, Kind=None,
keep_original_folder=False): keep_original_folder=False, forced=False):
logger.info('Starting post-processing for: %s - %s' % (release['ArtistName'], release['AlbumTitle'])) logger.info('Starting post-processing for: %s - %s' % (release['ArtistName'], release['AlbumTitle']))
new_folder = None new_folder = None
# Preserve the torrent dir # Preserve the torrent dir
if keep_original_folder: if keep_original_folder:
temp_path = helpers.preserve_torrent_directory(albumpath) temp_path = helpers.preserve_torrent_directory(albumpath, forced)
if not temp_path: if not temp_path:
markAsUnprocessed(albumid, albumpath, keep_original_folder) markAsUnprocessed(albumid, albumpath, keep_original_folder)
return return
@@ -1211,7 +1211,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
'Found a match in the database: %s. Verifying to make sure it is the correct album', 'Found a match in the database: %s. Verifying to make sure it is the correct album',
snatched['Title']) snatched['Title'])
verify(snatched['AlbumID'], folder, snatched['Kind'], verify(snatched['AlbumID'], folder, snatched['Kind'],
keep_original_folder=keep_original_folder) forced=True, keep_original_folder=keep_original_folder)
continue continue
# Attempt 2: strip release group id from filename # Attempt 2: strip release group id from filename
@@ -1238,7 +1238,8 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
else: else:
logger.info( logger.info(
'Found a (possibly) valid Musicbrainz release group id in album folder name.') 'Found a (possibly) valid Musicbrainz release group id in album folder name.')
verify(rgid, folder, forced=True) verify(rgid, folder, forced=True,
keep_original_folder=keep_original_folder)
continue continue
# Attempt 3a: parse the folder name into a valid format # Attempt 3a: parse the folder name into a valid format
@@ -1257,7 +1258,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
logger.info( logger.info(
'Found a match in the database: %s - %s. Verifying to make sure it is the correct album', 'Found a match in the database: %s - %s. Verifying to make sure it is the correct album',
release['ArtistName'], release['AlbumTitle']) release['ArtistName'], release['AlbumTitle'])
verify(release['AlbumID'], folder, keep_original_folder=keep_original_folder) verify(release['AlbumID'], folder, forced=True, keep_original_folder=keep_original_folder)
continue continue
else: else:
logger.info('Querying MusicBrainz for the release group id for: %s - %s', name, logger.info('Querying MusicBrainz for the release group id for: %s - %s', name,
@@ -1269,7 +1270,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
rgid = None rgid = None
if rgid: if rgid:
verify(rgid, folder, keep_original_folder=keep_original_folder) verify(rgid, folder, forced=True, keep_original_folder=keep_original_folder)
continue continue
else: else:
logger.info('No match found on MusicBrainz for: %s - %s', name, album) logger.info('No match found on MusicBrainz for: %s - %s', name, album)
@@ -1308,7 +1309,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
logger.info( logger.info(
'Found a match in the database: %s - %s. Verifying to make sure it is the correct album', 'Found a match in the database: %s - %s. Verifying to make sure it is the correct album',
release['ArtistName'], release['AlbumTitle']) release['ArtistName'], release['AlbumTitle'])
verify(release['AlbumID'], folder, Kind=kind, keep_original_folder=keep_original_folder) verify(release['AlbumID'], folder, Kind=kind, forced=True, keep_original_folder=keep_original_folder)
continue continue
else: else:
logger.info('Querying MusicBrainz for the release group id for: %s - %s', name, logger.info('Querying MusicBrainz for the release group id for: %s - %s', name,
@@ -1320,7 +1321,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
rgid = None rgid = None
if rgid: if rgid:
verify(rgid, folder, Kind=kind, keep_original_folder=keep_original_folder) verify(rgid, folder, Kind=kind, forced=True, keep_original_folder=keep_original_folder)
continue continue
else: else:
logger.info('No match found on MusicBrainz for: %s - %s', name, album) logger.info('No match found on MusicBrainz for: %s - %s', name, album)
@@ -1337,7 +1338,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
logger.info( logger.info(
'Found a match in the database: %s - %s. Verifying to make sure it is the correct album', 'Found a match in the database: %s - %s. Verifying to make sure it is the correct album',
release['ArtistName'], release['AlbumTitle']) release['ArtistName'], release['AlbumTitle'])
verify(release['AlbumID'], folder, keep_original_folder=keep_original_folder) verify(release['AlbumID'], folder, forced=True, keep_original_folder=keep_original_folder)
continue continue
else: else:
logger.info('Querying MusicBrainz for the release group id for: %s', logger.info('Querying MusicBrainz for the release group id for: %s',
@@ -1349,7 +1350,7 @@ def forcePostProcess(dir=None, expand_subfolders=True, album_dir=None, keep_orig
rgid = None rgid = None
if rgid: if rgid:
verify(rgid, folder, keep_original_folder=keep_original_folder) verify(rgid, folder, forced=True, keep_original_folder=keep_original_folder)
continue continue
else: else:
logger.info('No match found on MusicBrainz for: %s - %s', name, album) logger.info('No match found on MusicBrainz for: %s - %s', name, album)