diff --git a/src/snek/service/notification.py b/src/snek/service/notification.py index 1e34bae..3584956 100644 --- a/src/snek/service/notification.py +++ b/src/snek/service/notification.py @@ -1,6 +1,6 @@ from snek.system.model import now from snek.system.service import BaseService - +from snek.system.markdown import strip_markdown class NotificationService(BaseService): mapper_name = "notification" @@ -64,11 +64,13 @@ class NotificationService(BaseService): if channel_member["user_uid"] != user["uid"]: try: + stripped_message = strip_markdown(channel_message["message"]) + channel_name = channel_member.get_name() await self.app.services.push.notify_user( user_uid=channel_member["user_uid"], payload={ - "title": f"New message in {channel_member['label']}", - "message": f"{user['nick']}: {channel_message['message']}", + "title": f"New message in {channel_member}", + "message": f"{user['nick']}: {stripped_message}", "icon": "/image/snek192.png", "url": f"/channel/{channel_message['channel_uid']}.html", }, diff --git a/src/snek/static/image/snek_logo.png b/src/snek/static/image/snek_logo.png new file mode 100644 index 0000000..7aa42c9 Binary files /dev/null and b/src/snek/static/image/snek_logo.png differ diff --git a/src/snek/static/image/snek_logo_144x144.png b/src/snek/static/image/snek_logo_144x144.png new file mode 100644 index 0000000..69e40a4 Binary files /dev/null and b/src/snek/static/image/snek_logo_144x144.png differ diff --git a/src/snek/static/image/snek_logo_192x192.png b/src/snek/static/image/snek_logo_192x192.png new file mode 100644 index 0000000..8bc21ee Binary files /dev/null and b/src/snek/static/image/snek_logo_192x192.png differ diff --git a/src/snek/static/image/snek_logo_384x384.png b/src/snek/static/image/snek_logo_384x384.png new file mode 100644 index 0000000..53e8df1 Binary files /dev/null and b/src/snek/static/image/snek_logo_384x384.png differ diff --git a/src/snek/static/image/snek_logo_48x48.png b/src/snek/static/image/snek_logo_48x48.png new file mode 100644 index 0000000..0b2b14e Binary files /dev/null and b/src/snek/static/image/snek_logo_48x48.png differ diff --git a/src/snek/static/image/snek_logo_512x512.png b/src/snek/static/image/snek_logo_512x512.png new file mode 100644 index 0000000..e71510d Binary files /dev/null and b/src/snek/static/image/snek_logo_512x512.png differ diff --git a/src/snek/static/image/snek_logo_72x72.png b/src/snek/static/image/snek_logo_72x72.png new file mode 100644 index 0000000..60740b3 Binary files /dev/null and b/src/snek/static/image/snek_logo_72x72.png differ diff --git a/src/snek/static/image/snek_logo_96x96.png b/src/snek/static/image/snek_logo_96x96.png new file mode 100644 index 0000000..2b30f32 Binary files /dev/null and b/src/snek/static/image/snek_logo_96x96.png differ diff --git a/src/snek/static/image/snek_original.png b/src/snek/static/image/snek_original.png new file mode 100644 index 0000000..7aa42c9 Binary files /dev/null and b/src/snek/static/image/snek_original.png differ diff --git a/src/snek/static/manifest.json b/src/snek/static/manifest.json index 749df05..ff75ec9 100644 --- a/src/snek/static/manifest.json +++ b/src/snek/static/manifest.json @@ -17,12 +17,12 @@ "start_url": "/web.html", "icons": [ { - "src": "/image/snek192.png", + "src": "/image/snek_logo_192x192.png", "type": "image/png", "sizes": "192x192" }, { - "src": "/image/snek512.png", + "src": "/image/snek_logo_512x512.png", "type": "image/png", "sizes": "512x512" } diff --git a/src/snek/system/markdown.py b/src/snek/system/markdown.py index b71b8f2..a823b5f 100644 --- a/src/snek/system/markdown.py +++ b/src/snek/system/markdown.py @@ -1,5 +1,5 @@ # Original source: https://brandonjay.dev/posts/2021/render-markdown-html-in-python-with-jinja2 - +import re from types import SimpleNamespace from app.cache import time_cache_async @@ -12,6 +12,20 @@ from pygments.formatters import html from pygments.lexers import get_lexer_by_name +def strip_markdown(md_text): + # Remove code blocks ( + md_text = re.sub(r'[\s\S]?```', '', md_text) + md_text = re.sub(r'^\s{4,}.$', '', md_text, flags=re.MULTILINE) + md_text = re.sub(r'^\s{0,3}#{1,6}\s+', '', md_text, flags=re.MULTILINE) + md_text = re.sub(r'!\[.?\]\(.?\)', '', md_text) + md_text = re.sub(r'\[([^\]]+)\]\(.?\)', r'\1', md_text) + md_text = re.sub(r'(\*|_){1,3}(.+?)\1{1,3}', r'\2', md_text) + md_text = re.sub(r'^\s{0,3}>+\s?', '', md_text, flags=re.MULTILINE) + md_text = re.sub(r'^(\s)(\-{3,}|_{3,}|\{3,})\s$', '', md_text, flags=re.MULTILINE) + md_text = re.sub(r'[`~>#+\-=]', '', md_text) + md_text = re.sub(r'\s+', ' ', md_text) + return md_text.strip() + class MarkdownRenderer(HTMLRenderer): _allow_harmful_protocols = False