diff --git a/tubesync/sync/migrations/0020_auto_20231024_1825.py b/tubesync/sync/migrations/0020_auto_20231024_1825.py new file mode 100644 index 00000000..295339a8 --- /dev/null +++ b/tubesync/sync/migrations/0020_auto_20231024_1825.py @@ -0,0 +1,29 @@ +# Generated by Django 3.2.22 on 2023-10-24 17:25 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sync', '0019_add_delete_removed_media'), + ] + + operations = [ + migrations.AddField( + model_name='source', + name='filter_text', + field=models.CharField(blank=True, default='', help_text='Regex compatible filter string for video titles', max_length=100, verbose_name='filter string'), + ), + migrations.AlterField( + model_name='source', + name='auto_subtitles', + field=models.BooleanField(default=False, help_text='Accept auto-generated subtitles', verbose_name='accept auto-generated subs'), + ), + migrations.AlterField( + model_name='source', + name='sub_langs', + field=models.CharField(default='en', help_text='List of subtitles langs to download, comma-separated. Example: en,fr or all,-fr,-live_chat', max_length=30, validators=[django.core.validators.RegexValidator(message='Subtitle langs must be a comma-separated list of langs. example: en,fr or all,-fr,-live_chat', regex='^(\\-?[\\_\\.a-zA-Z]+,)*(\\-?[\\_\\.a-zA-Z]+){1}$')], verbose_name='subs langs'), + ), + ] diff --git a/tubesync/sync/migrations/0021_source_copy_channel_images.py b/tubesync/sync/migrations/0021_source_copy_channel_images.py new file mode 100644 index 00000000..5d568925 --- /dev/null +++ b/tubesync/sync/migrations/0021_source_copy_channel_images.py @@ -0,0 +1,18 @@ +# Generated by nothing. Done manually by InterN0te on 2023-12-10 16:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sync', '0020_auto_20231024_1825'), + ] + + operations = [ + migrations.AddField( + model_name='source', + name='copy_channel_images', + field=models.BooleanField(default=False, help_text='Copy channel banner and avatar. These may be detected and used by some media servers', verbose_name='copy channel images'), + ), + ] diff --git a/tubesync/sync/migrations/0022_add_delete_files_on_disk.py b/tubesync/sync/migrations/0022_add_delete_files_on_disk.py new file mode 100644 index 00000000..959f3d8b --- /dev/null +++ b/tubesync/sync/migrations/0022_add_delete_files_on_disk.py @@ -0,0 +1,17 @@ +# Generated by pac + +from django.db import migrations, models + +class Migration(migrations.Migration): + + dependencies = [ + ('sync', '0021_source_copy_channel_images'), + ] + + operations = [ + migrations.AddField( + model_name='source', + name='delete_files_on_disk', + field=models.BooleanField(default=False, help_text='Delete files on disk when they are removed from TubeSync', verbose_name='delete files on disk'), + ), + ] \ No newline at end of file diff --git a/tubesync/sync/migrations/0023_media_duration_filter.py b/tubesync/sync/migrations/0023_media_duration_filter.py new file mode 100644 index 00000000..558cc0ef --- /dev/null +++ b/tubesync/sync/migrations/0023_media_duration_filter.py @@ -0,0 +1,62 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("sync", "0022_add_delete_files_on_disk"), + ] + + operations = [ + migrations.AddField( + model_name="media", + name="title", + field=models.CharField( + verbose_name="title", + max_length=100, + blank=True, + null=False, + default="", + help_text="Video title", + ), + ), + migrations.AddField( + model_name="media", + name="duration", + field=models.PositiveIntegerField( + verbose_name="duration", + blank=True, + null=True, + help_text="Duration of media in seconds", + ), + ), + migrations.AddField( + model_name="source", + name="filter_seconds", + field=models.PositiveIntegerField( + verbose_name="filter seconds", + blank=True, + null=True, + help_text="Filter Media based on Min/Max duration. Leave blank or 0 to disable filtering", + ), + ), + migrations.AddField( + model_name="source", + name="filter_seconds_min", + field=models.BooleanField( + verbose_name="filter seconds min/max", + choices=[(True, "Minimum Length"), (False, "Maximum Length")], + default=True, + help_text="When Filter Seconds is > 0, do we skip on minimum (video shorter than limit) or maximum (" + "video greater than maximum) video duration", + ), + ), + migrations.AddField( + model_name="source", + name="filter_text_invert", + field=models.BooleanField( + verbose_name="invert filter text matching", + default=False, + help_text="Invert filter string regex match, skip any matching titles when selected", + ), + ), + ] diff --git a/tubesync/sync/migrations/0024_auto_20240717_1535.py b/tubesync/sync/migrations/0024_auto_20240717_1535.py new file mode 100644 index 00000000..c2d20d35 --- /dev/null +++ b/tubesync/sync/migrations/0024_auto_20240717_1535.py @@ -0,0 +1,28 @@ +# Generated by Django 3.2.25 on 2024-07-17 15:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sync', '0023_media_duration_filter'), + ] + + operations = [ + migrations.AlterField( + model_name='media', + name='manual_skip', + field=models.BooleanField(db_index=True, default=False, help_text='Media marked as "skipped", won\'t be downloaded', verbose_name='manual_skip'), + ), + migrations.AlterField( + model_name='media', + name='title', + field=models.CharField(blank=True, default='', help_text='Video title', max_length=200, verbose_name='title'), + ), + migrations.AlterField( + model_name='source', + name='filter_text', + field=models.CharField(blank=True, default='', help_text='Regex compatible filter string for video titles', max_length=200, verbose_name='filter string'), + ), + ]