diff options
Diffstat (limited to 'gallery_dl/formatter.py')
| -rw-r--r-- | gallery_dl/formatter.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gallery_dl/formatter.py b/gallery_dl/formatter.py index dd32b8a..ca05fa5 100644 --- a/gallery_dl/formatter.py +++ b/gallery_dl/formatter.py @@ -347,6 +347,20 @@ def _parse_offset(format_spec, default): return off +def _parse_sort(format_spec, default): + args, _, format_spec = format_spec.partition(_SEPARATOR) + fmt = _build_format_func(format_spec, default) + + if "d" in args or "r" in args: + def sort_desc(obj): + return fmt(sorted(obj, reverse=True)) + return sort_desc + else: + def sort_asc(obj): + return fmt(sorted(obj)) + return sort_asc + + def _default_format(format_spec, default): def wrap(obj): return format(obj, format_spec) @@ -395,4 +409,5 @@ _FORMAT_SPECIFIERS = { "J": _parse_join, "O": _parse_offset, "R": _parse_replace, + "S": _parse_sort, } |
