aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2024-08-04 18:46:56 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2024-08-04 18:46:56 -0400
commitafedaa6326d879477ddd56ab2b542d3c8af3f5b2 (patch)
tree12d9f1e9772e1a4bce8de53cbd63ab7e9bbd4393
parentfc95a902c5c353bb003947447dd170adb3773153 (diff)
downloadnotekins-afedaa6326d879477ddd56ab2b542d3c8af3f5b2.tar.xz
Support python version >= 3.10. Don't escape HTML.
-rw-r--r--utils/postutil.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/utils/postutil.py b/utils/postutil.py
index f2e1a3d..7b47997 100644
--- a/utils/postutil.py
+++ b/utils/postutil.py
@@ -25,15 +25,25 @@ from wand.image import Image
import tempfile
import os
+import sys
import shutil
+import hashlib
import mimetypes
from datetime import datetime, timezone
-from hashlib import file_digest
from mistune_emote import emote
from monolith import MediaInstance, Post
from config import conf
+def file_digest(f, n):
+ if sys.version_info[:2] < (3, 11):
+ h = hashlib.new(n)
+ d = f.read()
+ h.update(d)
+ return h
+ else:
+ return hashlib.file_digest(f, n)
+
'''
Takes an abolute path to a static image, generate a thumbnail for it if needed
Returns path to the thumbnail, relative to conf.LOCAL_DATA_ROOT
@@ -51,24 +61,25 @@ def generate_thumbnail(file):
i.resize(int(i.width * s), int(i.height * s), "lanczos2")
i.format = "webp"
i.save(filename=outf)
+ shas = None
with open(outf, "rb") as f:
d = file_digest(f, "sha256")
shas = d.hexdigest()
- destdirp = os.path.join(shas[0:2], shas[2:4])
- destdirp = os.path.join("media_thmb", destdirp)
- destpath = os.path.join(destdirp, f"{shas}.webp")
- destabsp = os.path.join(conf.LOCAL_DATA_ROOT, destpath)
- os.makedirs(os.path.join(conf.LOCAL_DATA_ROOT, destdirp), 0o755, True)
- if not os.path.isfile(destabsp):
- shutil.move(outf, destabsp)
- return destpath
+ destdirp = os.path.join(shas[0:2], shas[2:4])
+ destdirp = os.path.join("media_thmb", destdirp)
+ destpath = os.path.join(destdirp, f"{shas}.webp")
+ destabsp = os.path.join(conf.LOCAL_DATA_ROOT, destpath)
+ os.makedirs(os.path.join(conf.LOCAL_DATA_ROOT, destdirp), 0o755, True)
+ if not os.path.isfile(destabsp):
+ shutil.move(outf, destabsp)
+ return destpath
def should_generate_thumbnail(file):
thumbed_types = ["image/png", "image/jpeg", "image/webp"]
return mimetypes.guess_type(file)[0] in thumbed_types
def process_body(text):
- renderer = mistune.HTMLRenderer()
+ renderer = mistune.HTMLRenderer(escape=False)
md = mistune.Markdown(renderer, plugins=
[strikethrough, url, superscript, subscript, ruby, spoiler, emote])
return md(text)