Scan files to library after rename
This commit is contained in:
@@ -280,10 +280,7 @@ class Renamer(Plugin):
|
||||
log.info('Removing release %s' % release)
|
||||
|
||||
# Add this release to the library
|
||||
if not group['destination_dir'] is destination:
|
||||
fireEventAsync('scanner.to_library', folder = group['destination_dir'])
|
||||
else:
|
||||
log.error('Single destination folder not fully supported yet.')
|
||||
fireEvent('scanner.files', folder = destination, files = rename_files)
|
||||
|
||||
# Search for trailers etc
|
||||
fireEventAsync('renamer.after', group)
|
||||
|
||||
@@ -72,10 +72,19 @@ class Scanner(Plugin):
|
||||
addEvent('scanner.create_file_identifier', self.createStringIdentifier)
|
||||
|
||||
addEvent('scanner.scan', self.scan)
|
||||
addEvent('scanner.to_library', self.scanToLibrary)
|
||||
addEvent('scanner.files', self.scanToFilesLibrary)
|
||||
addEvent('scanner.folder', self.scanToFolderLibrary)
|
||||
addEvent('scanner.name_year', self.getReleaseNameYear)
|
||||
|
||||
def scanToLibrary(self, folder = None, files = []):
|
||||
def scanToFilesLibrary(self, folder = None, files = None):
|
||||
|
||||
groups = self.scan(folder = folder, files = files)
|
||||
|
||||
for group in groups.itervalues():
|
||||
if group['library']:
|
||||
fireEvent('release.add', group = group)
|
||||
|
||||
def scanToFolderLibrary(self, folder = None):
|
||||
|
||||
if not os.path.isdir(folder):
|
||||
return
|
||||
@@ -115,7 +124,7 @@ class Scanner(Plugin):
|
||||
db.remove()
|
||||
|
||||
|
||||
def scan(self, folder = None):
|
||||
def scan(self, folder = None, files = []):
|
||||
|
||||
if not folder or not os.path.isdir(folder):
|
||||
log.error('Folder doesn\'t exists: %s' % folder)
|
||||
@@ -124,30 +133,35 @@ class Scanner(Plugin):
|
||||
# Get movie "master" files
|
||||
movie_files = {}
|
||||
leftovers = []
|
||||
for root, dirs, files in os.walk(folder):
|
||||
for filename in files:
|
||||
|
||||
file_path = os.path.join(root, filename)
|
||||
# Scan all files of the folder if no files are set
|
||||
if len(files) == 0:
|
||||
files = []
|
||||
for root, dirs, walk_files in os.walk(folder):
|
||||
for filename in walk_files:
|
||||
files.append(os.path.join(root, filename))
|
||||
|
||||
# Remove ignored files
|
||||
if not self.keepFile(file_path):
|
||||
continue
|
||||
for file_path in files:
|
||||
|
||||
is_dvd_file = self.isDVDFile(file_path)
|
||||
if os.path.getsize(file_path) > self.minimal_filesize['media'] or is_dvd_file: # Minimal 300MB files or is DVD file
|
||||
# Remove ignored files
|
||||
if not self.keepFile(file_path):
|
||||
continue
|
||||
|
||||
identifier = self.createStringIdentifier(file_path, folder, exclude_filename = is_dvd_file)
|
||||
is_dvd_file = self.isDVDFile(file_path)
|
||||
if os.path.getsize(file_path) > self.minimal_filesize['media'] or is_dvd_file: # Minimal 300MB files or is DVD file
|
||||
|
||||
if not movie_files.get(identifier):
|
||||
movie_files[identifier] = {
|
||||
'unsorted_files': [],
|
||||
'identifiers': [],
|
||||
'is_dvd': is_dvd_file,
|
||||
}
|
||||
identifier = self.createStringIdentifier(file_path, folder, exclude_filename = is_dvd_file)
|
||||
|
||||
movie_files[identifier]['unsorted_files'].append(file_path)
|
||||
else:
|
||||
leftovers.append(file_path)
|
||||
if not movie_files.get(identifier):
|
||||
movie_files[identifier] = {
|
||||
'unsorted_files': [],
|
||||
'identifiers': [],
|
||||
'is_dvd': is_dvd_file,
|
||||
}
|
||||
|
||||
movie_files[identifier]['unsorted_files'].append(file_path)
|
||||
else:
|
||||
leftovers.append(file_path)
|
||||
|
||||
# Sort reverse, this prevents "Iron man 2" from getting grouped with "Iron man" as the "Iron Man 2"
|
||||
# files will be grouped first.
|
||||
|
||||
Reference in New Issue
Block a user