mirror of
https://github.com/janeczku/calibre-web
synced 2024-11-28 12:30:00 +00:00
support issue: #843
This commit is contained in:
parent
8923e71220
commit
6c493df2f5
@ -24,6 +24,7 @@ import ub
|
|||||||
from flask import current_app as app
|
from flask import current_app as app
|
||||||
from tempfile import gettempdir
|
from tempfile import gettempdir
|
||||||
import sys
|
import sys
|
||||||
|
import io
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import unicodedata
|
import unicodedata
|
||||||
@ -34,6 +35,7 @@ from flask_babel import gettext as _
|
|||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
from babel.dates import format_datetime
|
from babel.dates import format_datetime
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from PIL import Image
|
||||||
import shutil
|
import shutil
|
||||||
import requests
|
import requests
|
||||||
try:
|
try:
|
||||||
@ -445,10 +447,19 @@ def get_book_cover(cover_path):
|
|||||||
# saves book cover to gdrive or locally
|
# saves book cover to gdrive or locally
|
||||||
def save_cover(url, book_path):
|
def save_cover(url, book_path):
|
||||||
img = requests.get(url)
|
img = requests.get(url)
|
||||||
if img.headers.get('content-type') != 'image/jpeg':
|
content_type = img.headers.get('content-type')
|
||||||
web.app.logger.error("Cover is no jpg file, can't save")
|
if content_type not in ('image/jpeg', 'image/png', 'image/webp'):
|
||||||
|
web.app.logger.error("Cover is only support jpg/png/webp file, can't save")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# convert to jpg because calibre just support jpg
|
||||||
|
if content_type in ('image/png', 'image/webp'):
|
||||||
|
imgc = Image.open(io.BytesIO(img.content))
|
||||||
|
im = imgc.convert('RGB')
|
||||||
|
tmp_bytesio = io.BytesIO()
|
||||||
|
im.save(tmp_bytesio, format='JPEG')
|
||||||
|
img.content = tmp_bytesio.getvalue()
|
||||||
|
|
||||||
if ub.config.config_use_google_drive:
|
if ub.config.config_use_google_drive:
|
||||||
tmpDir = gettempdir()
|
tmpDir = gettempdir()
|
||||||
f = open(os.path.join(tmpDir, "uploaded_cover.jpg"), "wb")
|
f = open(os.path.join(tmpDir, "uploaded_cover.jpg"), "wb")
|
||||||
|
@ -13,3 +13,4 @@ SQLAlchemy>=1.1.0
|
|||||||
tornado>=4.1
|
tornado>=4.1
|
||||||
Wand>=0.4.4
|
Wand>=0.4.4
|
||||||
unidecode>=0.04.19
|
unidecode>=0.04.19
|
||||||
|
Pillow>=5.4.0
|
Loading…
Reference in New Issue
Block a user