From 58391d492d56acb725094a5b5a6833e594dc3ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Fri, 20 Dec 2019 16:43:08 +0100 Subject: [PATCH] cache archive keys generated in __contains__() (#524) To avoid writing a different key to the archive than what was checked against before the file download. --- gallery_dl/util.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gallery_dl/util.py b/gallery_dl/util.py index 98edb903..48ae0be7 100644 --- a/gallery_dl/util.py +++ b/gallery_dl/util.py @@ -748,13 +748,13 @@ class DownloadArchive(): def __contains__(self, kwdict): """Return True if the item described by 'kwdict' exists in archive""" - key = self.keygen(kwdict) + key = kwdict["_archive_key"] = self.keygen(kwdict) self.cursor.execute( "SELECT 1 FROM archive WHERE entry=? LIMIT 1", (key,)) return self.cursor.fetchone() def add(self, kwdict): """Add item described by 'kwdict' to archive""" - key = self.keygen(kwdict) + key = kwdict.get("_archive_key") or self.keygen(kwdict) self.cursor.execute( "INSERT OR IGNORE INTO archive VALUES (?)", (key,))