Browse Source

Don't create thumbnails and originals directories if the album has no medias.

pull/87/merge
Simon Conseil 12 years ago
parent
commit
ef9419c65b
  1. 35
      sigal/gallery.py
  2. 3
      sigal/templates/sigal.conf.py

35
sigal/gallery.py

@ -178,14 +178,6 @@ class Album(UnicodeMixin):
self.logger = logging.getLogger(__name__)
self._get_metadata()
# Create thumbnails directory and optionally the one for original img
check_or_create_dir(self.dst_path)
check_or_create_dir(join(self.dst_path, settings['thumb_dir']))
if settings['keep_orig']:
self.orig_path = join(self.dst_path, settings['orig_dir'])
check_or_create_dir(self.orig_path)
# optionally add index.html to the URLs
self.url_ext = self.output_file if settings['index_in_url'] else ''
self.url = self.name + '/' + self.url_ext
@ -215,13 +207,14 @@ class Album(UnicodeMixin):
medias.append(media)
# sort images
medias_sort_attr = settings['medias_sort_attr']
if medias_sort_attr == 'date':
key = lambda s: s.date or datetime.now()
else:
key = lambda s: strxfrm(getattr(s, medias_sort_attr))
if medias:
medias_sort_attr = settings['medias_sort_attr']
if medias_sort_attr == 'date':
key = lambda s: s.date or datetime.now()
else:
key = lambda s: strxfrm(getattr(s, medias_sort_attr))
medias.sort(key=key, reverse=settings['medias_sort_reverse'])
medias.sort(key=key, reverse=settings['medias_sort_reverse'])
def __repr__(self):
return "<%s>(%r)" % (self.__class__.__name__, self.path)
@ -262,6 +255,18 @@ class Album(UnicodeMixin):
self.description = ''
self.meta = {}
def create_output_directories(self):
"""Create output directories for thumbnails and original images."""
check_or_create_dir(self.dst_path)
if self.medias:
check_or_create_dir(join(self.dst_path,
self.settings['thumb_dir']))
if self.medias and self.settings['keep_orig']:
self.orig_path = join(self.dst_path, self.settings['orig_dir'])
check_or_create_dir(self.orig_path)
@property
def images(self):
"""List of images (:class:`~sigal.gallery.Image`)."""
@ -429,8 +434,8 @@ class Gallery(object):
if not album.medias and not album.albums:
self.logger.info('Skip empty album: %r', album)
# TODO delete empty directories
else:
album.create_output_directories()
albums[relpath] = album
self.logger.debug('Albums:\n%r', albums.values())

3
sigal/templates/sigal.conf.py

@ -72,7 +72,8 @@ thumb_size = (280, 210)
# medias_sort_reverse = False
# Filter directories and files.
# The settings take a list of patterns matched with the fnmatch module:
# The settings take a list of patterns matched with the fnmatch module on the
# path relative to the source directory:
# http://docs.python.org/2/library/fnmatch.html
ignore_directories = []
ignore_files = []

Loading…
Cancel
Save