Only create file identifier once and store for later use
This commit is contained in:
1 parent
eed1bbf256
commit
c9bb756a97
1 file changed
+14
-5
@@ -71,6 +71,8 @@ class Scanner(Plugin):
|
|||||||
|
|
||||||
cp_imdb = '(cp\((?P<id>tt[0-9{7}]+)\))'
|
cp_imdb = '(cp\((?P<id>tt[0-9{7}]+)\))'
|
||||||
|
|
||||||
|
path_identifiers = {} # bind identifier to filepath
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
||||||
addEvent('scanner.create_file_identifier', self.createStringIdentifier)
|
addEvent('scanner.create_file_identifier', self.createStringIdentifier)
|
||||||
@@ -114,7 +116,6 @@ class Scanner(Plugin):
|
|||||||
|
|
||||||
# Save to DB
|
# Save to DB
|
||||||
if group['library']:
|
if group['library']:
|
||||||
#library = db.query(Library).filter_by(id = library.get('id')).one()
|
|
||||||
|
|
||||||
# Add release
|
# Add release
|
||||||
fireEvent('release.add', group = group)
|
fireEvent('release.add', group = group)
|
||||||
@@ -197,11 +198,22 @@ class Scanner(Plugin):
|
|||||||
if self.shuttingDown():
|
if self.shuttingDown():
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
|
# Create identifiers for all leftover files
|
||||||
|
for file_path in leftovers:
|
||||||
|
identifier = self.createStringIdentifier(file_path, folder)
|
||||||
|
|
||||||
|
if not self.path_identifiers.get(identifier):
|
||||||
|
self.path_identifiers[identifier] = []
|
||||||
|
|
||||||
|
self.path_identifiers[identifier].append(file_path)
|
||||||
|
|
||||||
|
|
||||||
# Group the files based on the identifier
|
# Group the files based on the identifier
|
||||||
for identifier, group in movie_files.iteritems():
|
for identifier, group in movie_files.iteritems():
|
||||||
log.debug('Grouping files for: %s' % identifier)
|
log.debug('Grouping files for: %s' % identifier)
|
||||||
|
|
||||||
found_files = self.getGroupFiles(identifier, folder, leftovers)
|
found_files = set(self.path_identifiers.get(identifier, []))
|
||||||
group['unsorted_files'].extend(found_files)
|
group['unsorted_files'].extend(found_files)
|
||||||
|
|
||||||
# Remove the found files from the leftover stack
|
# Remove the found files from the leftover stack
|
||||||
@@ -509,9 +521,6 @@ class Scanner(Plugin):
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def getGroupFiles(self, identifier, folder, file_pile):
|
|
||||||
return set([i for i in file_pile if identifier in self.createStringIdentifier(i, folder)])
|
|
||||||
|
|
||||||
def createStringIdentifier(self, file_path, folder = '', exclude_filename = False):
|
def createStringIdentifier(self, file_path, folder = '', exclude_filename = False):
|
||||||
|
|
||||||
identifier = file_path.replace(folder, '') # root folder
|
identifier = file_path.replace(folder, '') # root folder
|
||||||
|
|||||||
Reference in new issue
Block a user