From 92130f3604f0716e229e338dbfbd2eddfc0ec342 Mon Sep 17 00:00:00 2001 From: tcely Date: Mon, 10 Feb 2025 06:19:25 -0500 Subject: [PATCH 1/2] Do not schedule additional `download_media` tasks --- tubesync/sync/signals.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tubesync/sync/signals.py b/tubesync/sync/signals.py index 4f811add..6f244fd5 100644 --- a/tubesync/sync/signals.py +++ b/tubesync/sync/signals.py @@ -14,7 +14,7 @@ from .tasks import (delete_task_by_source, delete_task_by_media, index_source_ta map_task_to_instance, check_source_directory_exists, download_media, rescan_media_server, download_source_images, save_all_media_for_source, rename_all_media_for_source, - get_media_metadata_task) + get_media_metadata_task, get_media_download_task) from .utils import delete_file, glob_quote from .filtering import filter_media @@ -183,13 +183,13 @@ def media_post_save(sender, instance, created, **kwargs): verbose_name=verbose_name.format(instance.name), remove_existing_tasks=True ) + existing_media_download_task = get_media_download_task(str(instance.pk)) # If the media has not yet been downloaded schedule it to be downloaded - if not instance.media_file_exists: + if not (instance.media_file_exists or existing_media_download_task): instance.downloaded = False instance.media_file = None - if (not instance.downloaded and instance.can_download and not instance.skip - and instance.source.download_media): - delete_task_by_media('sync.tasks.download_media', (str(instance.pk),)) + if (instance.source.download_media and instance.can_download) and not ( + instance.skip or instance.downloaded or existing_media_download_task): verbose_name = _('Downloading media for "{}"') download_media( str(instance.pk), From d7222e8fbb167b46c4b36fcaa32b0b08f025d271 Mon Sep 17 00:00:00 2001 From: tcely Date: Mon, 10 Feb 2025 07:23:50 -0500 Subject: [PATCH 2/2] Be consistent with `get_media_metadata_task` --- tubesync/sync/signals.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tubesync/sync/signals.py b/tubesync/sync/signals.py index 6f244fd5..7625cec5 100644 --- a/tubesync/sync/signals.py +++ b/tubesync/sync/signals.py @@ -156,8 +156,9 @@ def media_post_save(sender, instance, created, **kwargs): post_save.disconnect(media_post_save, sender=Media) instance.save() post_save.connect(media_post_save, sender=Media) + existing_media_metadata_task = get_media_metadata_task(str(instance.pk)) # If the media is missing metadata schedule it to be downloaded - if not instance.metadata and not instance.skip and not get_media_metadata_task(instance.pk): + if not (instance.skip or instance.metadata or existing_media_metadata_task): log.info(f'Scheduling task to download metadata for: {instance.url}') verbose_name = _('Downloading metadata for "{}"') download_media_metadata(