Matthew Welch
c4e6824a8a
Change error logging to log messages as error rather than info Add 404 error when video or comic not found Change paths to use pathlib
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
import os
|
|
import sqlite3
|
|
from io import BytesIO
|
|
|
|
from wand.image import Image
|
|
|
|
RPI_DATABASE = "/var/lib/rpiWebApp/database.db"
|
|
|
|
MC_DATABASE = "***REMOVED***"
|
|
|
|
DATABASE = RPI_DATABASE if os.path.exists(RPI_DATABASE) else MC_DATABASE
|
|
|
|
|
|
db = sqlite3.connect(DATABASE)
|
|
db.row_factory = sqlite3.Row
|
|
|
|
|
|
def resize_image(image, new_width=256, new_height=256):
|
|
new_image = image
|
|
orig_height = new_image.height
|
|
orig_width = new_image.width
|
|
if orig_height >= orig_width:
|
|
width = int((orig_width / orig_height) * new_height)
|
|
height = new_height
|
|
else:
|
|
height = int((orig_height / orig_width) * new_width)
|
|
width = new_width
|
|
new_image.thumbnail(width, height)
|
|
return new_image
|
|
|
|
|
|
def fix_thumbnails():
|
|
new_height = 256
|
|
new_width = 256
|
|
print("Start fix thumbnail size")
|
|
rows = db.execute("SELECT * FROM comic_thumbnails")
|
|
print("got list of all thumbnails\n")
|
|
|
|
for row in rows:
|
|
with Image(blob=row["image"]) as image:
|
|
if image.width > new_width or image.height > new_height:
|
|
print("id:", row["id"], "pageNumber:", row["pageNumber"])
|
|
db.execute(
|
|
"UPDATE comic_thumbnails SET image=? WHERE id=? AND pageNumber=?",
|
|
[resize_image(image, new_width, new_height).make_blob(), row["id"], row["pageNumber"]],
|
|
)
|
|
db.commit()
|
|
|
|
|
|
fix_thumbnails()
|