New logo's new sizes markdown stripper.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", | ||||
|                         }, | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.3 MiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_144x144.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 17 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_192x192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 25 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_384x384.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 79 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_48x48.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 3.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_512x512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 132 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_72x72.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_logo_96x96.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 9.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/snek/static/image/snek_original.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.3 MiB | 
| @ -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" | ||||
|       } | ||||
|  | ||||
| @ -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 | ||||
|  | ||||