mirror of
https://github.com/rembo10/headphones.git
synced 2026-07-22 00:44:00 +01:00
Merge branch 'develop'
This commit is contained in:
+14
-12
@@ -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
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user