[podcasts] Fix name for Episode model to PodcastEpisode

This commit is contained in:
2024-02-10 13:57:42 -05:00
parent 033e3c3b35
commit bfdf73d4c0
8 changed files with 65 additions and 21 deletions

View File

@ -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()

View File

@ -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"

View File

@ -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",

View File

@ -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",
),
]

View File

@ -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)

View File

@ -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,
),
),
]

View File

@ -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

View File

@ -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 = {