Initial commit!

This commit is contained in:
2024-09-10 11:23:04 +02:00
commit c40ee0a6bf
42 changed files with 1704 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
from django.core.management.base import BaseCommand
from images.models import Image, ImageVariant, ImageVariantTask
class Command(BaseCommand):
def handle(self, *args, **options):
images = Image.objects.filter(model_version=2).all()
images_len = len(images)
for index, image in enumerate(images):
print(f"Image {index}/{images_len}")
variants = ImageVariant.objects.filter(image=image).all()
variant_sizes = list(set(map(lambda x: (x.width, x.height), variants)))
for image_type in ["avif", "webp", "jpegli"]:
for variant_size in variant_sizes:
avif_variant = [
x
for x in variants
if x.width == variant_size[0]
and x.height == variant_size[1]
and x.file_type == image_type
]
if not avif_variant:
ImageVariantTask(
image=image,
height=variant_size[1],
width=variant_size[0],
original_file_type=image.imagevariant_set.filter(
is_full_size=True, file_type__in=["jpg", "png"]
)
.first()
.file_type,
file_type=image_type,
).save()