diff --git a/tubesync/sync/forms.py b/tubesync/sync/forms.py index b96b39702..9f45ef22e 100644 --- a/tubesync/sync/forms.py +++ b/tubesync/sync/forms.py @@ -1,5 +1,6 @@ from django import forms, VERSION as DJANGO_VERSION +from django.conf import settings from django.utils.translation import gettext_lazy as _ from .models import Source @@ -29,6 +30,12 @@ }, ) +def source_clean_media_format(self): + data = self.cleaned_data.get('media_format', '').strip() + return data or getattr(settings, 'MEDIA_FORMATSTR', settings.MEDIA_FORMATSTR_DEFAULT) + +SourceForm.clean_media_format = source_clean_media_format + class ValidateSourceForm(forms.Form): source_url = forms.URLField( diff --git a/tubesync/sync/views.py b/tubesync/sync/views.py index 0f246e3d7..067a3b77b 100644 --- a/tubesync/sync/views.py +++ b/tubesync/sync/views.py @@ -378,6 +378,10 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def dispatch(self, request, *args, **kwargs): + # Inject the adjustable media format default + self.prepopulated_data['media_format'] = getattr( + settings, 'MEDIA_FORMATSTR', settings.MEDIA_FORMATSTR_DEFAULT + ) source_type = request.GET.get('source_type', '') if source_type and source_type in YouTube_SourceType.values: self.prepopulated_data['source_type'] = source_type