X-Git-Url: https://git.mdrn.pl/audio.git/blobdiff_plain/1b434b4f4eb775a20054b0efeca3fea63a161879..5f3db867cdab89e934f4946c58568039b780defe:/src/youtube/models.py?ds=inline diff --git a/src/youtube/models.py b/src/youtube/models.py index 356e335..35899b6 100644 --- a/src/youtube/models.py +++ b/src/youtube/models.py @@ -1,6 +1,5 @@ import io from os import unlink -from tempfile import NamedTemporaryFile from django.db import models from django.utils.translation import gettext_lazy as _ from django.template import Template, Context @@ -24,6 +23,7 @@ YOUTUBE_TITLE_LIMIT = 100 class YouTube(models.Model): + name = models.CharField(max_length=255) title_template = models.CharField(max_length=1024, blank=True) description_template = models.TextField(blank=True) category = models.IntegerField(null=True, blank=True, choices=[ @@ -44,6 +44,9 @@ class YouTube(models.Model): verbose_name = _("YouTube configuration") verbose_name_plural = _("YouTube configurations") + def __str__(self): + return self.name + def get_context(self, audiobook): return Context(dict( audiobook=audiobook, @@ -212,6 +215,7 @@ class Font(models.Model): class ThumbnailTemplate(models.Model): + youtube = models.ForeignKey(YouTube, models.CASCADE) order = models.SmallIntegerField() is_active = models.BooleanField() background = models.FileField(upload_to='youtube/thumbnail') @@ -227,13 +231,19 @@ class ThumbnailTemplate(models.Model): def generate(self, audiobook): try: + title = audiobook.book['title'] + if audiobook.book.get('parent'): + parent_title = audiobook.book['parent']['title'] + if not title.startswith(parent_title): + title = ", ".join((parent_title, title)) + img = create_thumbnail( self.background.path, self.definition, { "author": ', '.join((a['name'] for a in audiobook.book['authors'])), - "title": audiobook.book['title'], - "part": (audiobook.youtube_volume or audiobook.part_name).strip(), + "title": title, + "part": (audiobook.youtube_volume or audiobook.part_name).strip() if audiobook.youtube_volume_count > 1 else '', }, lambda name: Font.objects.get(name=name).truetype.path )