From bfdf73d4c09df758cbc4e8705a7bf0caa7330556 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Sat, 10 Feb 2024 13:57:42 -0500 Subject: [PATCH] [podcasts] Fix name for Episode model to PodcastEpisode --- tests/scrobbles_tests/test_aggregators.py | 3 +- tests/scrobbles_tests/test_views.py | 4 +-- vrobbler/apps/podcasts/admin.py | 6 ++-- .../0013_rename_episode_podcastepisode.py | 18 +++++++++++ vrobbler/apps/podcasts/models.py | 2 +- .../0048_alter_scrobble_media_type.py | 32 +++++++++++++++++++ vrobbler/apps/scrobbles/models.py | 15 ++------- vrobbler/apps/scrobbles/scrobblers.py | 6 ++-- 8 files changed, 65 insertions(+), 21 deletions(-) create mode 100644 vrobbler/apps/podcasts/migrations/0013_rename_episode_podcastepisode.py create mode 100644 vrobbler/apps/scrobbles/migrations/0048_alter_scrobble_media_type.py diff --git a/tests/scrobbles_tests/test_aggregators.py b/tests/scrobbles_tests/test_aggregators.py index 1ee0bc7..3c63154 100644 --- a/tests/scrobbles_tests/test_aggregators.py +++ b/tests/scrobbles_tests/test_aggregators.py @@ -16,7 +16,8 @@ from scrobbles.models import Scrobble def build_scrobbles(client, request_data, num=7, spacing=2): url = reverse("scrobbles:mopidy-webhook") user = get_user_model().objects.create(username="Test User") - UserProfile.objects.create(user=user, timezone="US/Eastern") + user.profile.timezone = "US/Eastern" + user.profile.save() for i in range(num): client.post(url, request_data, content_type="application/json") s = Scrobble.objects.last() diff --git a/tests/scrobbles_tests/test_views.py b/tests/scrobbles_tests/test_views.py index c2ab42a..0636320 100644 --- a/tests/scrobbles_tests/test_views.py +++ b/tests/scrobbles_tests/test_views.py @@ -1,7 +1,7 @@ import pytest from django.urls import reverse from music.models import Track -from podcasts.models import Episode +from podcasts.models import PodcastEpisode from scrobbles.models import Scrobble @@ -96,5 +96,5 @@ def test_scrobble_mopidy_podcast( assert response.data == {"scrobble_id": 1} scrobble = Scrobble.objects.get(id=1) - assert scrobble.media_obj.__class__ == Episode + assert scrobble.media_obj.__class__ == PodcastEpisode assert scrobble.media_obj.title == "Up First" diff --git a/vrobbler/apps/podcasts/admin.py b/vrobbler/apps/podcasts/admin.py index 0613e45..7770040 100644 --- a/vrobbler/apps/podcasts/admin.py +++ b/vrobbler/apps/podcasts/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from podcasts.models import Episode, Podcast, Producer +from podcasts.models import PodcastEpisode, Podcast, Producer from scrobbles.admin import ScrobbleInline @@ -21,8 +21,8 @@ class PodcastAdmin(admin.ModelAdmin): ordering = ("name",) -@admin.register(Episode) -class EpisodeAdmin(admin.ModelAdmin): +@admin.register(PodcastEpisode) +class PodcastEpisodeAdmin(admin.ModelAdmin): date_hierarchy = "created" list_display = ( "title", diff --git a/vrobbler/apps/podcasts/migrations/0013_rename_episode_podcastepisode.py b/vrobbler/apps/podcasts/migrations/0013_rename_episode_podcastepisode.py new file mode 100644 index 0000000..c4e125e --- /dev/null +++ b/vrobbler/apps/podcasts/migrations/0013_rename_episode_podcastepisode.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.9 on 2024-02-10 18:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("scrobbles", "0048_alter_scrobble_media_type"), + ("podcasts", "0012_alter_episode_genre"), + ] + + operations = [ + migrations.RenameModel( + old_name="Episode", + new_name="PodcastEpisode", + ), + ] diff --git a/vrobbler/apps/podcasts/models.py b/vrobbler/apps/podcasts/models.py index 3e28a88..26d0712 100644 --- a/vrobbler/apps/podcasts/models.py +++ b/vrobbler/apps/podcasts/models.py @@ -76,7 +76,7 @@ class Podcast(TimeStampedModel): self.cover_image.save(fname, ContentFile(r.content), save=True) -class Episode(ScrobblableMixin): +class PodcastEpisode(ScrobblableMixin): COMPLETION_PERCENT = getattr(settings, "PODCAST_COMPLETION_PERCENT", 90) podcast = models.ForeignKey(Podcast, on_delete=models.DO_NOTHING) diff --git a/vrobbler/apps/scrobbles/migrations/0048_alter_scrobble_media_type.py b/vrobbler/apps/scrobbles/migrations/0048_alter_scrobble_media_type.py new file mode 100644 index 0000000..e20a13d --- /dev/null +++ b/vrobbler/apps/scrobbles/migrations/0048_alter_scrobble_media_type.py @@ -0,0 +1,32 @@ +# Generated by Django 4.2.9 on 2024-02-10 18:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("scrobbles", "0047_scrobble_book_koreader_hash"), + ] + + operations = [ + migrations.AlterField( + model_name="scrobble", + name="media_type", + field=models.CharField( + choices=[ + ("Video", "Video"), + ("Track", "Track"), + ("PodcastEpisode", "Podcast episode"), + ("SportEvent", "Sport event"), + ("Book", "Book"), + ("VideoGame", "Video game"), + ("BoardGame", "Board game"), + ("GeoLocation", "GeoLocation"), + ("WebPage", "Web Page"), + ], + default="Video", + max_length=14, + ), + ), + ] diff --git a/vrobbler/apps/scrobbles/models.py b/vrobbler/apps/scrobbles/models.py index 8befc7e..79e4055 100644 --- a/vrobbler/apps/scrobbles/models.py +++ b/vrobbler/apps/scrobbles/models.py @@ -19,7 +19,7 @@ from imagekit.processors import ResizeToFit from locations.models import GeoLocation from music.lastfm import LastFM from music.models import Artist, Track -from podcasts.models import Episode +from podcasts.models import PodcastEpisode from profiles.utils import ( end_of_day, end_of_month, @@ -469,7 +469,7 @@ class Scrobble(TimeStampedModel): VIDEO = "Video", "Video" TRACK = "Track", "Track" - PODCAST_EPISODE = "Episode", "Podcast episode" + PODCAST_EPISODE = "PodcastEpisode", "Podcast episode" SPORT_EVENT = "SportEvent", "Sport event" BOOK = "Book", "Book" VIDEO_GAME = "VideoGame", "Video game" @@ -477,20 +477,11 @@ class Scrobble(TimeStampedModel): GEO_LOCATION = "GeoLocation", "GeoLocation" WEBPAGE = "WebPage", "Web Page" - media_ids = { - "Track": "track_id", - "Video": "video_id", - "Episode": "episode_id", - "SportEvent": "spoort_event_id", - "Track": "track_id", - "Track": "track_id", - } - uuid = models.UUIDField(editable=False, **BNULL) video = models.ForeignKey(Video, on_delete=models.DO_NOTHING, **BNULL) track = models.ForeignKey(Track, on_delete=models.DO_NOTHING, **BNULL) podcast_episode = models.ForeignKey( - Episode, on_delete=models.DO_NOTHING, **BNULL + PodcastEpisode, on_delete=models.DO_NOTHING, **BNULL ) sport_event = models.ForeignKey( SportEvent, on_delete=models.DO_NOTHING, **BNULL diff --git a/vrobbler/apps/scrobbles/scrobblers.py b/vrobbler/apps/scrobbles/scrobblers.py index e677779..62f1acc 100644 --- a/vrobbler/apps/scrobbles/scrobblers.py +++ b/vrobbler/apps/scrobbles/scrobblers.py @@ -17,7 +17,7 @@ from music.utils import ( get_or_create_artist, get_or_create_track, ) -from podcasts.models import Episode +from podcasts.models import PodcastEpisode from scrobbles.models import Scrobble from scrobbles.utils import convert_to_seconds, parse_mopidy_uri from sports.models import SportEvent @@ -52,7 +52,9 @@ def mopidy_scrobble_podcast( "mopidy_uri": mopidy_uri, } - episode = Episode.find_or_create(podcast_dict, producer_dict, episode_dict) + episode = PodcastEpisode.find_or_create( + podcast_dict, producer_dict, episode_dict + ) # Now we run off a scrobble mopidy_data = {