From ff58f2811b1eab1661a3d0f13d287ea36b99684d Mon Sep 17 00:00:00 2001 From: meeb Date: Fri, 18 Dec 2020 13:00:33 +1100 Subject: [PATCH] add field for media file name format, part of #5 --- .../migrations/0004_source_media_format.py | 18 ++++++++++++++++++ tubesync/sync/models.py | 6 ++++++ tubesync/sync/templates/sync/source.html | 4 ++++ tubesync/sync/views.py | 16 ++++++++-------- tubesync/tubesync/settings.py | 3 +++ 5 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 tubesync/sync/migrations/0004_source_media_format.py diff --git a/tubesync/sync/migrations/0004_source_media_format.py b/tubesync/sync/migrations/0004_source_media_format.py new file mode 100644 index 0000000..f79a703 --- /dev/null +++ b/tubesync/sync/migrations/0004_source_media_format.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.4 on 2020-12-18 01:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sync', '0003_source_copy_thumbnails'), + ] + + operations = [ + migrations.AddField( + model_name='source', + name='media_format', + field=models.CharField(default='{yyyymmdd}_{source}_{title}_{key}_{format}.{ext}', help_text='File format to use for saving files', max_length=200, verbose_name='media format'), + ), + ] diff --git a/tubesync/sync/models.py b/tubesync/sync/models.py index b7c5c0b..8761c23 100644 --- a/tubesync/sync/models.py +++ b/tubesync/sync/models.py @@ -174,6 +174,12 @@ class Source(models.Model): unique=True, help_text=_('Directory name to save the media into') ) + media_format = models.CharField( + _('media format'), + max_length=200, + default=settings.MEDIA_FORMATSTR_DEFAULT, + help_text=_('File format to use for saving files') + ) index_schedule = models.IntegerField( _('index schedule'), choices=IndexSchedule.choices, diff --git a/tubesync/sync/templates/sync/source.html b/tubesync/sync/templates/sync/source.html index 4154c40..38e03cb 100644 --- a/tubesync/sync/templates/sync/source.html +++ b/tubesync/sync/templates/sync/source.html @@ -43,6 +43,10 @@ Directory Directory
{{ source.directory }} + + Media format + Media format
{{ source.media_format }} + Index schedule Index schedule
{{ source.get_index_schedule_display }} diff --git a/tubesync/sync/views.py b/tubesync/sync/views.py index 9af6d7a..786ca53 100644 --- a/tubesync/sync/views.py +++ b/tubesync/sync/views.py @@ -252,10 +252,10 @@ class AddSourceView(CreateView): template_name = 'sync/source-add.html' model = Source - fields = ('source_type', 'key', 'name', 'directory', 'index_schedule', - 'delete_old_media', 'days_to_keep', 'source_resolution', 'source_vcodec', - 'source_acodec', 'prefer_60fps', 'prefer_hdr', 'fallback', - 'copy_thumbnails') + fields = ('source_type', 'key', 'name', 'directory', 'media_format', + 'index_schedule', 'delete_old_media', 'days_to_keep', + 'source_resolution', 'source_vcodec', 'source_acodec', 'prefer_60fps', + 'prefer_hdr', 'fallback', 'copy_thumbnails') def __init__(self, *args, **kwargs): self.prepopulated_data = {} @@ -324,10 +324,10 @@ class UpdateSourceView(UpdateView): template_name = 'sync/source-update.html' model = Source - fields = ('source_type', 'key', 'name', 'directory', 'index_schedule', - 'delete_old_media', 'days_to_keep', 'source_resolution', 'source_vcodec', - 'source_acodec', 'prefer_60fps', 'prefer_hdr', 'fallback', - 'copy_thumbnails') + fields = ('source_type', 'key', 'name', 'directory', 'media_format', + 'index_schedule', 'delete_old_media', 'days_to_keep', + 'source_resolution', 'source_vcodec', 'source_acodec', 'prefer_60fps', + 'prefer_hdr', 'fallback', 'copy_thumbnails') def get_success_url(self): url = reverse_lazy('sync:source', kwargs={'pk': self.object.pk}) diff --git a/tubesync/tubesync/settings.py b/tubesync/tubesync/settings.py index d720a5a..f28cb5a 100644 --- a/tubesync/tubesync/settings.py +++ b/tubesync/tubesync/settings.py @@ -147,6 +147,9 @@ YOUTUBE_DEFAULTS = { } +MEDIA_FORMATSTR_DEFAULT = '{yyyymmdd}_{source}_{title}_{key}_{format}.{ext}' + + try: from .local_settings import * except ImportError as e: