Add even more imagekit gloriousness
This commit is contained in:
@ -9,9 +9,10 @@ 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 imagekit.models import ImageSpecField
|
||||
from imagekit.processors import ResizeToFit
|
||||
from scrobbles.mixins import ObjectWithGenres, ScrobblableMixin
|
||||
from taggit.managers import TaggableManager
|
||||
|
||||
from videos.imdb import lookup_video_from_imdb
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -25,6 +26,18 @@ class Series(TimeStampedModel):
|
||||
imdb_id = models.CharField(max_length=20, **BNULL)
|
||||
imdb_rating = models.FloatField(**BNULL)
|
||||
cover_image = models.ImageField(upload_to="videos/series/", **BNULL)
|
||||
cover_small = ImageSpecField(
|
||||
source="cover_image",
|
||||
processors=[ResizeToFit(100, 100)],
|
||||
format="JPEG",
|
||||
options={"quality": 60},
|
||||
)
|
||||
cover_medium = ImageSpecField(
|
||||
source="cover_image",
|
||||
processors=[ResizeToFit(300, 300)],
|
||||
format="JPEG",
|
||||
options={"quality": 75},
|
||||
)
|
||||
preferred_source = models.CharField(max_length=100, **BNULL)
|
||||
|
||||
genre = TaggableManager(through=ObjectWithGenres)
|
||||
@ -41,6 +54,13 @@ class Series(TimeStampedModel):
|
||||
def imdb_link(self):
|
||||
return f"https://www.imdb.com/title/tt{self.imdb_id}"
|
||||
|
||||
@property
|
||||
def primary_image_url(self) -> str:
|
||||
url = ""
|
||||
if self.cover_image:
|
||||
url = self.cover_image_medium.url
|
||||
return url
|
||||
|
||||
def scrobbles_for_user(self, user_id: int, include_playing=False):
|
||||
from scrobbles.models import Scrobble
|
||||
|
||||
@ -120,6 +140,18 @@ class Video(ScrobblableMixin):
|
||||
imdb_id = models.CharField(max_length=20, **BNULL)
|
||||
imdb_rating = models.FloatField(**BNULL)
|
||||
cover_image = models.ImageField(upload_to="videos/video/", **BNULL)
|
||||
cover_small = ImageSpecField(
|
||||
source="cover_image",
|
||||
processors=[ResizeToFit(100, 100)],
|
||||
format="JPEG",
|
||||
options={"quality": 60},
|
||||
)
|
||||
cover_medium = ImageSpecField(
|
||||
source="cover_image",
|
||||
processors=[ResizeToFit(300, 300)],
|
||||
format="JPEG",
|
||||
options={"quality": 75},
|
||||
)
|
||||
tvrage_id = models.CharField(max_length=20, **BNULL)
|
||||
tvdb_id = models.CharField(max_length=20, **BNULL)
|
||||
plot = models.TextField(**BNULL)
|
||||
@ -158,7 +190,7 @@ class Video(ScrobblableMixin):
|
||||
def primary_image_url(self) -> str:
|
||||
url = ""
|
||||
if self.cover_image:
|
||||
url = self.cover_image.url
|
||||
url = self.cover_image_medium.url
|
||||
return url
|
||||
|
||||
def fix_metadata(self, force_update=False):
|
||||
|
||||
Reference in New Issue
Block a user