From 5dd685f3192d216770545665d7f554201dfeb5cc Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 5 Feb 2021 12:10:51 +0000 Subject: [PATCH] WIP image proxy --- app/utils/markdown.py | 15 ++++++++++++++- docker-compose.yml | 8 ++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/utils/markdown.py b/app/utils/markdown.py index bdf225d..952419a 100644 --- a/app/utils/markdown.py +++ b/app/utils/markdown.py @@ -1,3 +1,5 @@ +import base64 +import hmac from functools import partial import bleach @@ -58,14 +60,25 @@ md = None def render_markdown(source): + # Parse markdown html = md.convert(source) + # Proxify images + soup = BeautifulSoup(html, "html.parser") + for img in soup.find_all("img"): + mac = base64.b64encode(hmac.new("123".encode("utf-8"), img["src"].encode("utf-8"), 'sha1').digest()) + img["src"] = "http://localhost:5126/,{}{}".format(mac.decode("utf-8"), img["src"]) + html = str(soup) + + # Clean and linkify cleaner = Cleaner( tags=ALLOWED_TAGS, attributes=ALLOWED_ATTRIBUTES, protocols=ALLOWED_PROTOCOLS, filters=[partial(LinkifyFilter, callbacks=bleach.linkifier.DEFAULT_CALLBACKS)]) - return cleaner.clean(html) + html = cleaner.clean(html) + + return html def init_app(app): diff --git a/docker-compose.yml b/docker-compose.yml index 5415b28..f4d5823 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -69,3 +69,11 @@ services: - 5125:9540 depends_on: - redis + +# imageproxy: +# image: willnorris/imageproxy +# entrypoint: ["/app/imageproxy", "-addr", "0.0.0.0:5126", "-signatureKey", "${IMAGEPROXY_KEY}"] +# env_file: +# - config.env +# ports: +# - 5126:5126