forked from mirrors/bookwyrm
This should now work
This commit is contained in:
parent
bbbae9fc9d
commit
1f2c296cfd
4 changed files with 158 additions and 120 deletions
|
@ -3,6 +3,7 @@ import re
|
|||
|
||||
from django.db import models
|
||||
from model_utils.managers import InheritanceManager
|
||||
from imagekit.models import ImageSpecField
|
||||
|
||||
from bookwyrm import activitypub
|
||||
from bookwyrm.settings import DOMAIN, DEFAULT_LANGUAGE
|
||||
|
@ -87,6 +88,57 @@ 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'
|
||||
)
|
||||
|
||||
|
||||
|
||||
@property
|
||||
def author_text(self):
|
||||
"""format a list of authors"""
|
||||
|
|
|
@ -185,3 +185,6 @@ USER_AGENT = "%s (BookWyrm/%s; +https://%s/)" % (
|
|||
VERSION,
|
||||
DOMAIN,
|
||||
)
|
||||
|
||||
# Imagekit generated thumbnails
|
||||
IMAGEKIT_CACHEFILE_DIR = "thumbnails"
|
||||
|
|
|
@ -5,127 +5,110 @@
|
|||
|
||||
{% if book.cover %}
|
||||
<picture class="cover-container {{ cover_class }}">
|
||||
{% with external_path|yesno:',/images/' as image_path %}
|
||||
{% if external_path %}
|
||||
<img
|
||||
class="book-cover"
|
||||
src="{{ book.cover }}"
|
||||
itemprop="thumbnailUrl"
|
||||
alt="{{ book.alt_text|default:'' }}"
|
||||
>
|
||||
{% else %}
|
||||
|
||||
{% if size_mobile == 'xsmall' %}
|
||||
{% generateimage 'bw:book:xsmall:webp' source=book.cover as th_xsmall_webp %}
|
||||
{% generateimage 'bw:book:xsmall:jpg' source=book.cover as th_xsmall_jpg %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ image_path }}{{ th_xsmall_webp }}"
|
||||
srcset="{{ book.cover_bw_book_xsmall_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ image_path }}{{ th_xsmall_jpg }}"
|
||||
srcset="{{ book.cover_bw_book_xsmall_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'small' %}
|
||||
{% generateimage 'bw:book:small:webp' source=book.cover as th_small_webp %}
|
||||
{% generateimage 'bw:book:small:jpg' source=book.cover as th_small_jpg %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ image_path }}{{ th_small_webp }}"
|
||||
srcset="{{ book.cover_bw_book_small_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ image_path }}{{ th_small_jpg }}"
|
||||
srcset="{{ book.cover_bw_book_small_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'medium' %}
|
||||
{% generateimage 'bw:book:medium:webp' source=book.cover as th_medium_webp %}
|
||||
{% generateimage 'bw:book:medium:jpg' source=book.cover as th_medium_jpg %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ image_path }}{{ th_medium_webp }}"
|
||||
srcset="{{ book.cover_bw_book_medium_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ image_path }}{{ th_medium_jpg }}"
|
||||
srcset="{{ book.cover_bw_book_medium_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'large' %}
|
||||
{% generateimage 'bw:book:large:webp' source=book.cover as th_large_webp %}
|
||||
{% generateimage 'bw:book:large:jpg' source=book.cover as th_large_jpg %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ image_path }}{{ th_large_webp }}"
|
||||
srcset="{{ book.cover_bw_book_large_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ image_path }}{{ th_large_jpg }}"
|
||||
srcset="{{ book.cover_bw_book_large_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'xlarge' %}
|
||||
{% generateimage 'bw:book:xlarge:webp' source=book.cover as th_xlarge_webp %}
|
||||
{% generateimage 'bw:book:xlarge:jpg' source=book.cover as th_xlarge_jpg %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ image_path }}{{ th_xlarge_webp }}"
|
||||
srcset="{{ book.cover_bw_book_xlarge_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ image_path }}{{ th_xlarge_jpg }}"
|
||||
srcset="{{ book.cover_bw_book_xlarge_jpg.url }}"
|
||||
/>
|
||||
{% elif size_mobile == 'xxlarge' %}
|
||||
{% generateimage 'bw:book:xxlarge:webp' source=book.cover as th_xxlarge_webp %}
|
||||
{% generateimage 'bw:book:xxlarge:jpg' source=book.cover as th_xxlarge_jpg %}
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/webp"
|
||||
srcset="{{ image_path }}{{ th_xxlarge_webp }}"
|
||||
srcset="{{ book.cover_bw_book_xxlarge_webp.url }}"
|
||||
/>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
type="image/jpg"
|
||||
srcset="{{ image_path }}{{ th_xxlarge_jpg }}"
|
||||
srcset="{{ book.cover_bw_book_xxlarge_jpg.url }}"
|
||||
/>
|
||||
{% endif %}
|
||||
|
||||
{% if size == 'xsmall' %}
|
||||
{% generateimage 'bw:book:xsmall:webp' source=book.cover as th_xsmall_webp %}
|
||||
{% generateimage 'bw:book:xsmall:jpg' source=book.cover as th_xsmall_jpg %}
|
||||
<source type="image/webp" srcset="{{ image_path }}{{ th_xsmall_webp }}"/>
|
||||
<source type="image/jpg" srcset="{{ image_path }}{{ th_xsmall_jpg }}"/>
|
||||
<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' %}
|
||||
{% generateimage 'bw:book:small:webp' source=book.cover as th_small_webp %}
|
||||
{% generateimage 'bw:book:small:jpg' source=book.cover as th_small_jpg %}
|
||||
<source type="image/webp" srcset="{{ image_path }}{{ th_small_webp }}"/>
|
||||
<source type="image/jpg" srcset="{{ image_path }}{{ th_small_jpg }}"/>
|
||||
<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' %}
|
||||
{% generateimage 'bw:book:medium:webp' source=book.cover as th_medium_webp %}
|
||||
{% generateimage 'bw:book:medium:jpg' source=book.cover as th_medium_jpg %}
|
||||
<source type="image/webp" srcset="{{ image_path }}{{ th_medium_webp }}"/>
|
||||
<source type="image/jpg" srcset="{{ image_path }}{{ th_medium_jpg }}"/>
|
||||
<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' %}
|
||||
{% generateimage 'bw:book:large:webp' source=book.cover as th_large_webp %}
|
||||
{% generateimage 'bw:book:large:jpg' source=book.cover as th_large_jpg %}
|
||||
<source type="image/webp" srcset="{{ image_path }}{{ th_large_webp }}"/>
|
||||
<source type="image/jpg" srcset="{{ image_path }}{{ th_large_jpg }}"/>
|
||||
<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' %}
|
||||
{% generateimage 'bw:book:xlarge:webp' source=book.cover as th_xlarge_webp %}
|
||||
{% generateimage 'bw:book:xlarge:jpg' source=book.cover as th_xlarge_jpg %}
|
||||
<source type="image/webp" srcset="{{ image_path }}{{ th_xlarge_webp }}"/>
|
||||
<source type="image/jpg" srcset="{{ image_path }}{{ th_xlarge_jpg }}"/>
|
||||
<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' %}
|
||||
{% generateimage 'bw:book:xxlarge:webp' source=book.cover as th_xxlarge_webp %}
|
||||
{% generateimage 'bw:book:xxlarge:jpg' source=book.cover as th_xxlarge_jpg %}
|
||||
<source type="image/webp" srcset="{{ image_path }}{{ th_xxlarge_webp }}"/>
|
||||
<source type="image/jpg" srcset="{{ image_path }}{{ th_xxlarge_jpg }}"/>
|
||||
<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="{{ image_path }}{{ book.cover }}"
|
||||
src="/images/{{ book.cover }}"
|
||||
itemprop="thumbnailUrl"
|
||||
alt="{{ book.alt_text|default:'' }}"
|
||||
>
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
</picture>
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ django-model-utils==4.0.0
|
|||
environs==7.2.0
|
||||
flower==0.9.4
|
||||
Markdown==3.3.3
|
||||
Pillow>=7.1.0
|
||||
Pillow>=8.2.0
|
||||
psycopg2==2.8.4
|
||||
pycryptodome==3.9.4
|
||||
python-dateutil==2.8.1
|
||||
|
|
Loading…
Reference in a new issue