From 6990ad0ba8d1da1a542ca791a1fad7252bbbd591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Tue, 16 Aug 2022 16:41:19 +0200 Subject: [PATCH] [formatter] do NOT apply :J to strings (#2833) --- gallery_dl/formatter.py | 10 ++++++---- test/test_formatter.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gallery_dl/formatter.py b/gallery_dl/formatter.py index bc4d837a..192950bc 100644 --- a/gallery_dl/formatter.py +++ b/gallery_dl/formatter.py @@ -296,12 +296,14 @@ def _parse_maxlen(format_spec, default): def _parse_join(format_spec, default): separator, _, format_spec = format_spec.partition(_SEPARATOR) - separator = separator[1:] + join = separator[1:].join fmt = _build_format_func(format_spec, default) - def join(obj): - return fmt(separator.join(obj)) - return join + def apply_join(obj): + if isinstance(obj, str): + return fmt(obj) + return fmt(join(obj)) + return apply_join def _parse_replace(format_spec, default): diff --git a/test/test_formatter.py b/test/test_formatter.py index aec091a5..41fe2e21 100644 --- a/test/test_formatter.py +++ b/test/test_formatter.py @@ -177,7 +177,7 @@ class TestFormatter(unittest.TestCase): self._run_test("{l:J - />20}", " a - b - c") self._run_test("{a:J/}" , self.kwdict["a"]) - self._run_test("{a:J, /}" , ", ".join(self.kwdict["a"])) + self._run_test("{a:J, /}" , self.kwdict["a"]) def test_replace(self): self._run_test("{a:Rh/C/}" , "CElLo wOrLd")