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 io import BytesIO
from hashlib import sha1 from hashlib import sha1
from datetime import datetime, timedelta from datetime import datetime, timedelta
from shutil import copyfile from shutil import copyfile, rmtree
from PIL import Image from PIL import Image
from django.conf import settings from django.conf import settings
from django.core.files.base import ContentFile 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.title = _(f'Premieres in {hours(media.published - now)} hours')
media.save() media.save()
@background(schedule=300, remove_existing_tasks=False) @background(schedule=90, remove_existing_tasks=False)
def delete_all_media_for_source(source_id, source_name): def delete_all_media_for_source(source_id, source_name, source_directory_path):
source = None source = None
try: try:
source = Source.objects.get(pk=source_id) source = Source.objects.get(pk=source_id)
@@ -734,8 +734,14 @@ def delete_all_media_for_source(source_id, source_name):
).filter( ).filter(
source=source or source_id, source=source or source_id,
) )
for media in mqs: with atomic(durable=True):
log.info(f'Deleting media for source: {source_name} item: {media.name}') for media in mqs:
with atomic(): log.info(f'Deleting media for source: {source_name} item: {media.name}')
media.delete() 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)