diff --git a/tubesync/sync/tasks.py b/tubesync/sync/tasks.py index 54079dbc4..beaad3e09 100644 --- a/tubesync/sync/tasks.py +++ b/tubesync/sync/tasks.py @@ -44,21 +44,25 @@ register_huey_signals() +def get_task_map(): + TASK_MAP = { + 'index_source': Source, + 'download_media_image': Media, + 'download_media_file': Media, + 'download_media_metadata': Media, + 'save_all_media_for_source': Source, + 'rename_all_media_for_source': Source, + 'refresh_formats': Media, + } + return { f"sync.tasks.{k}": v for k,v in TASK_MAP.items() } + def map_task_to_instance(task): ''' Reverse-maps a scheduled backgrond task to an instance. Requires the task name to be a known task function and the first argument to be a UUID. This is used because UUID's are incompatible with background_task's "creator" feature. ''' - TASK_MAP = { - 'sync.tasks.index_source': Source, - 'sync.tasks.download_media_image': Media, - 'sync.tasks.download_media_file': Media, - 'sync.tasks.download_media_metadata': Media, - 'sync.tasks.save_all_media_for_source': Source, - 'sync.tasks.rename_all_media_for_source': Source, - 'sync.tasks.refresh_formats': Media, - } + TASK_MAP = get_task_map() MODEL_URL_MAP = { Source: 'sync:source', Media: 'sync:media-item', diff --git a/tubesync/sync/views/tasks.py b/tubesync/sync/views/tasks.py index 73a817996..30184de47 100644 --- a/tubesync/sync/views/tasks.py +++ b/tubesync/sync/views/tasks.py @@ -20,7 +20,7 @@ from django import forms from ..forms import ScheduleTaskForm from ..tasks import ( - map_task_to_instance, get_error_message, + get_task_map, map_task_to_instance, get_error_message, get_running_tasks, check_source_directory_exists, ) @@ -83,6 +83,8 @@ def get_queryset(self): if self.filter_source: params_prefix=f'[["{self.filter_source.pk}"' qs = qs.filter(task_params__istartswith=params_prefix) + if not settings.DEBUG: + qs = qs.filter(name__in=set(get_task_map().keys())) return qs.order_by( '-priority', 'scheduled_at',