Remove the directory, if requested, after deleting Media

This commit is contained in:
tcely authored and GitHub committed 2025-03-18 18:54:36 -04:00
1 parent 61853f49b5
commit 5d92176257
1 file changed
+13 -7
+13 -7
View File
@@ -11,7 +11,7 @@ import uuid
from io import BytesIO
from hashlib import sha1
from datetime import datetime, timedelta
from shutil import copyfile
from shutil import copyfile, rmtree
from PIL import Image
from django.conf import settings
from django.core.files.base import ContentFile
@@ -719,8 +719,8 @@ def wait_for_media_premiere(media_id):
media.title = _(f'Premieres in {hours(media.published - now)} hours')
media.save()
@background(schedule=300, remove_existing_tasks=False)
def delete_all_media_for_source(source_id, source_name):
@background(schedule=90, remove_existing_tasks=False)
def delete_all_media_for_source(source_id, source_name, source_directory_path):
source = None
try:
source = Source.objects.get(pk=source_id)
@@ -734,8 +734,14 @@ def delete_all_media_for_source(source_id, source_name):
).filter(
source=source or source_id,
)
for media in mqs:
log.info(f'Deleting media for source: {source_name} item: {media.name}')
with atomic():
media.delete()
with atomic(durable=True):
for media in mqs:
log.info(f'Deleting media for source: {source_name} item: {media.name}')
with atomic():
media.delete()
# Remove the directory, if the user requested that
directory_path = Path(source_directory_path)
if (directory_path / '.to_be_removed').is_file():
log.info(f'Deleting directory for: {source_name}: {directory_path}')
rmtree(directory_path, True)