forked from mirrors/bookwyrm
Add env var to enable/disable thumbnail generation
This commit is contained in:
parent
7ed2ed116a
commit
2731ea9aa9
6 changed files with 117 additions and 103 deletions
|
@ -50,5 +50,8 @@ EMAIL_HOST_PASSWORD=emailpassword123
|
|||
EMAIL_USE_TLS=true
|
||||
EMAIL_USE_SSL=false
|
||||
|
||||
# Thumbnails Generation
|
||||
ENABLE_THUMBNAIL_GENERATION=false
|
||||
|
||||
# Set this to true when initializing certbot for domain, false when not
|
||||
CERTBOT_INIT=false
|
||||
|
|
|
@ -50,5 +50,8 @@ EMAIL_HOST_PASSWORD=emailpassword123
|
|||
EMAIL_USE_TLS=true
|
||||
EMAIL_USE_SSL=false
|
||||
|
||||
# Thumbnails Generation
|
||||
ENABLE_THUMBNAIL_GENERATION=false
|
||||
|
||||
# Set this to true when initializing certbot for domain, false when not
|
||||
CERTBOT_INIT=false
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
""" customize the info available in context for rendering templates """
|
||||
from bookwyrm import models
|
||||
from bookwyrm import models, settings
|
||||
|
||||
|
||||
def site_settings(request): # pylint: disable=unused-argument
|
||||
|
@ -7,4 +7,5 @@ def site_settings(request): # pylint: disable=unused-argument
|
|||
return {
|
||||
"site": models.SiteSettings.objects.get(),
|
||||
"active_announcements": models.Announcement.active_announcements(),
|
||||
"enable_thumbnail_generation": settings.ENABLE_THUMBNAIL_GENERATION,
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ from model_utils.managers import InheritanceManager
|
|||
from imagekit.models import ImageSpecField
|
||||
|
||||
from bookwyrm import activitypub
|
||||
from bookwyrm.settings import DOMAIN, DEFAULT_LANGUAGE
|
||||
from bookwyrm.settings import DOMAIN, DEFAULT_LANGUAGE, ENABLE_THUMBNAIL_GENERATION
|
||||
|
||||
from .activitypub_mixin import OrderedCollectionPageMixin, ObjectMixin
|
||||
from .base_model import BookWyrmModel
|
||||
|
@ -88,20 +88,21 @@ class Book(BookDataModel):
|
|||
|
||||
objects = InheritanceManager()
|
||||
|
||||
cover_bw_book_xsmall_webp = ImageSpecField(source="cover", id="bw:book:xsmall:webp")
|
||||
cover_bw_book_xsmall_jpg = ImageSpecField(source="cover", id="bw:book:xsmall:jpg")
|
||||
cover_bw_book_small_webp = ImageSpecField(source="cover", id="bw:book:small:webp")
|
||||
cover_bw_book_small_jpg = ImageSpecField(source="cover", id="bw:book:small:jpg")
|
||||
cover_bw_book_medium_webp = ImageSpecField(source="cover", id="bw:book:medium:webp")
|
||||
cover_bw_book_medium_jpg = ImageSpecField(source="cover", id="bw:book:medium:jpg")
|
||||
cover_bw_book_large_webp = ImageSpecField(source="cover", id="bw:book:large:webp")
|
||||
cover_bw_book_large_jpg = ImageSpecField(source="cover", id="bw:book:large:jpg")
|
||||
cover_bw_book_xlarge_webp = ImageSpecField(source="cover", id="bw:book:xlarge:webp")
|
||||
cover_bw_book_xlarge_jpg = ImageSpecField(source="cover", id="bw:book:xlarge:jpg")
|
||||
cover_bw_book_xxlarge_webp = ImageSpecField(
|
||||
source="cover", id="bw:book:xxlarge:webp"
|
||||
)
|
||||
cover_bw_book_xxlarge_jpg = ImageSpecField(source="cover", id="bw:book:xxlarge:jpg")
|
||||
if ENABLE_THUMBNAIL_GENERATION:
|
||||
cover_bw_book_xsmall_webp = ImageSpecField(source="cover", id="bw:book:xsmall:webp")
|
||||
cover_bw_book_xsmall_jpg = ImageSpecField(source="cover", id="bw:book:xsmall:jpg")
|
||||
cover_bw_book_small_webp = ImageSpecField(source="cover", id="bw:book:small:webp")
|
||||
cover_bw_book_small_jpg = ImageSpecField(source="cover", id="bw:book:small:jpg")
|
||||
cover_bw_book_medium_webp = ImageSpecField(source="cover", id="bw:book:medium:webp")
|
||||
cover_bw_book_medium_jpg = ImageSpecField(source="cover", id="bw:book:medium:jpg")
|
||||
cover_bw_book_large_webp = ImageSpecField(source="cover", id="bw:book:large:webp")
|
||||
cover_bw_book_large_jpg = ImageSpecField(source="cover", id="bw:book:large:jpg")
|
||||
cover_bw_book_xlarge_webp = ImageSpecField(source="cover", id="bw:book:xlarge:webp")
|
||||
cover_bw_book_xlarge_jpg = ImageSpecField(source="cover", id="bw:book:xlarge:jpg")
|
||||
cover_bw_book_xxlarge_webp = ImageSpecField(
|
||||
source="cover", id="bw:book:xxlarge:webp"
|
||||
)
|
||||
cover_bw_book_xxlarge_jpg = ImageSpecField(source="cover", id="bw:book:xxlarge:jpg")
|
||||
|
||||
@property
|
||||
def author_text(self):
|
||||
|
|
|
@ -187,4 +187,5 @@ USER_AGENT = "%s (BookWyrm/%s; +https://%s/)" % (
|
|||
)
|
||||
|
||||
# Imagekit generated thumbnails
|
||||
ENABLE_THUMBNAIL_GENERATION = env.bool("ENABLE_THUMBNAIL_GENERATION", False)
|
||||
IMAGEKIT_CACHEFILE_DIR = "thumbnails"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{% spaceless %}
|
||||
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load imagekit %}
|
||||
|
||||
{% if book.cover %}
|
||||
|
@ -14,97 +15,101 @@
|
|||
>
|
||||
{% else %}
|
||||
|
||||
{% if size_mobile == 'xsmall' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_xsmall_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_xsmall_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'small' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_small_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_small_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'medium' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_medium_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_medium_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'large' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_large_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_large_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'xlarge' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_xlarge_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_xlarge_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'xxlarge' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_xxlarge_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_xxlarge_jpg.url }}"
|
||||
/>
|
||||
{% endif %}
|
||||
{% if enable_thumbnail_generation %}
|
||||
|
||||
{% if size_mobile == 'xsmall' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_xsmall_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_xsmall_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'small' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_small_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_small_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'medium' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_medium_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_medium_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'large' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_large_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_large_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'xlarge' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_xlarge_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_xlarge_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'xxlarge' %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ book.cover_bw_book_xxlarge_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ book.cover_bw_book_xxlarge_jpg.url }}"
|
||||
/>
|
||||
{% endif %}
|
||||
|
||||
{% if size == 'xsmall' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_xsmall_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_xsmall_jpg.url }}"/>
|
||||
{% elif size == 'small' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_small_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_small_jpg.url }}"/>
|
||||
{% elif size == 'medium' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_medium_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_medium_jpg.url }}"/>
|
||||
{% elif size == 'large' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_large_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_large_jpg.url }}"/>
|
||||
{% elif size == 'xlarge' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_xlarge_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_xlarge_jpg.url }}"/>
|
||||
{% elif size == 'xxlarge' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_xxlarge_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_xxlarge_jpg.url }}"/>
|
||||
{% endif %}
|
||||
|
||||
{% if size == 'xsmall' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_xsmall_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_xsmall_jpg.url }}"/>
|
||||
{% elif size == 'small' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_small_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_small_jpg.url }}"/>
|
||||
{% elif size == 'medium' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_medium_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_medium_jpg.url }}"/>
|
||||
{% elif size == 'large' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_large_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_large_jpg.url }}"/>
|
||||
{% elif size == 'xlarge' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_xlarge_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_xlarge_jpg.url }}"/>
|
||||
{% elif size == 'xxlarge' %}
|
||||
<source type="image/webp" srcset="{{ book.cover_bw_book_xxlarge_webp.url }}"/>
|
||||
<source type="image/jpg" srcset="{{ book.cover_bw_book_xxlarge_jpg.url }}"/>
|
||||
{% endif %}
|
||||
|
||||
<img
|
||||
class="book-cover"
|
||||
src="/images/{{ book.cover }}"
|
||||
src="{% get_media_prefix %}{{ book.cover }}"
|
||||
itemprop="thumbnailUrl"
|
||||
alt="{{ book.alt_text|default:'' }}"
|
||||
>
|
||||
|
@ -116,7 +121,7 @@
|
|||
<figure class="cover-container no-cover {{ cover_class }}">
|
||||
<img
|
||||
class="book-cover"
|
||||
src="/static/images/no_cover.jpg"
|
||||
src="{% static "images/no_cover.jpg" %}"
|
||||
alt="{% trans "No cover" %}"
|
||||
>
|
||||
<figcaption class="cover-caption">
|
||||
|
|
Loading…
Reference in a new issue