Start filling out content urls
This commit is contained in:
7
vrobbler/apps/scrobbles/utils.py
Normal file
7
vrobbler/apps/scrobbles/utils.py
Normal 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)
|
||||
@ -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}"
|
||||
|
||||
|
||||
21
vrobbler/apps/videos/urls.py
Normal file
21
vrobbler/apps/videos/urls.py
Normal 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',
|
||||
),
|
||||
]
|
||||
25
vrobbler/apps/videos/views.py
Normal file
25
vrobbler/apps/videos/views.py
Normal 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'
|
||||
Reference in New Issue
Block a user