Remove the directory, if requested, after deleting Media
This commit is contained in:
1 parent
61853f49b5
commit
5d92176257
1 file changed
+13
-7
+13
-7
@@ -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)
|
||||||
|
|
||||||
Reference in new issue
Block a user