Fixed adding NS when regex for field used named groups (#60)

This commit is contained in:
CasVT
2023-08-20 22:52:37 +02:00
parent cc9922877f
commit 5493ad8d55
2 changed files with 16 additions and 7 deletions

View File

@@ -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

View File

@@ -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) {