From 899dcc62cfdff7b19d53646dd25cbcd045a54cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Tue, 14 Oct 2025 11:13:17 +0200 Subject: [PATCH] [job] implement '"archive-event": "after"' (#8373) --- docs/configuration.rst | 11 ++++++----- gallery_dl/job.py | 4 ++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index 306ea928..72599f00 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -1134,15 +1134,16 @@ Type Default ``"file"`` Example - * ``"file,skip"`` - * ``["file", "skip"]`` + * ``"after,skip"`` + * ``["after", "skip"]`` Description `Event(s) `__ for which IDs get written to an `archive `__. - - Available events are: - ``file``, ``skip`` +Available Events + * ``file`` + * ``after`` + * ``skip`` extractor.*.archive-format diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 9369e5d0..c0eb5e62 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -388,6 +388,8 @@ class DownloadJob(Job): if "after" in hooks: for callback in hooks["after"]: callback(pathfmt) + if archive and self._archive_write_after: + archive.add(kwdict) def handle_directory(self, kwdict): """Set and create the target directory for downloads""" @@ -593,11 +595,13 @@ class DownloadJob(Job): if events is None: self._archive_write_file = True self._archive_write_skip = False + self._archive_write_after = False else: if isinstance(events, str): events = events.split(",") self._archive_write_file = ("file" in events) self._archive_write_skip = ("skip" in events) + self._archive_write_after = ("after" in events) if skip := cfg("skip", True): self._skipexc = None