episode api

This commit is contained in:
Your Name 2023-06-19 21:32:11 -04:00 committed by Henri Dickson
parent 2c9013ece2
commit 81cd802c22
3 changed files with 19 additions and 0 deletions

View file

@ -113,6 +113,15 @@ def get_tv_season(request, uuid: str, response: HttpResponse):
return _get_item(TVSeason, uuid, response)
@api.get(
"/tv/episode/{uuid}",
response={200: TVEpisodeSchema, 302: RedirectedResult, 404: Result},
auth=None,
)
def get_tv_episode(request, uuid: str, response: HttpResponse):
return _get_item(TVEpisode, uuid, response)
@api.get(
"/podcast/{uuid}",
response={200: PodcastSchema, 302: RedirectedResult, 404: Result},

View file

@ -15,6 +15,7 @@ from .tv.models import (
TVShowInSchema,
TVSeasonSchema,
TVSeasonInSchema,
TVEpisodeSchema,
)
from .music.models import Album, AlbumSchema, AlbumInSchema
from .game.models import Game, GameSchema, GameInSchema

View file

@ -64,12 +64,17 @@ class TVSeasonInSchema(ItemInSchema):
year: int | None = None
site: str | None = None
episode_count: int | None = None
episode_uuids: list[str]
class TVSeasonSchema(TVSeasonInSchema, BaseSchema):
pass
class TVEpisodeSchema(ItemSchema):
episode_number: int | None = None
class TVShow(Item):
type = ItemType.TVShow
child_class = "TVSeason"
@ -400,6 +405,10 @@ class TVSeason(Item):
def child_items(self):
return self.episodes.all()
@property
def episode_uuids(self):
return [x.uuid for x in self.all_episodes]
class TVEpisode(Item):
category = ItemCategory.TV