From c2a728e82adcd75edea60a994b229fbd650a2a4f Mon Sep 17 00:00:00 2001 From: zevaryx Date: Fri, 18 Mar 2022 17:48:14 -0600 Subject: [PATCH] Add Bypass object, new filters --- jarvis_core/db/models/__init__.py | 12 ++++++++++-- jarvis_core/filters.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/jarvis_core/db/models/__init__.py b/jarvis_core/db/models/__init__.py index 0826893..85e6bb0 100644 --- a/jarvis_core/db/models/__init__.py +++ b/jarvis_core/db/models/__init__.py @@ -2,7 +2,7 @@ from datetime import datetime import marshmallow as ma -from umongo import Document, fields +from umongo import Document, EmbeddedDocument, fields from jarvis_core.db import JARVIS_INST from jarvis_core.db.models.actions import Ban, Kick, Mute, Unban, Warning @@ -95,6 +95,14 @@ class Rolegiver(Document): roles = fields.ListField(fields.IntegerField()) +@JARVIS_INST.register +class Bypass(EmbeddedDocument): + """Roleping bypass embedded object.""" + + users = fields.ListField(fields.IntegerField()) + roles = fields.ListField(fields.IntegerField()) + + @JARVIS_INST.register class Roleping(Document): """Roleping database object.""" @@ -103,7 +111,7 @@ class Roleping(Document): role = fields.IntegerField(required=True) guild = fields.IntegerField(required=True) admin = fields.IntegerField(required=True) - bypass = fields.DictField() + bypass = fields.EmbeddedField(Bypass) created_at = fields.DateTimeField(default=datetime.utcnow) diff --git a/jarvis_core/filters.py b/jarvis_core/filters.py index 0da0546..43516fa 100644 --- a/jarvis_core/filters.py +++ b/jarvis_core/filters.py @@ -11,7 +11,7 @@ custom_emote = re.compile(r"<:\w+:(\d+)>$", flags=re.IGNORECASE) valid_text = re.compile(r"[\w\s\-\\/.!@#$%^*()+=<>,\u0080-\U000E0FFF]*", flags=re.IGNORECASE) url = re.compile( - r"https?:\/\/(www\.)?[-a-z0-9@:%._\+~#=]{1,256}\.[a-z0-9()]{1,6}\b([-a-z0-9()@:%_\+.~#?&//=]*)", + r"(?:https?:\/\/(?:www\.)?)?(?P[-a-z0-9@:%._\+~#=]{1,256}\.[a-z0-9()]{1,6})\b(?:[-a-z0-9()@:%_\+.~#?&//=]*)", flags=re.IGNORECASE, )