mirror of
https://github.com/Casvt/MIND.git
synced 2026-02-19 11:54:46 -05:00
Fixed adding NS when regex for field used named groups (#60)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
from re import compile
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from apprise import Apprise
|
||||
@@ -9,6 +10,14 @@ from backend.custom_exceptions import (NotificationServiceInUse,
|
||||
NotificationServiceNotFound)
|
||||
from backend.db import get_db
|
||||
|
||||
remove_named_groups = compile(r'(?<=\()\?P<\w+>')
|
||||
|
||||
def process_regex(regex: Union[List[str], None]):
|
||||
return (
|
||||
[remove_named_groups.sub('', regex[0]), regex[1]]
|
||||
if regex is not None else
|
||||
None
|
||||
)
|
||||
|
||||
def _sort_tokens(t: dict) -> int:
|
||||
result = [
|
||||
@@ -63,7 +72,7 @@ def get_apprise_services() -> List[Dict[str, Union[str, Dict[str, list]]]]:
|
||||
'required': content['required'],
|
||||
'type': content['type'],
|
||||
'prefix': content.get('prefix'),
|
||||
'regex': content.get('regex')
|
||||
'regex': process_regex(content.get('regex'))
|
||||
}
|
||||
for content, _ in ((entry['details']['tokens'][e], handled_tokens.add(e)) for e in v['group'])
|
||||
]
|
||||
@@ -94,7 +103,7 @@ def get_apprise_services() -> List[Dict[str, Union[str, Dict[str, list]]]]:
|
||||
'prefix': v.get('prefix'),
|
||||
'min': v.get('min'),
|
||||
'max': v.get('max'),
|
||||
'regex': v.get('regex')
|
||||
'regex': process_regex(v.get('regex'))
|
||||
})
|
||||
}
|
||||
for k, v in
|
||||
@@ -123,7 +132,7 @@ def get_apprise_services() -> List[Dict[str, Union[str, Dict[str, list]]]]:
|
||||
} if v['type'] == 'bool' else {
|
||||
'min': v.get('min'),
|
||||
'max': v.get('max'),
|
||||
'regex': v.get('regex')
|
||||
'regex': process_regex(v.get('regex'))
|
||||
})
|
||||
}
|
||||
for k, v in
|
||||
|
||||
@@ -196,8 +196,8 @@ function testService() {
|
||||
[...document.querySelectorAll('#add-service-window > input:not([data-regex=""])[data-regex]')]
|
||||
.filter(el => !new RegExp
|
||||
(
|
||||
el.dataset.regex.split('').reverse().join('').split(',').slice(1).join(',').split('').reverse().join(''),
|
||||
el.dataset.regex.split('').reverse().join('').split(',')[0]
|
||||
el.dataset.regex.split(',').slice(0, el.dataset.regex.split(',').length-1).join(','),
|
||||
el.dataset.regex.split(',')[el.dataset.regex.split(',').length-1]
|
||||
).test(el.value)
|
||||
);
|
||||
if (faulty_inputs.length > 0) {
|
||||
@@ -594,8 +594,8 @@ function addService() {
|
||||
[...document.querySelectorAll('#add-service-window > input:not([data-regex=""])[data-regex]')]
|
||||
.filter(el => !new RegExp
|
||||
(
|
||||
el.dataset.regex.split('').reverse().join('').split(',').slice(1).join(',').split('').reverse().join(''),
|
||||
el.dataset.regex.split('').reverse().join('').split(',')[0]
|
||||
el.dataset.regex.split(',').slice(0, el.dataset.regex.split(',').length-1).join(','),
|
||||
el.dataset.regex.split(',')[el.dataset.regex.split(',').length-1]
|
||||
).test(el.value)
|
||||
);
|
||||
if (faulty_inputs.length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user