1
0
mirror of https://github.com/bspeice/Melodia synced 2024-12-26 00:28:13 -05:00

Optimize the filesystem scanning slightly

This commit is contained in:
Bradlee Speice 2013-01-10 10:17:34 -05:00
parent 944593be94
commit d4d3ad450a

View File

@ -43,7 +43,7 @@ class Archive (models.Model):
"Scan the archive's root filesystem and add any new songs without adding metadata, delete songs that exist no more" "Scan the archive's root filesystem and add any new songs without adding metadata, delete songs that exist no more"
#This method is implemented since the other scan methods all need to use the same code #This method is implemented since the other scan methods all need to use the same code
#DRY FTW #DRY FTW
import re, os import re, os, itertools
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from Melodia.melodia_settings import SUPPORTED_AUDIO_EXTENSIONS from Melodia.melodia_settings import SUPPORTED_AUDIO_EXTENSIONS
from Melodia.melodia_settings import HASH_FUNCTION as hash from Melodia.melodia_settings import HASH_FUNCTION as hash
@ -60,10 +60,8 @@ class Archive (models.Model):
#Add new songs #Add new songs
for dirname, dirnames, filenames in os.walk(self.root_folder): for dirname, dirnames, filenames in os.walk(self.root_folder):
#For each filename #For each filename that is supported
for filename in filenames: for filename in itertools.ifilter(lambda filename: re.match(regex, filename), filenames):
#If the filename is a supported audio extension
if re.match(regex, filename):
#Make sure that `filename` is in the database #Make sure that `filename` is in the database
try: try:
rel_url = os.path.join(dirname, filename) rel_url = os.path.join(dirname, filename)