aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/postprocessor
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2023-10-22 01:00:14 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2023-10-22 01:00:14 -0400
commite052f3b9e1d9703a5a466daeaf37bacf476c2daf (patch)
treefc608c7d452695706fb13e2b0b34671f569f3ab0 /gallery_dl/postprocessor
parentb8758ecd073910ce3220b2e68399147b425c37b8 (diff)
New upstream version 1.26.1.upstream/1.26.1
Diffstat (limited to 'gallery_dl/postprocessor')
-rw-r--r--gallery_dl/postprocessor/exec.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/gallery_dl/postprocessor/exec.py b/gallery_dl/postprocessor/exec.py
index afa828c..e7ed2f6 100644
--- a/gallery_dl/postprocessor/exec.py
+++ b/gallery_dl/postprocessor/exec.py
@@ -12,6 +12,7 @@ from .common import PostProcessor
from .. import util, formatter
import subprocess
import os
+import re
if util.WINDOWS:
@@ -32,6 +33,7 @@ class ExecPP(PostProcessor):
args = options["command"]
if isinstance(args, str):
self.args = args
+ self._sub = re.compile(r"\{(_directory|_filename|_path|)\}").sub
execute = self.exec_string
else:
self.args = [formatter.parse(arg) for arg in args]
@@ -69,11 +71,8 @@ class ExecPP(PostProcessor):
if archive and archive.check(pathfmt.kwdict):
return
- if pathfmt.realpath:
- args = self.args.replace("{}", quote(pathfmt.realpath))
- else:
- args = self.args.replace("{}", quote(pathfmt.realdirectory))
-
+ self.pathfmt = pathfmt
+ args = self._sub(self._replace, self.args)
self._exec(args, True)
if archive:
@@ -90,5 +89,13 @@ class ExecPP(PostProcessor):
self.log.debug("Running '%s'", args)
subprocess.Popen(args, shell=shell)
+ def _replace(self, match):
+ name = match.group(1)
+ if name == "_directory":
+ return quote(self.pathfmt.realdirectory)
+ if name == "_filename":
+ return quote(self.pathfmt.filename)
+ return quote(self.pathfmt.realpath)
+
__postprocessor__ = ExecPP