def generate_image_set(self, force: bool=False) -> None:
if not os.path.isfile(self.zipped.path):
return
image_set_present = bool(self.image_set.all())
# large thumbnail and image set
if not image_set_present or force:
try:
my_zip = zipfile.ZipFile(
self.zipped.path, 'r')
except (zipfile.BadZipFile, NotImplementedError):
return
if my_zip.testzip():
my_zip.close()
return
filtered_files = list(filter(discard_zipfile_contents, sorted(my_zip.namelist(), key=zfill_to_three)))
for img in self.image_set.all():
if img.extracted:
img.image.delete(save=False)
img.thumbnail.delete(save=False)
img.delete()
for count, filename in enumerate(filtered_files, start=1):
image = Image(archive=self, archive_position=count, position=count)
image.image = None
image.save()
my_zip.close()
评论列表
文章目录