diff --git a/tubesync/sync/migrations/0001_initial.py b/tubesync/sync/migrations/0001_initial.py index 31c29489..e799b425 100644 --- a/tubesync/sync/migrations/0001_initial.py +++ b/tubesync/sync/migrations/0001_initial.py @@ -1,5 +1,6 @@ -# Generated by Django 3.1.3 on 2020-11-23 06:29 +# Generated by Django 3.1.4 on 2020-12-11 06:15 +import django.core.files.storage from django.db import migrations, models import django.db.models.deletion import sync.models @@ -20,18 +21,20 @@ class Migration(migrations.Migration): ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, help_text='UUID of the source', primary_key=True, serialize=False, verbose_name='uuid')), ('created', models.DateTimeField(auto_now_add=True, db_index=True, help_text='Date and time the source was created', verbose_name='created')), ('last_crawl', models.DateTimeField(blank=True, db_index=True, help_text='Date and time the source was last crawled', null=True, verbose_name='last crawl')), - ('source_type', models.CharField(choices=[('c', 'YouTube channel'), ('p', 'YouTube playlist')], db_index=True, default='c', help_text='Source type', max_length=1, verbose_name='type')), - ('url', models.URLField(db_index=True, help_text='URL of the source', verbose_name='url')), - ('key', models.CharField(db_index=True, help_text='Source key, such as exact YouTube channel name or playlist ID', max_length=100, verbose_name='key')), - ('name', models.CharField(db_index=True, help_text='Friendly name for the source, used locally', max_length=100, verbose_name='name')), - ('directory', models.CharField(help_text='Directory name to save the media into', max_length=100, verbose_name='directory')), + ('source_type', models.CharField(choices=[('c', 'YouTube channel'), ('p', 'YouTube playlist')], db_index=True, default='c', help_text='Source type', max_length=1, verbose_name='source type')), + ('key', models.CharField(db_index=True, help_text='Source key, such as exact YouTube channel name or playlist ID', max_length=100, unique=True, verbose_name='key')), + ('name', models.CharField(db_index=True, help_text='Friendly name for the source, used locally in TubeSync only', max_length=100, unique=True, verbose_name='name')), + ('directory', models.CharField(db_index=True, help_text='Directory name to save the media into', max_length=100, unique=True, verbose_name='directory')), + ('index_schedule', models.IntegerField(choices=[(3600, 'Every hour'), (7200, 'Every 2 hours'), (10800, 'Every 3 hours'), (14400, 'Every 4 hours'), (18000, 'Every 5 hours'), (21600, 'Every 6 hours'), (43200, 'Every 12 hours'), (86400, 'Every 24 hours')], db_index=True, default=21600, help_text='Schedule of how often to index the source for new media', verbose_name='index schedule')), ('delete_old_media', models.BooleanField(default=False, help_text='Delete old media after "days to keep" days?', verbose_name='delete old media')), ('days_to_keep', models.PositiveSmallIntegerField(default=14, help_text='If "delete old media" is ticked, the number of days after which to automatically delete media', verbose_name='days to keep')), - ('source_profile', models.CharField(choices=[('360p', '360p (SD)'), ('480p', '480p (SD)'), ('720p', '720p (HD)'), ('1080p', '1080p (Full HD)'), ('2160p', '2160p (4K)'), ('audio', 'Audio only')], db_index=True, default='1080p', help_text='Source profile, the quality to attempt to download media', max_length=8, verbose_name='source profile')), - ('prefer_60fps', models.BooleanField(default=False, help_text='Where possible, prefer 60fps media for this source', verbose_name='prefer 60fps')), + ('source_resolution', models.CharField(choices=[('360p', '360p (SD)'), ('480p', '480p (SD)'), ('720p', '720p (HD)'), ('1080p', '1080p (Full HD)'), ('1440p', '1440p (2K)'), ('2160p', '2160p (4K)'), ('4320p', '4320p (8K)'), ('audio', 'Audio only')], db_index=True, default='1080p', help_text='Source resolution, desired video resolution to download', max_length=8, verbose_name='source resolution')), + ('source_vcodec', models.CharField(choices=[('AVC1', 'AVC1 (H.264)'), ('VP9', 'VP9')], db_index=True, default='VP9', help_text='Source video codec, desired video encoding format to download (ignored if "resolution" is audio only)', max_length=8, verbose_name='source video codec')), + ('source_acodec', models.CharField(choices=[('MP4A', 'MP4A'), ('OPUS', 'OPUS')], db_index=True, default='OPUS', help_text='Source audio codec, desired audio encoding format to download', max_length=8, verbose_name='source audio codec')), + ('prefer_60fps', models.BooleanField(default=True, help_text='Where possible, prefer 60fps media for this source', verbose_name='prefer 60fps')), ('prefer_hdr', models.BooleanField(default=False, help_text='Where possible, prefer HDR media for this source', verbose_name='prefer hdr')), - ('output_format', models.CharField(choices=[('mp4', '.mp4 container'), ('mkv', '.mkv container'), ('mkv', '.webm container'), ('m4a', '.m4a container (audio only)'), ('ogg', '.ogg container (audio only)')], db_index=True, default='mkv', help_text='Output format, the codec and container to save media', max_length=8, verbose_name='output format')), - ('fallback', models.CharField(choices=[('f', 'Fail'), ('s', 'Next best SD'), ('h', 'Next best HD')], db_index=True, default='f', help_text='What do do when your first choice is not available', max_length=1, verbose_name='fallback')), + ('fallback', models.CharField(choices=[('f', 'Fail, do not download any media'), ('n', 'Get next best resolution or codec instead'), ('h', 'Get next best resolution but at least HD')], db_index=True, default='h', help_text='What do do when media in your source resolution and codecs is not available', max_length=1, verbose_name='fallback')), + ('has_failed', models.BooleanField(default=False, help_text='Source has failed to index media', verbose_name='has failed')), ], options={ 'verbose_name': 'Source', @@ -45,16 +48,22 @@ class Migration(migrations.Migration): ('created', models.DateTimeField(auto_now_add=True, db_index=True, help_text='Date and time the media was created', verbose_name='created')), ('published', models.DateTimeField(blank=True, db_index=True, help_text='Date and time the media was published on the source', null=True, verbose_name='published')), ('key', models.CharField(db_index=True, help_text='Media key, such as exact YouTube video ID', max_length=100, verbose_name='key')), - ('url', models.URLField(db_index=True, help_text='URL of the media', verbose_name='url')), - ('thumb', models.ImageField(blank=True, height_field='thumb_height', help_text='Thumbnail', null=True, upload_to=sync.models.get_media_thumb_path, verbose_name='thumb', width_field='thumb_width')), - ('thumb_width', models.PositiveSmallIntegerField(blank=True, help_text='Width (X) of the thumbnail', verbose_name='thumb width')), - ('thumb_height', models.PositiveSmallIntegerField(blank=True, help_text='Height (Y) of the thumbnail', verbose_name='thumb height')), + ('thumb', models.ImageField(blank=True, height_field='thumb_height', help_text='Thumbnail', max_length=200, null=True, upload_to=sync.models.get_media_thumb_path, verbose_name='thumb', width_field='thumb_width')), + ('thumb_width', models.PositiveSmallIntegerField(blank=True, help_text='Width (X) of the thumbnail', null=True, verbose_name='thumb width')), + ('thumb_height', models.PositiveSmallIntegerField(blank=True, help_text='Height (Y) of the thumbnail', null=True, verbose_name='thumb height')), ('metadata', models.TextField(blank=True, help_text='JSON encoded metadata for the media', null=True, verbose_name='metadata')), + ('can_download', models.BooleanField(db_index=True, default=False, help_text='Media has a matching format and can be downloaded', verbose_name='can download')), + ('media_file', models.FileField(blank=True, help_text='Media file', max_length=200, null=True, storage=django.core.files.storage.FileSystemStorage(location='/home/meeb/Repos/github.com/meeb/tubesync/tubesync/downloads'), upload_to=sync.models.get_media_file_path, verbose_name='media file')), + ('skip', models.BooleanField(db_index=True, default=False, help_text='Media will be skipped and not downloaded', verbose_name='skip')), ('downloaded', models.BooleanField(db_index=True, default=False, help_text='Media has been downloaded', verbose_name='downloaded')), - ('downloaded_audio_codec', models.CharField(blank=True, db_index=True, help_text='Audio codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded audio codec')), - ('downloaded_video_codec', models.CharField(blank=True, db_index=True, help_text='Video codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded video codec')), - ('downloaded_container', models.CharField(blank=True, db_index=True, help_text='Container format of the downloaded media', max_length=30, null=True, verbose_name='downloaded container format')), - ('downloaded_fps', models.PositiveSmallIntegerField(blank=True, db_index=True, help_text='FPS of the downloaded media', null=True, verbose_name='downloaded fps')), + ('download_date', models.DateTimeField(blank=True, db_index=True, help_text='Date and time the download completed', null=True, verbose_name='download date')), + ('downloaded_format', models.CharField(blank=True, help_text='Audio codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded format')), + ('downloaded_height', models.PositiveIntegerField(blank=True, help_text='Height in pixels of the downloaded media', null=True, verbose_name='downloaded height')), + ('downloaded_width', models.PositiveIntegerField(blank=True, help_text='Width in pixels of the downloaded media', null=True, verbose_name='downloaded width')), + ('downloaded_audio_codec', models.CharField(blank=True, help_text='Audio codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded audio codec')), + ('downloaded_video_codec', models.CharField(blank=True, help_text='Video codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded video codec')), + ('downloaded_container', models.CharField(blank=True, help_text='Container format of the downloaded media', max_length=30, null=True, verbose_name='downloaded container format')), + ('downloaded_fps', models.PositiveSmallIntegerField(blank=True, help_text='FPS of the downloaded media', null=True, verbose_name='downloaded fps')), ('downloaded_hdr', models.BooleanField(default=False, help_text='Downloaded media has HDR', verbose_name='downloaded hdr')), ('downloaded_filesize', models.PositiveBigIntegerField(blank=True, db_index=True, help_text='Size of the downloaded media in bytes', null=True, verbose_name='downloaded filesize')), ('source', models.ForeignKey(help_text='Source the media belongs to', on_delete=django.db.models.deletion.CASCADE, related_name='media_source', to='sync.source')), @@ -62,6 +71,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'Media', 'verbose_name_plural': 'Media', + 'unique_together': {('source', 'key')}, }, ), ] diff --git a/tubesync/sync/migrations/0002_auto_20201126_0504.py b/tubesync/sync/migrations/0002_auto_20201126_0504.py deleted file mode 100644 index 5f15712f..00000000 --- a/tubesync/sync/migrations/0002_auto_20201126_0504.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 3.1.3 on 2020-11-26 05:04 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='media', - name='url', - ), - migrations.AlterField( - model_name='source', - name='fallback', - field=models.CharField(choices=[('f', 'Fail, do not download any media'), ('s', 'Get next best SD media instead'), ('h', 'Get next best HD media instead')], db_index=True, default='f', help_text='What do do when media in your source profile is not available', max_length=1, verbose_name='fallback'), - ), - migrations.AlterField( - model_name='source', - name='name', - field=models.CharField(db_index=True, help_text='Friendly name for the source, used locally in TubeSync only', max_length=100, verbose_name='name'), - ), - migrations.AlterField( - model_name='source', - name='output_format', - field=models.CharField(choices=[('mp4', '.mp4 container'), ('mkv', '.mkv container'), ('mkv', '.webm container'), ('m4a', '.m4a container (audio only)'), ('ogg', '.ogg container (audio only)')], db_index=True, default='mkv', help_text='Output format, the file format container in which to save media', max_length=8, verbose_name='output format'), - ), - migrations.AlterField( - model_name='source', - name='source_type', - field=models.CharField(choices=[('c', 'YouTube channel'), ('p', 'YouTube playlist')], db_index=True, default='c', help_text='Source type', max_length=1, verbose_name='source type'), - ), - ] diff --git a/tubesync/sync/migrations/0003_auto_20201127_0838.py b/tubesync/sync/migrations/0003_auto_20201127_0838.py deleted file mode 100644 index b8f364ef..00000000 --- a/tubesync/sync/migrations/0003_auto_20201127_0838.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-11-27 08:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0002_auto_20201126_0504'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='key', - field=models.CharField(db_index=True, help_text='Source key, such as exact YouTube channel name or playlist ID', max_length=100, unique=True, verbose_name='key'), - ), - ] diff --git a/tubesync/sync/migrations/0004_remove_source_url.py b/tubesync/sync/migrations/0004_remove_source_url.py deleted file mode 100644 index 6c182998..00000000 --- a/tubesync/sync/migrations/0004_remove_source_url.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2020-11-28 03:11 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0003_auto_20201127_0838'), - ] - - operations = [ - migrations.RemoveField( - model_name='source', - name='url', - ), - ] diff --git a/tubesync/sync/migrations/0005_auto_20201205_0411.py b/tubesync/sync/migrations/0005_auto_20201205_0411.py deleted file mode 100644 index 32511ae0..00000000 --- a/tubesync/sync/migrations/0005_auto_20201205_0411.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-05 04:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0004_remove_source_url'), - ] - - operations = [ - migrations.AlterField( - model_name='media', - name='thumb_height', - field=models.PositiveSmallIntegerField(blank=True, help_text='Height (Y) of the thumbnail', null=True, verbose_name='thumb height'), - ), - migrations.AlterField( - model_name='media', - name='thumb_width', - field=models.PositiveSmallIntegerField(blank=True, help_text='Width (X) of the thumbnail', null=True, verbose_name='thumb width'), - ), - ] diff --git a/tubesync/sync/migrations/0006_auto_20201205_0502.py b/tubesync/sync/migrations/0006_auto_20201205_0502.py deleted file mode 100644 index 4490d4e3..00000000 --- a/tubesync/sync/migrations/0006_auto_20201205_0502.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-05 05:02 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0005_auto_20201205_0411'), - ] - - operations = [ - migrations.RemoveField( - model_name='source', - name='output_format', - ), - migrations.RemoveField( - model_name='source', - name='source_profile', - ), - migrations.AddField( - model_name='source', - name='source_resolution', - field=models.CharField(choices=[('360p', '360p (SD)'), ('480p', '480p (SD)'), ('720p', '720p (HD)'), ('1080p', '1080p (Full HD)'), ('2160p', '2160p (4K)'), ('audio', 'Audio only')], db_index=True, default='1080p', help_text='Source resolution, desired video resolution to download', max_length=8, verbose_name='source resolution'), - ), - migrations.AddField( - model_name='source', - name='source_vcodec', - field=models.CharField(choices=[('M4A', 'M4A'), ('OPUS', 'OPUS'), ('AAC', 'AAC')], db_index=True, default='OPUS', help_text='Source audio codec, desired audio encoding format to download', max_length=8, verbose_name='source audio codec'), - ), - migrations.AlterField( - model_name='source', - name='prefer_60fps', - field=models.BooleanField(default=True, help_text='Where possible, prefer 60fps media for this source', verbose_name='prefer 60fps'), - ), - ] diff --git a/tubesync/sync/migrations/0007_auto_20201205_0509.py b/tubesync/sync/migrations/0007_auto_20201205_0509.py deleted file mode 100644 index e3c6486f..00000000 --- a/tubesync/sync/migrations/0007_auto_20201205_0509.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-05 05:09 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0006_auto_20201205_0502'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='source_vcodec', - field=models.CharField(choices=[('M4A', 'M4A'), ('OPUS', 'OPUS')], db_index=True, default='OPUS', help_text='Source audio codec, desired audio encoding format to download', max_length=8, verbose_name='source audio codec'), - ), - ] diff --git a/tubesync/sync/migrations/0008_auto_20201205_0512.py b/tubesync/sync/migrations/0008_auto_20201205_0512.py deleted file mode 100644 index aecc5887..00000000 --- a/tubesync/sync/migrations/0008_auto_20201205_0512.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-05 05:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0007_auto_20201205_0509'), - ] - - operations = [ - migrations.AddField( - model_name='source', - name='source_acodec', - field=models.CharField(choices=[('M4A', 'M4A'), ('OPUS', 'OPUS')], db_index=True, default='OPUS', help_text='Source audio codec, desired audio encoding format to download', max_length=8, verbose_name='source audio codec'), - ), - migrations.AlterField( - model_name='source', - name='source_vcodec', - field=models.CharField(choices=[('AVC1', 'AVC1 (H.264)'), ('VP9', 'VP9')], db_index=True, default='VP9', help_text='Source video codec, desired video encoding format to download', max_length=8, verbose_name='source video codec'), - ), - ] diff --git a/tubesync/sync/migrations/0009_auto_20201205_0512.py b/tubesync/sync/migrations/0009_auto_20201205_0512.py deleted file mode 100644 index ca84fee6..00000000 --- a/tubesync/sync/migrations/0009_auto_20201205_0512.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2020-12-05 05:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0008_auto_20201205_0512'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='source_vcodec', - field=models.CharField(choices=[('AVC1', 'AVC1 (H.264)'), ('VP9', 'VP9')], db_index=True, default='VP9', help_text='Source video codec, desired video encoding format to download (ignored if "resolution" is audio only)', max_length=8, verbose_name='source video codec'), - ), - ] diff --git a/tubesync/sync/migrations/0010_auto_20201206_0159.py b/tubesync/sync/migrations/0010_auto_20201206_0159.py deleted file mode 100644 index 87e30a95..00000000 --- a/tubesync/sync/migrations/0010_auto_20201206_0159.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-06 01:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0009_auto_20201205_0512'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='directory', - field=models.CharField(db_index=True, help_text='Directory name to save the media into', max_length=100, unique=True, verbose_name='directory'), - ), - migrations.AlterField( - model_name='source', - name='fallback', - field=models.CharField(choices=[('f', 'Fail, do not download any media'), ('s', 'Get next best SD media or codec instead'), ('h', 'Get next best HD media or codec instead')], db_index=True, default='f', help_text='What do do when media in your source resolution and codecs is not available', max_length=1, verbose_name='fallback'), - ), - migrations.AlterField( - model_name='source', - name='name', - field=models.CharField(db_index=True, help_text='Friendly name for the source, used locally in TubeSync only', max_length=100, unique=True, verbose_name='name'), - ), - ] diff --git a/tubesync/sync/migrations/0011_auto_20201206_0911.py b/tubesync/sync/migrations/0011_auto_20201206_0911.py deleted file mode 100644 index 0b763a7f..00000000 --- a/tubesync/sync/migrations/0011_auto_20201206_0911.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-06 09:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0010_auto_20201206_0159'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='fallback', - field=models.CharField(choices=[('f', 'Fail, do not download any media'), ('s', 'Get next best SD media or codec instead'), ('h', 'Get next best HD media or codec instead')], db_index=True, default='h', help_text='What do do when media in your source resolution and codecs is not available', max_length=1, verbose_name='fallback'), - ), - migrations.AlterField( - model_name='source', - name='source_resolution', - field=models.CharField(choices=[('360p', '360p (SD)'), ('480p', '480p (SD)'), ('720p', '720p (HD)'), ('1080p', '1080p (Full HD)'), ('1440p', '1440p (2K)'), ('2160p', '2160p (4K)'), ('audio', 'Audio only')], db_index=True, default='1080p', help_text='Source resolution, desired video resolution to download', max_length=8, verbose_name='source resolution'), - ), - ] diff --git a/tubesync/sync/migrations/0012_auto_20201207_0415.py b/tubesync/sync/migrations/0012_auto_20201207_0415.py deleted file mode 100644 index 5e14dcc1..00000000 --- a/tubesync/sync/migrations/0012_auto_20201207_0415.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-07 04:15 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0011_auto_20201206_0911'), - ] - - operations = [ - migrations.AddField( - model_name='source', - name='index_schedule', - field=models.IntegerField(db_index=True, default=21600, help_text='Schedule of when to index the source for new media', verbose_name='index schedule'), - ), - migrations.AlterField( - model_name='source', - name='source_acodec', - field=models.CharField(choices=[('MP4A', 'MP4A'), ('OPUS', 'OPUS')], db_index=True, default='OPUS', help_text='Source audio codec, desired audio encoding format to download', max_length=8, verbose_name='source audio codec'), - ), - ] diff --git a/tubesync/sync/migrations/0013_auto_20201207_0439.py b/tubesync/sync/migrations/0013_auto_20201207_0439.py deleted file mode 100644 index df7b74b9..00000000 --- a/tubesync/sync/migrations/0013_auto_20201207_0439.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-07 04:39 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0012_auto_20201207_0415'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='index_schedule', - field=models.IntegerField(choices=[(3600, 'Every hour'), (7200, 'Every 2 hours'), (10800, 'Every 3 hours'), (14400, 'Every 4 hours'), (18000, 'Every 5 hours'), (21600, 'Every 6 hours'), (43200, 'Every 12 hours'), (86400, 'Every 24 hours')], db_index=True, default=21600, help_text='Schedule of how often to index the source for new media', verbose_name='index schedule'), - ), - ] diff --git a/tubesync/sync/migrations/0014_source_has_errors.py b/tubesync/sync/migrations/0014_source_has_errors.py deleted file mode 100644 index a77e89d2..00000000 --- a/tubesync/sync/migrations/0014_source_has_errors.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-07 07:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0013_auto_20201207_0439'), - ] - - operations = [ - migrations.AddField( - model_name='source', - name='has_errors', - field=models.BooleanField(default=False, help_text='Source has errors', verbose_name='has errors'), - ), - ] diff --git a/tubesync/sync/migrations/0015_auto_20201207_0744.py b/tubesync/sync/migrations/0015_auto_20201207_0744.py deleted file mode 100644 index e6acf5c6..00000000 --- a/tubesync/sync/migrations/0015_auto_20201207_0744.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-07 07:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0014_source_has_errors'), - ] - - operations = [ - migrations.RemoveField( - model_name='source', - name='has_errors', - ), - migrations.AddField( - model_name='source', - name='has_failed', - field=models.BooleanField(default=False, help_text='Source has failed to index media', verbose_name='has failed'), - ), - ] diff --git a/tubesync/sync/migrations/0016_auto_20201208_0518.py b/tubesync/sync/migrations/0016_auto_20201208_0518.py deleted file mode 100644 index b9604cdf..00000000 --- a/tubesync/sync/migrations/0016_auto_20201208_0518.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-08 05:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0015_auto_20201207_0744'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='fallback', - field=models.CharField(choices=[('f', 'Fail, do not download any media'), ('n', 'Get next best resolution or codec instead'), ('h', 'Get next best resolution but at least HD')], db_index=True, default='h', help_text='What do do when media in your source resolution and codecs is not available', max_length=1, verbose_name='fallback'), - ), - ] diff --git a/tubesync/sync/migrations/0017_auto_20201208_0521.py b/tubesync/sync/migrations/0017_auto_20201208_0521.py deleted file mode 100644 index 0c265f98..00000000 --- a/tubesync/sync/migrations/0017_auto_20201208_0521.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-08 05:21 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0016_auto_20201208_0518'), - ] - - operations = [ - migrations.AlterField( - model_name='source', - name='source_resolution', - field=models.CharField(choices=[('360p', '360p (SD)'), ('480p', '480p (SD)'), ('720p', '720p (HD)'), ('1080p', '1080p (Full HD)'), ('1440p', '1440p (2K)'), ('2160p', '2160p (4K)'), ('4320p', '4320p (8K)'), ('audio', 'Audio only')], db_index=True, default='1080p', help_text='Source resolution, desired video resolution to download', max_length=8, verbose_name='source resolution'), - ), - ] diff --git a/tubesync/sync/migrations/0018_media_can_download.py b/tubesync/sync/migrations/0018_media_can_download.py deleted file mode 100644 index e2bde349..00000000 --- a/tubesync/sync/migrations/0018_media_can_download.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-09 08:40 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0017_auto_20201208_0521'), - ] - - operations = [ - migrations.AddField( - model_name='media', - name='can_download', - field=models.BooleanField(db_index=True, default=False, help_text='Media has a matching format and can be downloaded', verbose_name='can download'), - ), - ] diff --git a/tubesync/sync/migrations/0019_auto_20201209_0857.py b/tubesync/sync/migrations/0019_auto_20201209_0857.py deleted file mode 100644 index bbfae9ae..00000000 --- a/tubesync/sync/migrations/0019_auto_20201209_0857.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-09 08:57 - -from django.db import migrations, models -import sync.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0018_media_can_download'), - ] - - operations = [ - migrations.AddField( - model_name='media', - name='media_file', - field=models.FileField(blank=True, help_text='Media file', max_length=200, null=True, upload_to=sync.models.get_media_file_path, verbose_name='media file'), - ), - migrations.AlterField( - model_name='media', - name='thumb', - field=models.ImageField(blank=True, height_field='thumb_height', help_text='Thumbnail', max_length=200, null=True, upload_to=sync.models.get_media_thumb_path, verbose_name='thumb', width_field='thumb_width'), - ), - ] diff --git a/tubesync/sync/migrations/0020_auto_20201211_0306.py b/tubesync/sync/migrations/0020_auto_20201211_0306.py deleted file mode 100644 index 1e735e15..00000000 --- a/tubesync/sync/migrations/0020_auto_20201211_0306.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-11 03:06 - -import django.core.files.storage -from django.db import migrations, models -import sync.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0019_auto_20201209_0857'), - ] - - operations = [ - migrations.AddField( - model_name='media', - name='download_date', - field=models.DateTimeField(blank=True, db_index=True, help_text='Date and time the download completed', null=True, verbose_name='download date'), - ), - migrations.AlterField( - model_name='media', - name='media_file', - field=models.FileField(blank=True, help_text='Media file', max_length=200, null=True, storage=django.core.files.storage.FileSystemStorage(location='/home/meeb/Repos/github.com/meeb/tubesync/tubesync/downloads'), upload_to=sync.models.get_media_file_path, verbose_name='media file'), - ), - migrations.AlterUniqueTogether( - name='media', - unique_together={('source', 'key')}, - ), - ] diff --git a/tubesync/sync/migrations/0021_auto_20201211_0351.py b/tubesync/sync/migrations/0021_auto_20201211_0351.py deleted file mode 100644 index adf57540..00000000 --- a/tubesync/sync/migrations/0021_auto_20201211_0351.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-11 03:51 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0020_auto_20201211_0306'), - ] - - operations = [ - migrations.AddField( - model_name='media', - name='downloaded_height', - field=models.PositiveIntegerField(blank=True, help_text='Height in pixels of the downloaded media', null=True, verbose_name='downloaded height'), - ), - migrations.AddField( - model_name='media', - name='downloaded_width', - field=models.PositiveIntegerField(blank=True, help_text='Width in pixels of the downloaded media', null=True, verbose_name='downloaded width'), - ), - ] diff --git a/tubesync/sync/migrations/0022_auto_20201211_0354.py b/tubesync/sync/migrations/0022_auto_20201211_0354.py deleted file mode 100644 index 28875985..00000000 --- a/tubesync/sync/migrations/0022_auto_20201211_0354.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-11 03:54 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0021_auto_20201211_0351'), - ] - - operations = [ - migrations.AddField( - model_name='media', - name='downloaded_format', - field=models.CharField(blank=True, help_text='Audio codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded format'), - ), - migrations.AlterField( - model_name='media', - name='downloaded_audio_codec', - field=models.CharField(blank=True, help_text='Audio codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded audio codec'), - ), - migrations.AlterField( - model_name='media', - name='downloaded_container', - field=models.CharField(blank=True, help_text='Container format of the downloaded media', max_length=30, null=True, verbose_name='downloaded container format'), - ), - migrations.AlterField( - model_name='media', - name='downloaded_fps', - field=models.PositiveSmallIntegerField(blank=True, help_text='FPS of the downloaded media', null=True, verbose_name='downloaded fps'), - ), - migrations.AlterField( - model_name='media', - name='downloaded_video_codec', - field=models.CharField(blank=True, help_text='Video codec of the downloaded media', max_length=30, null=True, verbose_name='downloaded video codec'), - ), - ] diff --git a/tubesync/sync/migrations/0023_media_skip.py b/tubesync/sync/migrations/0023_media_skip.py deleted file mode 100644 index 7c0f8c96..00000000 --- a/tubesync/sync/migrations/0023_media_skip.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.4 on 2020-12-11 04:26 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('sync', '0022_auto_20201211_0354'), - ] - - operations = [ - migrations.AddField( - model_name='media', - name='skip', - field=models.BooleanField(db_index=True, default=False, help_text='Media will be skipped and not downloaded', verbose_name='skip'), - ), - ]