diff --git a/docs/formatting.md b/docs/formatting.md index 75f32f6a..1e695bf2 100644 --- a/docs/formatting.md +++ b/docs/formatting.md @@ -272,6 +272,12 @@ Replacement field names that are available in all format strings. {_now:%Y-%m} 2022-08 + + _nul + Universal null value + {date|_nul:%Y-%m} + None + _lit String literals diff --git a/gallery_dl/formatter.py b/gallery_dl/formatter.py index f197e5db..b50bd643 100644 --- a/gallery_dl/formatter.py +++ b/gallery_dl/formatter.py @@ -476,6 +476,7 @@ _GLOBALS = { "_env": lambda: os.environ, "_lit": lambda: _literal, "_now": datetime.datetime.now, + "_nul": lambda: util.NONE, } _CONVERSIONS = { "l": str.lower, diff --git a/test/test_formatter.py b/test/test_formatter.py index 75324fb9..38c22ab9 100644 --- a/test/test_formatter.py +++ b/test/test_formatter.py @@ -351,6 +351,14 @@ class TestFormatter(unittest.TestCase): self.assertRegex(out1, r"^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d(\.\d+)?$") self.assertNotEqual(out1, out2) + def test_globals_nul(self): + value = "None" + + self._run_test("{_nul}" , value) + self._run_test("{_nul[key]}" , value) + self._run_test("{z|_nul}" , value) + self._run_test("{z|_nul:%Y%m%s}", value) + def test_literals(self): value = "foo"