Browse Source

Renamer now really renames files

pull/51/merge
Ruud 14 years ago
parent
commit
a76160397c
  1. 55
      couchpotato/core/plugins/renamer/main.py

55
couchpotato/core/plugins/renamer/main.py

@ -18,13 +18,14 @@ class Renamer(Plugin):
def __init__(self): def __init__(self):
addEvent('renamer.scan', self.scan) addEvent('renamer.scan', self.scan)
#addEvent('app.load', self.scan) addEvent('app.load', self.scan)
#fireEvent('schedule.interval', 'renamer.scan', self.scan, minutes = self.conf('run_every')) fireEvent('schedule.interval', 'renamer.scan', self.scan, minutes = self.conf('run_every'))
def scan(self): def scan(self):
groups = fireEvent('scanner.scan', folder = self.conf('from'), single = True) groups = fireEvent('scanner.scan', folder = self.conf('from'), single = True)
if groups is None: return
destination = self.conf('to') destination = self.conf('to')
folder_name = self.conf('folder_name') folder_name = self.conf('folder_name')
@ -151,42 +152,52 @@ class Renamer(Plugin):
# Before renaming, remove the lower quality files # Before renaming, remove the lower quality files
db = get_session() db = get_session()
library = db.query(Library).filter_by(identifier = group['library']['identifier']).first() library = db.query(Library).filter_by(identifier = group['library']['identifier']).first()
done_status = fireEvent('status.get', 'done', single = True)
for movie in library.movies: for movie in library.movies:
for release in movie.releases: for release in movie.releases:
if release.quality.order < group['meta_data']['quality']['order']: if release.quality.order < group['meta_data']['quality']['order']:
log.info('Removing older release for %s, with quality %s' % (movie.library.titles[0].title, release.quality.label)) log.info('Removing older release for %s, with quality %s' % (movie.library.titles[0].title, release.quality.label))
elif release.quality.order is group['meta_data']['quality']['order']: elif release.status_id is done_status.get('id'):
log.info('Same quality release already exists for %s, with quality %s. Assuming repack.' % (movie.library.titles[0].title, release.quality.label)) if release.quality.order is group['meta_data']['quality']['order']:
else: log.info('Same quality release already exists for %s, with quality %s. Assuming repack.' % (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)) else:
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
if group['dirname']: # Add _EXISTS_ to the parent dir
for rename_me in rename_files: # Don't rename anything in this group if group['dirname']:
rename_files[rename_me] = None for rename_me in rename_files: # Don't rename anything in this group
rename_files[group['parentdir']] = group['parentdir'].replace(group['dirname'], '_EXISTS_%s' % group['dirname']) rename_files[rename_me] = None
else: # Add it to filename rename_files[group['parentdir']] = group['parentdir'].replace(group['dirname'], '_EXISTS_%s' % group['dirname'])
for rename_me in rename_files: else: # Add it to filename
filename = os.path.basename(rename_me) for rename_me in rename_files:
rename_files[rename_me] = rename_me.replace(filename, '_EXISTS_%s' % filename) filename = os.path.basename(rename_me)
rename_files[rename_me] = rename_me.replace(filename, '_EXISTS_%s' % filename)
break
break
for file in release.files: for file in release.files:
log.info('Removing "%s"' % file.path) log.info('Removing "%s"' % file.path)
# Rename # Rename
for rename_me in rename_files: for src in rename_files:
if rename_files[rename_me]: if rename_files[src]:
log.info('Renaming "%s" to "%s"' % (rename_me, rename_files[rename_me]))
path = os.path.dirname(rename_files[rename_me]) dst = rename_files[src]
log.info('Renaming "%s" to "%s"' % (src, dst))
path = os.path.dirname(dst)
try: try:
if not os.path.isdir(path): os.makedirs(path) if not os.path.isdir(path): os.makedirs(path)
except: except:
log.error('Failed creating dir %s: %s' % (path, traceback.format_exc())) log.error('Failed creating dir %s: %s' % (path, traceback.format_exc()))
continue continue
try:
shutil.move(src, dst)
except:
log.error('Failed moving the file "%s" : %s' % (os.path.basename(src), traceback.format_exc()))
#print rename_me, rename_files[rename_me] #print rename_me, rename_files[rename_me]
# Search for trailers # Search for trailers

Loading…
Cancel
Save