chore(api): move podcasts in dedicated app (#1899)

This commit is contained in:
Jonas L 2022-06-21 14:40:21 +02:00 committed by GitHub
parent 4004981429
commit b9895d19e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 37 additions and 21 deletions

View file

@ -1,5 +1,4 @@
from .playlist import Playlist, PlaylistContent
from .podcast import ImportedPodcast, Podcast, PodcastEpisode, StationPodcast
from .schedule import Schedule
from .show import Show, ShowDays, ShowHost, ShowInstance, ShowRebroadcast
from .smart_block import SmartBlock, SmartBlockContent, SmartBlockCriteria

View file

@ -1,83 +0,0 @@
from django.db import models
class Podcast(models.Model):
url = models.CharField(max_length=4096)
title = models.CharField(max_length=4096)
creator = models.CharField(max_length=4096, blank=True, null=True)
description = models.CharField(max_length=4096, blank=True, null=True)
language = models.CharField(max_length=4096, blank=True, null=True)
copyright = models.CharField(max_length=4096, blank=True, null=True)
link = models.CharField(max_length=4096, blank=True, null=True)
itunes_author = models.CharField(max_length=4096, blank=True, null=True)
itunes_keywords = models.CharField(max_length=4096, blank=True, null=True)
itunes_summary = models.CharField(max_length=4096, blank=True, null=True)
itunes_subtitle = models.CharField(max_length=4096, blank=True, null=True)
itunes_category = models.CharField(max_length=4096, blank=True, null=True)
itunes_explicit = models.CharField(max_length=4096, blank=True, null=True)
owner = models.ForeignKey(
"core.User", models.DO_NOTHING, db_column="owner", blank=True, null=True
)
def get_owner(self):
return self.owner
class Meta:
managed = False
db_table = "podcast"
permissions = [
("change_own_podcast", "Change the podcasts where they are the owner"),
("delete_own_podcast", "Delete the podcasts where they are the owner"),
]
class PodcastEpisode(models.Model):
file = models.ForeignKey("storage.File", models.DO_NOTHING, blank=True, null=True)
podcast = models.ForeignKey("Podcast", models.DO_NOTHING)
publication_date = models.DateTimeField()
download_url = models.CharField(max_length=4096)
episode_guid = models.CharField(max_length=4096)
episode_title = models.CharField(max_length=4096)
episode_description = models.TextField()
def get_owner(self):
return self.podcast.owner
class Meta:
managed = False
db_table = "podcast_episodes"
permissions = [
(
"change_own_podcastepisode",
"Change the episodes of podcasts where they are the owner",
),
(
"delete_own_podcastepisode",
"Delete the episodes of podcasts where they are the owner",
),
]
class StationPodcast(models.Model):
podcast = models.ForeignKey("Podcast", models.DO_NOTHING)
def get_owner(self):
return self.podcast.owner
class Meta:
managed = False
db_table = "station_podcast"
class ImportedPodcast(models.Model):
auto_ingest = models.BooleanField()
auto_ingest_timestamp = models.DateTimeField(blank=True, null=True)
album_override = models.BooleanField()
podcast = models.ForeignKey("Podcast", models.DO_NOTHING)
def get_owner(self):
return self.podcast.owner
class Meta:
managed = False
db_table = "imported_podcast"

View file

@ -1,11 +1,8 @@
from rest_framework import routers
from .views import (
ImportedPodcastViewSet,
PlaylistContentViewSet,
PlaylistViewSet,
PodcastEpisodeViewSet,
PodcastViewSet,
ScheduleViewSet,
ShowDaysViewSet,
ShowHostViewSet,
@ -15,7 +12,6 @@ from .views import (
SmartBlockContentViewSet,
SmartBlockCriteriaViewSet,
SmartBlockViewSet,
StationPodcastViewSet,
WebstreamMetadataViewSet,
WebstreamViewSet,
)
@ -23,10 +19,6 @@ from .views import (
router = routers.DefaultRouter()
router.register("playlist-contents", PlaylistContentViewSet)
router.register("playlists", PlaylistViewSet)
router.register("podcast-episodes", PodcastEpisodeViewSet)
router.register("podcasts", PodcastViewSet)
router.register("station-podcasts", StationPodcastViewSet)
router.register("imported-podcasts", ImportedPodcastViewSet)
router.register("schedule", ScheduleViewSet)
router.register("show-days", ShowDaysViewSet)
router.register("show-hosts", ShowHostViewSet)

View file

@ -1,10 +1,4 @@
from .playlist import PlaylistContentSerializer, PlaylistSerializer
from .podcast import (
ImportedPodcastSerializer,
PodcastEpisodeSerializer,
PodcastSerializer,
StationPodcastSerializer,
)
from .schedule import ScheduleSerializer
from .show import (
ShowDaysSerializer,

View file

@ -1,27 +0,0 @@
from rest_framework import serializers
from ..models import ImportedPodcast, Podcast, PodcastEpisode, StationPodcast
class PodcastSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Podcast
fields = "__all__"
class PodcastEpisodeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = PodcastEpisode
fields = "__all__"
class StationPodcastSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = StationPodcast
fields = "__all__"
class ImportedPodcastSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ImportedPodcast
fields = "__all__"

View file

@ -1,10 +1,4 @@
from .playlist import PlaylistContentViewSet, PlaylistViewSet
from .podcast import (
ImportedPodcastViewSet,
PodcastEpisodeViewSet,
PodcastViewSet,
StationPodcastViewSet,
)
from .schedule import ScheduleViewSet
from .show import (
ShowDaysViewSet,

View file

@ -1,33 +0,0 @@
from rest_framework import viewsets
from ..models import ImportedPodcast, Podcast, PodcastEpisode, StationPodcast
from ..serializers import (
ImportedPodcastSerializer,
PodcastEpisodeSerializer,
PodcastSerializer,
StationPodcastSerializer,
)
class PodcastViewSet(viewsets.ModelViewSet):
queryset = Podcast.objects.all()
serializer_class = PodcastSerializer
model_permission_name = "podcast"
class PodcastEpisodeViewSet(viewsets.ModelViewSet):
queryset = PodcastEpisode.objects.all()
serializer_class = PodcastEpisodeSerializer
model_permission_name = "podcastepisode"
class StationPodcastViewSet(viewsets.ModelViewSet):
queryset = StationPodcast.objects.all()
serializer_class = StationPodcastSerializer
model_permission_name = "station"
class ImportedPodcastViewSet(viewsets.ModelViewSet):
queryset = ImportedPodcast.objects.all()
serializer_class = ImportedPodcastSerializer
model_permission_name = "importedpodcast"