From 2e2fc7f0adad9dedc960fe62c87cc2847eaf5c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 26 Dec 2019 23:38:16 +0100 Subject: [PATCH] prevent infinite recursion when spawning extractors (closes #489) --- gallery_dl/job.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 88b6a55e..058ebec0 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -182,6 +182,7 @@ class DownloadJob(Job): self.downloaders = {} self.postprocessors = None self.out = output.select() + self.visited = parent.visited if parent else set() def handle_url(self, url, kwdict, fallback=None): """Download the resource specified in 'url'""" @@ -261,6 +262,10 @@ class DownloadJob(Job): pp.run_metadata(pathfmt) def handle_queue(self, url, kwdict): + if url in self.visited: + return + self.visited.add(url) + if "_extractor" in kwdict: extr = kwdict["_extractor"].from_url(url) else: