Rename dir on fail
This commit is contained in:
1 parent
f1942377b5
commit
f45a6f928c
2 files changed
+41
-25
No files matched your search
@@ -85,17 +85,9 @@ class Renamer(Plugin):
|
|||||||
movie_title = getTitle(group['library'])
|
movie_title = getTitle(group['library'])
|
||||||
|
|
||||||
# Add _UNKNOWN_ if no library item is connected
|
# Add _UNKNOWN_ if no library item is connected
|
||||||
unknown = False
|
|
||||||
if not group['library'] or not movie_title:
|
if not group['library'] or not movie_title:
|
||||||
if group['dirname']:
|
self.tagDir(group, 'unknown')
|
||||||
rename_files[group['parentdir']] = group['parentdir'].replace(group['dirname'], '_UNKNOWN_%s' % group['dirname'])
|
continue
|
||||||
else: # Add it to filename
|
|
||||||
for file_type in group['files']:
|
|
||||||
for rename_me in group['files'][file_type]:
|
|
||||||
filename = os.path.basename(rename_me)
|
|
||||||
rename_files[rename_me] = rename_me.replace(filename, '_UNKNOWN_%s' % filename)
|
|
||||||
|
|
||||||
unknown = True
|
|
||||||
# Rename the files using the library data
|
# Rename the files using the library data
|
||||||
else:
|
else:
|
||||||
group['library'] = fireEvent('library.update', identifier = group['library']['identifier'], single = True)
|
group['library'] = fireEvent('library.update', identifier = group['library']['identifier'], single = True)
|
||||||
@@ -298,14 +290,7 @@ class Renamer(Plugin):
|
|||||||
log.info('Better quality release already exists for %s, with quality %s', (movie.library.titles[0].title, release.quality.label))
|
log.info('Better quality release already exists for %s, with quality %s', (movie.library.titles[0].title, release.quality.label))
|
||||||
|
|
||||||
# Add _EXISTS_ to the parent dir
|
# Add _EXISTS_ to the parent dir
|
||||||
if group['dirname']:
|
self.tagDir(group, 'exists')
|
||||||
for rename_me in rename_files: # Don't rename anything in this group
|
|
||||||
rename_files[rename_me] = None
|
|
||||||
rename_files[group['parentdir']] = group['parentdir'].replace(group['dirname'], '_EXISTS_%s' % group['dirname'])
|
|
||||||
else: # Add it to filename
|
|
||||||
for rename_me in rename_files:
|
|
||||||
filename = os.path.basename(rename_me)
|
|
||||||
rename_files[rename_me] = rename_me.replace(filename, '_EXISTS_%s' % filename)
|
|
||||||
|
|
||||||
# Notify on rename fail
|
# Notify on rename fail
|
||||||
download_message = 'Renaming of %s (%s) canceled, exists in %s already.' % (movie.library.titles[0].title, group['meta_data']['quality']['label'], release.quality.label)
|
download_message = 'Renaming of %s (%s) canceled, exists in %s already.' % (movie.library.titles[0].title, group['meta_data']['quality']['label'], release.quality.label)
|
||||||
@@ -333,11 +318,16 @@ class Renamer(Plugin):
|
|||||||
if isinstance(src, File):
|
if isinstance(src, File):
|
||||||
src = src.path
|
src = src.path
|
||||||
|
|
||||||
|
if rename_files.get(src):
|
||||||
|
log.debug('Not removing file that will be renamed: %s', src)
|
||||||
|
continue
|
||||||
|
|
||||||
log.info('Removing "%s"', src)
|
log.info('Removing "%s"', src)
|
||||||
try:
|
try:
|
||||||
os.remove(src)
|
os.remove(src)
|
||||||
except:
|
except:
|
||||||
log.error('Failed removing %s: %s', (src, traceback.format_exc()))
|
log.error('Failed removing %s: %s', (src, traceback.format_exc()))
|
||||||
|
self.tagDir(group, 'failed_remove')
|
||||||
|
|
||||||
# Rename all files marked
|
# Rename all files marked
|
||||||
group['renamed_files'] = []
|
group['renamed_files'] = []
|
||||||
@@ -354,6 +344,7 @@ class Renamer(Plugin):
|
|||||||
group['renamed_files'].append(dst)
|
group['renamed_files'].append(dst)
|
||||||
except:
|
except:
|
||||||
log.error('Failed moving the file "%s" : %s', (os.path.basename(src), traceback.format_exc()))
|
log.error('Failed moving the file "%s" : %s', (os.path.basename(src), traceback.format_exc()))
|
||||||
|
self.tagDir(group, 'failed_rename')
|
||||||
|
|
||||||
# Remove matching releases
|
# Remove matching releases
|
||||||
for release in remove_releases:
|
for release in remove_releases:
|
||||||
@@ -370,13 +361,12 @@ class Renamer(Plugin):
|
|||||||
except:
|
except:
|
||||||
log.error('Failed removing %s: %s', (group['parentdir'], traceback.format_exc()))
|
log.error('Failed removing %s: %s', (group['parentdir'], traceback.format_exc()))
|
||||||
|
|
||||||
if not unknown:
|
# Search for trailers etc
|
||||||
# Search for trailers etc
|
fireEventAsync('renamer.after', group)
|
||||||
fireEventAsync('renamer.after', group)
|
|
||||||
|
|
||||||
# Notify on download
|
# Notify on download
|
||||||
download_message = 'Downloaded %s (%s)' % (movie_title, replacements['quality'])
|
download_message = 'Downloaded %s (%s)' % (movie_title, replacements['quality'])
|
||||||
fireEventAsync('movie.downloaded', message = download_message, data = group)
|
fireEventAsync('movie.downloaded', message = download_message, data = group)
|
||||||
|
|
||||||
# Break if CP wants to shut down
|
# Break if CP wants to shut down
|
||||||
if self.shuttingDown():
|
if self.shuttingDown():
|
||||||
@@ -401,6 +391,32 @@ class Renamer(Plugin):
|
|||||||
|
|
||||||
return rename_files
|
return rename_files
|
||||||
|
|
||||||
|
def tagDir(self, group, tag):
|
||||||
|
|
||||||
|
rename_files = {}
|
||||||
|
|
||||||
|
if group['dirname']:
|
||||||
|
rename_files[group['parentdir']] = group['parentdir'].replace(group['dirname'], '_%s_%s' % (tag.upper(), group['dirname']))
|
||||||
|
else: # Add it to filename
|
||||||
|
for file_type in group['files']:
|
||||||
|
for rename_me in group['files'][file_type]:
|
||||||
|
filename = os.path.basename(rename_me)
|
||||||
|
rename_files[rename_me] = rename_me.replace(filename, '_%s_%s' % (tag.upper(), filename))
|
||||||
|
|
||||||
|
for src in rename_files:
|
||||||
|
if rename_files[src]:
|
||||||
|
dst = rename_files[src]
|
||||||
|
log.info('Renaming "%s" to "%s"', (src, dst))
|
||||||
|
|
||||||
|
# Create dir
|
||||||
|
self.makeDir(os.path.dirname(dst))
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.moveFile(src, dst)
|
||||||
|
except:
|
||||||
|
log.error('Failed moving the file "%s" : %s', (os.path.basename(src), traceback.format_exc()))
|
||||||
|
raise
|
||||||
|
|
||||||
def moveFile(self, old, dest):
|
def moveFile(self, old, dest):
|
||||||
try:
|
try:
|
||||||
shutil.move(old, dest)
|
shutil.move(old, dest)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class Scanner(Plugin):
|
|||||||
'media': 314572800, # 300MB
|
'media': 314572800, # 300MB
|
||||||
'trailer': 1048576, # 1MB
|
'trailer': 1048576, # 1MB
|
||||||
}
|
}
|
||||||
ignored_in_path = ['_unpack', '_failed_', '_unknown_', '_exists_', '.appledouble', '.appledb', '.appledesktop', os.path.sep + '._', '.ds_store', 'cp.cpnfo'] #unpacking, smb-crap, hidden files
|
ignored_in_path = ['_unpack', '_failed_', '_unknown_', '_exists_', '_failed_remove_', '_failed_rename_', '.appledouble', '.appledb', '.appledesktop', os.path.sep + '._', '.ds_store', 'cp.cpnfo'] #unpacking, smb-crap, hidden files
|
||||||
ignore_names = ['extract', 'extracting', 'extracted', 'movie', 'movies', 'film', 'films', 'download', 'downloads', 'video_ts', 'audio_ts', 'bdmv', 'certificate']
|
ignore_names = ['extract', 'extracting', 'extracted', 'movie', 'movies', 'film', 'films', 'download', 'downloads', 'video_ts', 'audio_ts', 'bdmv', 'certificate']
|
||||||
extensions = {
|
extensions = {
|
||||||
'movie': ['mkv', 'wmv', 'avi', 'mpg', 'mpeg', 'mp4', 'm2ts', 'iso', 'img', 'mdf', 'ts', 'm4v'],
|
'movie': ['mkv', 'wmv', 'avi', 'mpg', 'mpeg', 'mp4', 'm2ts', 'iso', 'img', 'mdf', 'ts', 'm4v'],
|
||||||
|
|||||||
Reference in new issue
Block a user