From c463dc6dca38348f9a54189e0b6eff6f5a3eb9b2 Mon Sep 17 00:00:00 2001 From: retoor Date: Sun, 16 Feb 2025 22:41:33 +0100 Subject: [PATCH] Updated video player. --- src/snek/system/template.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/snek/system/template.py b/src/snek/system/template.py index e8935b7..60b176d 100644 --- a/src/snek/system/template.py +++ b/src/snek/system/template.py @@ -23,7 +23,35 @@ def set_link_target_blank(text): element.replace_with(BeautifulSoup(embed_template, 'html.parser')) return str(soup) - + +def embed_youtube(text): + soup = BeautifulSoup(text, 'html.parser') + for element in soup.find_all("a"): + if element.attrs['href'].startswith("https://www.you") and "?v=" in element.attrs["href"]: + video_name = element.attrs["href"].split("?v=")[1].split("&")[0] + embed_template = f'' + element.replace_with(BeautifulSoup(embed_template, 'html.parser')) + return str(soup) + +def embed_image(text): + soup = BeautifulSoup(text, 'html.parser') + for element in soup.find_all("a"): + for extension in [".png", ".jpeg", ".gif", ".webp", ".svg", ".bmp", ".tiff", ".ico", ".heif"]: + if extension in element.attrs['href'].lower(): + embed_template = f'{element.attrs[' + element.replace_with(BeautifulSoup(embed_template, 'html.parser')) + return str(soup) + +def embed_media(text): + soup = BeautifulSoup(text, 'html.parser') + for element in soup.find_all("a"): + for extension in [".mp4", ".mp3", ".wav", ".ogg", ".webm", ".flac", ".aac",".mpg",".avi",".wmv"]: + if extension in element.attrs['href'].lower(): + embed_template = f'' + element.replace_with(BeautifulSoup(embed_template, 'html.parser')) + return str(soup) + + def linkify_https(text): if not "https://" in text: @@ -83,7 +111,11 @@ class LinkifyExtension(Extension): ).set_lineno(line_number) def _to_html(self, md_file, caller): - return linkify_https(caller()) + result = linkify_https(caller()) + result = embed_media(result) + result = embed_image(result) + result = embed_youtube(result) + return result class PythonExtension(Extension): tags = {"py3"}