forked from DGNum/uptime-kuma-api
improve notification type conversion
This commit is contained in:
parent
d29d908b61
commit
b92263dd47
9 changed files with 365 additions and 172 deletions
14
scripts/build_notification_info_return.py
Normal file
14
scripts/build_notification_info_return.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
from uptime_kuma_api import params_map_notification_providers, notification_provider_options, params_map_notification_provider_options, convert_from_socket
|
||||
|
||||
for provider_sock, provider_py in params_map_notification_providers.items():
|
||||
options = notification_provider_options[provider_sock]
|
||||
tmp = options
|
||||
|
||||
params_map = params_map_notification_provider_options[provider_py]
|
||||
options = convert_from_socket(params_map, options)
|
||||
|
||||
for option in options:
|
||||
print(f'{option}:')
|
||||
print(f' description: {provider_py} provider option.')
|
||||
print(f' returned: if type is {provider_py}')
|
||||
print(' type: str')
|
|
@ -5,7 +5,7 @@ from pprint import pprint
|
|||
import jinja2
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from uptime_kuma_api import convert_from_socket, params_map_notification_provider
|
||||
from uptime_kuma_api import convert_from_socket, params_map_notification_provider_options
|
||||
|
||||
|
||||
def deduplicate_list(l):
|
||||
|
@ -61,7 +61,7 @@ def build_notification_provider_conditions():
|
|||
param_name = re.match(r'\$parent.notification.(.*)$', v_model).group(1)
|
||||
if condition:
|
||||
conditions[param_name] = condition
|
||||
conditions = convert_from_socket(params_map_notification_provider, conditions)
|
||||
conditions = convert_from_socket(params_map_notification_provider_options, conditions)
|
||||
return conditions
|
||||
|
||||
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
import re
|
||||
import os
|
||||
|
||||
from uptime_kuma_api import notification_provider_options
|
||||
|
||||
|
||||
def build_notification_provider_map():
|
||||
params_map_notification_providers = {}
|
||||
|
||||
for notification_provider in notification_provider_options:
|
||||
options = notification_provider_options[notification_provider]
|
||||
provider_name = notification_provider.__dict__["_value_"].lower().replace(".", "")
|
||||
for option in options:
|
||||
option_orig = option
|
||||
|
||||
prefix = os.path.commonprefix([o.lower() for o in options] + [provider_name])
|
||||
option = option[len(prefix):]
|
||||
|
||||
option = re.sub('([A-Z]+)', r'_\1', option).lower()
|
||||
option = provider_name + "_" + option
|
||||
option = option.replace("__", "_")
|
||||
|
||||
params_map_notification_providers[option_orig] = option
|
||||
return params_map_notification_providers
|
||||
|
||||
|
||||
notification_provider_map = build_notification_provider_map()
|
||||
print("params_map_notification_provider =", notification_provider_map)
|
10
scripts/build_params_map_notification_provider_options.j2
Normal file
10
scripts/build_params_map_notification_provider_options.j2
Normal file
|
@ -0,0 +1,10 @@
|
|||
params_map_notification_provider_options = {
|
||||
{%- for provider in notification_provider_map %}
|
||||
{%- set options = notification_provider_map[provider] %}
|
||||
'{{ provider }}': {
|
||||
{%- for key, value in options.items() %}
|
||||
'{{ key }}': '{{ value }}',
|
||||
{%- endfor %}
|
||||
},
|
||||
{%- endfor %}
|
||||
}
|
40
scripts/build_params_map_notification_provider_options.py
Normal file
40
scripts/build_params_map_notification_provider_options.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
import re
|
||||
import os
|
||||
import jinja2
|
||||
|
||||
from uptime_kuma_api import params_map_notification_providers, notification_provider_options
|
||||
|
||||
|
||||
def build_notification_provider_map():
|
||||
params_map_notification_provider_options = {}
|
||||
|
||||
for provider_sock, provider_py in params_map_notification_providers.items():
|
||||
options_sock = notification_provider_options[provider_sock]
|
||||
|
||||
params_map_notification_provider_options[provider_py] = {}
|
||||
for option in options_sock:
|
||||
option_orig = option
|
||||
|
||||
# for example for rocket_chat
|
||||
prefix = os.path.commonprefix([o.lower() for o in options_sock] + [provider_py])
|
||||
option = option[len(prefix):]
|
||||
|
||||
option = re.sub('([A-Z]+)', r'_\1', option).lower()
|
||||
|
||||
# for example for smtp
|
||||
if option.startswith(provider_py):
|
||||
option = option[len(provider_py):]
|
||||
|
||||
option = provider_py + "_" + option
|
||||
option = option.replace("__", "_")
|
||||
|
||||
params_map_notification_provider_options[provider_py][option_orig] = option
|
||||
return params_map_notification_provider_options
|
||||
|
||||
|
||||
notification_provider_map = build_notification_provider_map()
|
||||
|
||||
env = jinja2.Environment(loader=jinja2.FileSystemLoader("./"))
|
||||
template = env.get_template("build_params_map_notification_provider_options.j2")
|
||||
rendered = template.render(notification_provider_map=notification_provider_map)
|
||||
print(rendered)
|
12
scripts/build_params_map_notification_providers.py
Normal file
12
scripts/build_params_map_notification_providers.py
Normal file
|
@ -0,0 +1,12 @@
|
|||
import re
|
||||
|
||||
from uptime_kuma_api import notification_provider_options
|
||||
|
||||
|
||||
params_map_notification_providers = {}
|
||||
|
||||
for notification_provider in notification_provider_options:
|
||||
provider_name_orig = notification_provider.__dict__["_value_"]
|
||||
provider_name = re.sub('([A-Z]+)', r'_\1', provider_name_orig).lower().replace(".", "_").strip("_")
|
||||
params_map_notification_providers[provider_name_orig] = provider_name
|
||||
print(params_map_notification_providers)
|
Loading…
Add table
Add a link
Reference in a new issue