aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/formatter.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/formatter.py')
-rw-r--r--gallery_dl/formatter.py15
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,
}