aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/option.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/option.py')
-rw-r--r--gallery_dl/option.py37
1 files changed, 19 insertions, 18 deletions
diff --git a/gallery_dl/option.py b/gallery_dl/option.py
index 3118b83..34222a2 100644
--- a/gallery_dl/option.py
+++ b/gallery_dl/option.py
@@ -18,13 +18,13 @@ from . import job, version
class ConfigAction(argparse.Action):
"""Set argparse results as config values"""
def __call__(self, parser, namespace, values, option_string=None):
- namespace.options.append(((self.dest,), values))
+ namespace.options.append(((), self.dest, values))
class ConfigConstAction(argparse.Action):
"""Set argparse const values as config values"""
def __call__(self, parser, namespace, values, option_string=None):
- namespace.options.append(((self.dest,), self.const))
+ namespace.options.append(((), self.dest, self.const))
class AppendCommandAction(argparse.Action):
@@ -41,7 +41,7 @@ class DeprecatedConfigConstAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
print("warning: {} is deprecated. Use {} instead.".format(
"/".join(self.option_strings), self.choices), file=sys.stderr)
- namespace.options.append(((self.dest,), self.const))
+ namespace.options.append(((), self.dest, self.const))
class ParseAction(argparse.Action):
@@ -52,8 +52,8 @@ class ParseAction(argparse.Action):
value = json.loads(value)
except ValueError:
pass
- key = key.split(".")
- namespace.options.append((key, value))
+ key = key.split(".") # splitting an empty string becomes [""]
+ namespace.options.append((key[:-1], key[-1], value))
class Formatter(argparse.HelpFormatter):
@@ -224,12 +224,6 @@ def build_parser():
dest="verify", nargs=0, action=ConfigConstAction, const=False,
help="Disable HTTPS certificate validation",
)
- downloader.add_argument(
- "--abort-on-skip",
- action=DeprecatedConfigConstAction,
- dest="skip", nargs=0, const="abort", choices="-A/--abort",
- help=argparse.SUPPRESS,
- )
configuration = parser.add_argument_group("Configuration Options")
configuration.add_argument(
@@ -313,13 +307,6 @@ 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",
@@ -358,6 +345,20 @@ def build_parser():
action="append_const", const={"name": "mtime"},
help="Set file modification times according to 'date' metadata",
)
+ postprocessor.add_argument(
+ "--exec",
+ dest="postprocessors", metavar="CMD",
+ action=AppendCommandAction, const={"name": "exec"},
+ help=("Execute CMD for each downloaded file. "
+ "Example: --exec 'convert {} {}.png && rm {}'"),
+ )
+ postprocessor.add_argument(
+ "--exec-after",
+ dest="postprocessors", metavar="CMD",
+ action=AppendCommandAction, const={"name": "exec", "final": True},
+ help=("Execute CMD after all files were downloaded successfully. "
+ "Example: --exec-after 'cd {} && convert * ../doc.pdf'"),
+ )
parser.add_argument(
"urls",