Skip empty directories.

This commit is contained in:
Simon Conseil
2014-03-08 23:36:12 +01:00
parent e9d4391389
commit f23e87e39b
2 changed files with 21 additions and 3 deletions

View File

@@ -220,7 +220,7 @@ class Album(UnicodeMixin):
for _type, count in self.medias_count.items()))
def __len__(self):
return sum(self.medias_count.values())
return len(self.medias)
def __iter__(self):
return iter(self.medias)
@@ -382,9 +382,21 @@ class Gallery(object):
albums = self.albums = {}
src_path = self.settings['source']
for path, dirs, files in os.walk(src_path, followlinks=True):
for path, dirs, files in os.walk(src_path, followlinks=True,
topdown=False):
relpath = os.path.relpath(path, src_path)
albums[relpath] = Album(relpath, self.settings, dirs, files, self)
for d in dirs[:]:
path = join(relpath, d) if relpath != '.' else d
if path not in albums.keys():
dirs.remove(d)
album = Album(relpath, self.settings, dirs, files, self)
if not album.medias and not album.albums:
self.logger.info('Skip empty album: %r', album)
else:
albums[relpath] = album
self.logger.debug('Albums:\n%r', albums.values())

View File

@@ -157,3 +157,9 @@ def test_gallery(settings, tmpdir):
html = f.read()
assert '<title>Sigal test gallery</title>' in html
def test_empty_dirs(settings):
gal = Gallery(settings, ncpu=1)
assert 'empty' not in gal.albums
assert 'dir1/empty' not in gal.albums