forked from DGNum/uptime-kuma-api
remove converter
This commit is contained in:
parent
a1a483efce
commit
8d2c0ec4f7
10 changed files with 273 additions and 579 deletions
102
scripts/build_models.py
Normal file
102
scripts/build_models.py
Normal file
|
@ -0,0 +1,102 @@
|
|||
import re
|
||||
from pprint import pprint
|
||||
|
||||
|
||||
def parse_data_keys(data):
|
||||
keys = []
|
||||
for line in data.split("\n"):
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
match = re.match(r'^([^:]+):', line) # example: "type: this.type,"
|
||||
if match:
|
||||
key = match.group(1)
|
||||
else:
|
||||
key = line.rstrip(",") # example: "notificationIDList,"
|
||||
keys.append(key)
|
||||
return keys
|
||||
|
||||
|
||||
def parse_heartbeat():
|
||||
with open('uptime-kuma/server/model/heartbeat.js') as f:
|
||||
content = f.read()
|
||||
all_keys = []
|
||||
match = re.search(r'toJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
all_keys.extend(keys)
|
||||
match = re.search(r'toPublicJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
all_keys.extend(keys)
|
||||
all_keys = list(set(all_keys))
|
||||
return all_keys
|
||||
|
||||
|
||||
def parse_incident():
|
||||
with open('uptime-kuma/server/model/incident.js') as f:
|
||||
content = f.read()
|
||||
match = re.search(r'toPublicJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
return keys
|
||||
|
||||
|
||||
def parse_monitor():
|
||||
# todo: toPublicJSON ???
|
||||
with open('uptime-kuma/server/model/monitor.js') as f:
|
||||
content = f.read()
|
||||
matches = re.findall(r'data = {([^}]+)}', content)
|
||||
all_keys = []
|
||||
for match in matches:
|
||||
keys = parse_data_keys(match)
|
||||
keys = [i for i in keys if i != "...data"]
|
||||
all_keys.extend(keys)
|
||||
return all_keys
|
||||
|
||||
|
||||
def parse_proxy():
|
||||
with open('uptime-kuma/server/model/proxy.js') as f:
|
||||
content = f.read()
|
||||
match = re.search(r'toJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
return keys
|
||||
|
||||
|
||||
def parse_status_page():
|
||||
with open('uptime-kuma/server/model/status_page.js') as f:
|
||||
content = f.read()
|
||||
all_keys = []
|
||||
match = re.search(r'toJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
all_keys.extend(keys)
|
||||
match = re.search(r'toPublicJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
all_keys.extend(keys)
|
||||
all_keys = list(set(all_keys))
|
||||
return all_keys
|
||||
|
||||
|
||||
def parse_tag():
|
||||
with open('uptime-kuma/server/model/tag.js') as f:
|
||||
content = f.read()
|
||||
match = re.search(r'toJSON\(\) {\s+return.*{([^}]+)}', content)
|
||||
data = match.group(1)
|
||||
keys = parse_data_keys(data)
|
||||
return keys
|
||||
|
||||
|
||||
pprint(parse_heartbeat())
|
||||
pprint(parse_incident())
|
||||
pprint(parse_monitor())
|
||||
pprint(parse_proxy())
|
||||
pprint(parse_status_page())
|
||||
pprint(parse_tag())
|
||||
|
||||
|
||||
# TODO:
|
||||
# https://github.com/louislam/uptime-kuma/blob/2adb142ae25984ecebfa4b51c739fec5e492763a/server/proxy.js#L20
|
||||
# https://github.com/louislam/uptime-kuma/blob/239611a016a85712305100818d4c7b88a14664a9/server/socket-handlers/status-page-socket-handler.js#L118
|
Loading…
Add table
Add a link
Reference in a new issue