diff --git a/vrobbler/apps/music/migrations/0004_alter_artist_options_alter_album_musicbrainz_id_and_more.py b/vrobbler/apps/music/migrations/0004_alter_artist_options_alter_album_musicbrainz_id_and_more.py new file mode 100644 index 0000000..278cea9 --- /dev/null +++ b/vrobbler/apps/music/migrations/0004_alter_artist_options_alter_album_musicbrainz_id_and_more.py @@ -0,0 +1,35 @@ +# Generated by Django 4.1.5 on 2023-01-11 03:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('music', '0003_album_uuid_artist_uuid_track_uuid'), + ] + + operations = [ + migrations.AlterModelOptions( + name='artist', + options={}, + ), + migrations.AlterField( + model_name='album', + name='musicbrainz_id', + field=models.CharField( + blank=True, max_length=255, null=True, unique=True + ), + ), + migrations.AlterField( + model_name='track', + name='musicbrainz_id', + field=models.CharField( + blank=True, max_length=255, null=True, unique=True + ), + ), + migrations.AlterUniqueTogether( + name='artist', + unique_together={('name', 'musicbrainz_id')}, + ), + ] diff --git a/vrobbler/apps/music/migrations/0004_track_thumbs.py b/vrobbler/apps/music/migrations/0004_track_thumbs.py deleted file mode 100644 index 1dd21d9..0000000 --- a/vrobbler/apps/music/migrations/0004_track_thumbs.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 4.1.5 on 2023-01-09 16:19 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('music', '0003_album_uuid_artist_uuid_track_uuid'), - ] - - operations = [ - migrations.AddField( - model_name='track', - name='thumbs', - field=models.IntegerField( - choices=[ - (-1, 'Thumbs down'), - (0, 'No opinion'), - (1, 'Thumbs up'), - ], - default=0, - ), - ), - ] diff --git a/vrobbler/apps/music/models.py b/vrobbler/apps/music/models.py index 6f4f113..59d1e8d 100644 --- a/vrobbler/apps/music/models.py +++ b/vrobbler/apps/music/models.py @@ -16,7 +16,7 @@ class Album(TimeStampedModel): uuid = models.UUIDField(default=uuid4, editable=False, **BNULL) name = models.CharField(max_length=255) year = models.IntegerField(**BNULL) - musicbrainz_id = models.CharField(max_length=255, **BNULL) + musicbrainz_id = models.CharField(max_length=255, unique=True, **BNULL) musicbrainz_releasegroup_id = models.CharField(max_length=255, **BNULL) musicbrainz_albumartist_id = models.CharField(max_length=255, **BNULL) @@ -33,6 +33,9 @@ class Artist(TimeStampedModel): name = models.CharField(max_length=255) musicbrainz_id = models.CharField(max_length=255, **BNULL) + class Meta: + unique_together=[['name', 'musicbrainz_id']] + def __str__(self): return self.name @@ -51,10 +54,10 @@ class Track(TimeStampedModel): title = models.CharField(max_length=255, **BNULL) artist = models.ForeignKey(Artist, on_delete=models.DO_NOTHING) album = models.ForeignKey(Album, on_delete=models.DO_NOTHING, **BNULL) - musicbrainz_id = models.CharField(max_length=255, **BNULL) + musicbrainz_id = models.CharField(max_length=255, unique=True, **BNULL) run_time = models.CharField(max_length=8, **BNULL) run_time_ticks = models.PositiveBigIntegerField(**BNULL) - thumbs = models.IntegerField(default=Opinion.NEUTRAL, choices=Opinion.choices) + # thumbs = models.IntegerField(default=Opinion.NEUTRAL, choices=Opinion.choices) def __str__(self): return f"{self.title} by {self.artist}" diff --git a/vrobbler/apps/videos/migrations/0005_alter_video_options_alter_video_unique_together.py b/vrobbler/apps/videos/migrations/0005_alter_video_options_alter_video_unique_together.py new file mode 100644 index 0000000..1735712 --- /dev/null +++ b/vrobbler/apps/videos/migrations/0005_alter_video_options_alter_video_unique_together.py @@ -0,0 +1,21 @@ +# Generated by Django 4.1.5 on 2023-01-11 03:23 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('videos', '0004_series_uuid_video_uuid'), + ] + + operations = [ + migrations.AlterModelOptions( + name='video', + options={}, + ), + migrations.AlterUniqueTogether( + name='video', + unique_together={('title', 'imdb_id')}, + ), + ] diff --git a/vrobbler/apps/videos/models.py b/vrobbler/apps/videos/models.py index 8d5047e..bd8467f 100644 --- a/vrobbler/apps/videos/models.py +++ b/vrobbler/apps/videos/models.py @@ -58,7 +58,8 @@ class Video(TimeStampedModel): imdb_id = models.CharField(max_length=20, **BNULL) tvrage_id = models.CharField(max_length=20, **BNULL) - # Metadata fields from TMDB + class Meta: + unique_together = [['title', 'imdb_id']] def __str__(self): if self.video_type == self.VideoType.TV_EPISODE: @@ -107,6 +108,7 @@ class Video(TimeStampedModel): video_dict["season_number"] = data_dict.get("SeasonNumber", "") video, created = cls.objects.get_or_create(**video_dict) + if created: logger.debug(f"Created new video: {video}") else: