From 2f4d6cf0318b12ff8e578ad905c0e0d773d62332 Mon Sep 17 00:00:00 2001 From: lmluk Date: Mon, 9 Sep 2024 21:48:37 +0200 Subject: [PATCH] add custom exiftool path ability --- main.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 68214a8..660d0cf 100644 --- a/main.py +++ b/main.py @@ -12,15 +12,16 @@ def init_parser() -> argparse.Namespace: Initializes the argparse module. """ parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument('-v', '--verbose', default=False, action='store_true', help="Explain what is being done") + parser.add_argument('--exiftool-path', dest='exiftool_path', type=str, help="Set the path to the ExifTool executable (needed if it isn't on the $PATH)") parser.add_argument('-t', '--timespan', type=str, help="Exports the given timespan\n" "Valid format: 'DD.MM.YYYY-DD.MM.YYYY'\n" "Wildcards can be used: 'DD.MM.YYYY-*'") parser.add_argument('-y', '--year', type=int, help="Exports the given year") - parser.add_argument('-p', '--path', type=str, default="./out", help="Set a custom output path (default ./out)") - parser.add_argument('--bereal-path', dest='bereal_path', type=str,default=".", help="Set a custom BeReal path (default ./)") - parser.add_argument('-v', '--verbose', action='store_true', default=False, help="Explain what is being done") - parser.add_argument('--no-memories', action='store_false', default=True, dest='memories', help="Don't export the memories") - parser.add_argument('--no-realmojis', action='store_false', default=True, dest='realmojis', help="Don't export the realmojis") + parser.add_argument('-p', '--out-path', dest='out_path', type=str, default="./out", help="Set a custom output path (default ./out)") + parser.add_argument('--bereal-path', dest='bereal_path', type=str, default=".", help="Set a custom BeReal path (default ./)") + parser.add_argument('--no-memories', dest='memories', default=True, action='store_false', help="Don't export the memories") + parser.add_argument('--no-realmojis', dest='realmojis', default=True, action='store_false', help="Don't export the realmojis") args = parser.parse_args() if args.year and args.timespan: print("Timespan argument will be prioritized") @@ -30,7 +31,8 @@ def init_parser() -> argparse.Namespace: class BeRealExporter: def __init__(self, args: argparse.Namespace): self.time_span = self.init_time_span(args) - self.out_path = args.path.strip().removesuffix('/') + self.exiftool_path = args.exiftool_path + self.out_path = args.out_path.strip().removesuffix('/') self.bereal_path = args.bereal_path.strip().removesuffix('/') self.verbose = args.verbose @@ -105,7 +107,11 @@ class BeRealExporter: }) else: self.verbose_msg(f"Add metadata to image:\n - DateTimeOriginal={img_dt}") - et().set_tags(img_name, tags=tags, params=["-P", "-overwrite_original"]) + + if self.exiftool_path: + et(executable=self.exiftool_path).set_tags(img_name, tags=tags, params=["-P", "-overwrite_original"]) + else: + et().set_tags(img_name, tags=tags, params=["-P", "-overwrite_original"]) def export_memories(self, memories: list):