Start filling out content urls

This commit is contained in:
2023-01-09 00:29:55 -05:00
parent 657b194dc7
commit 28bd9ad504
9 changed files with 104 additions and 15 deletions

View File

@ -0,0 +1,7 @@
def convert_to_seconds(run_time: str) -> int:
"""Jellyfin sends run time as 00:00:00 string. We want the run time to
actually be in seconds so we'll convert it"""
if ":" in run_time:
run_time_list = run_time.split(":")
run_time = (int(run_time_list[1]) * 60) + int(run_time_list[2])
return int(run_time)

View File

@ -3,6 +3,7 @@ from typing import Dict
from uuid import uuid4
from django.db import models
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from django_extensions.db.models import TimeStampedModel
from scrobbles.utils import convert_to_seconds
@ -64,6 +65,10 @@ class Video(TimeStampedModel):
return f"{self.tv_series} - Season {self.season_number}, Episode {self.episode_number}"
return self.title
def get_absolute_url(self):
return reverse("videos:video_detail", kwargs={'slug': self.uuid})
@property
def imdb_link(self):
return f"https://www.imdb.com/title/{self.imdb_id}"

View File

@ -0,0 +1,21 @@
from django.urls import path
from videos import views
app_name = 'scrobbles'
urlpatterns = [
# path('', views.scrobble_endpoint, name='scrobble-list'),
path("movies/", views.MovieListView.as_view(), name='movie_list'),
path('series/', views.SeriesListView.as_view(), name='series_list'),
path(
'series/<slug:slug>/',
views.SeriesDetailView.as_view(),
name='series_detail',
),
path(
'video/<slug:slug>/',
views.VideoDetailView.as_view(),
name='video_detail',
),
]

View File

@ -0,0 +1,25 @@
from django.views import generic
from videos.models import Series, Video
# class VideoIndexView():
class MovieListView(generic.ListView):
model = Video
def get_queryset(self):
return Video.objects.filter(video_type=Video.VideoType.MOVIE)
class SeriesListView(generic.ListView):
model = Series
class SeriesDetailView(generic.DetailView):
model = Series
slug_field = 'uuid'
class VideoDetailView(generic.DetailView):
model = Video
slug_field = 'uuid'