30 lines
968 B
Python
30 lines
968 B
Python
import logging
|
|
|
|
from celery import shared_task
|
|
|
|
from core.media import safe_process_public_image
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
@shared_task
|
|
def process_uploaded_image(gallery_id):
|
|
"""Process gallery image derivatives and refresh metadata."""
|
|
try:
|
|
from .models import Gallery
|
|
gallery_item = Gallery.objects.get(id=gallery_id)
|
|
|
|
if gallery_item.image:
|
|
result = safe_process_public_image(gallery_item.image, "gallery", force=True)
|
|
if result:
|
|
Gallery.objects.filter(pk=gallery_item.pk).update(
|
|
file_size=result.file_size,
|
|
width=result.width,
|
|
height=result.height,
|
|
)
|
|
logger.info(f"Processed image: {gallery_item.title}")
|
|
return f"Processed image: {gallery_item.title}"
|
|
|
|
except Exception as exc:
|
|
logger.error(f"Failed to process image: {exc}")
|
|
raise exc
|