Browse Source

Merge pull request #387 from dbw9580/natural_sort

Use natural sorting
pull/388/head
Simon Conseil 6 years ago committed by GitHub
parent
commit
ee7a719730
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      setup.cfg
  2. 20
      sigal/gallery.py

1
setup.cfg

@ -35,6 +35,7 @@ install_requires =
Markdown
Pillow>=4.0.0
pilkit
natsort
[options.extras_require]
all = boto; brotli; feedgenerator; zopfli

20
sigal/gallery.py

@ -38,6 +38,7 @@ from os.path import isfile, join, splitext
from urllib.parse import quote as url_quote
from click import get_terminal_size, progressbar
from natsort import natsort_keygen, ns
from . import image, signals, video
from .image import get_exif_tags, get_image_metadata, get_size, process_image
@ -372,14 +373,15 @@ class Album:
root_path = self.path if self.path != '.' else ''
if albums_sort_attr.startswith("meta."):
meta_key = albums_sort_attr.split(".", 1)[1]
key = lambda s: locale.strxfrm(
self.gallery.albums[join(root_path, s)].meta.get(meta_key, [''])[0])
key = natsort_keygen(key=lambda s:
self.gallery.albums[join(root_path, s)].meta.get(meta_key, [''])[0],
alg=ns.LOCALE)
else:
key = lambda s: locale.strxfrm(
getattr(self.gallery.albums[join(root_path, s)],
albums_sort_attr))
key = natsort_keygen(key=lambda s:
getattr(self.gallery.albums[join(root_path, s)], albums_sort_attr),
alg=ns.LOCALE)
else:
key = locale.strxfrm
key = natsort_keygen(alg=ns.LOCALE)
self.subdirs.sort(key=key,
reverse=self.settings['albums_sort_reverse'])
@ -392,9 +394,11 @@ class Album:
key = lambda s: s.date or datetime.now()
elif medias_sort_attr.startswith('meta.'):
meta_key = medias_sort_attr.split(".", 1)[1]
key = lambda s: locale.strxfrm(s.meta.get(meta_key, [''])[0])
key = natsort_keygen(key=lambda s: s.meta.get(meta_key, [''])[0],
alg=ns.LOCALE)
else:
key = lambda s: locale.strxfrm(getattr(s, medias_sort_attr))
key = natsort_keygen(key=lambda s: getattr(s, medias_sort_attr),
alg=ns.LOCALE)
self.medias.sort(key=key,
reverse=self.settings['medias_sort_reverse'])

Loading…
Cancel
Save