Procházet zdrojové kódy

[podcasts] Fix name for Episode model to PodcastEpisode

Colin Powell před 1 rokem
rodič
revize
bfdf73d4c0

+ 2 - 1
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()

+ 2 - 2
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"

+ 3 - 3
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",

+ 18 - 0
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",
+        ),
+    ]

+ 1 - 1
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)

+ 32 - 0
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,
+            ),
+        ),
+    ]

+ 3 - 12
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

+ 4 - 2
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 = {