summaryrefslogtreecommitdiffstats
path: root/gallery_dl/option.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/option.py')
-rw-r--r--gallery_dl/option.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/gallery_dl/option.py b/gallery_dl/option.py
index ecc2ee3..d3119b7 100644
--- a/gallery_dl/option.py
+++ b/gallery_dl/option.py
@@ -27,6 +27,15 @@ class ConfigConstAction(argparse.Action):
namespace.options.append(((self.dest,), self.const))
+class AppendCommandAction(argparse.Action):
+ def __call__(self, parser, namespace, values, option_string=None):
+ items = getattr(namespace, self.dest, None) or []
+ val = self.const.copy()
+ val["command"] = values
+ items.append(val)
+ setattr(namespace, self.dest, items)
+
+
class DeprecatedConfigConstAction(argparse.Action):
"""Set argparse const values as config values + deprecation warning"""
def __call__(self, parser, namespace, values, option_string=None):
@@ -304,6 +313,13 @@ def build_parser():
help="Store downloaded files in a ZIP archive",
)
postprocessor.add_argument(
+ "--exec",
+ dest="postprocessors", metavar="CMD",
+ action=AppendCommandAction, const={"name": "exec"},
+ help=("Execute CMD for each downloaded file. "
+ "Example: --exec 'magick convert {} {}.png && rm {}'"),
+ )
+ postprocessor.add_argument(
"--ugoira-conv",
dest="postprocessors",
action="append_const", const={"name": "ugoira", "ffmpeg-args": (