mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-08 06:14:08 -05:00
131 lines
4.0 KiB
Python
Executable File
131 lines
4.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import json
|
|
from sys import argv, stderr
|
|
|
|
|
|
def main(path):
|
|
print(f"Opening {path}", file=stderr)
|
|
with open(path, "r") as f:
|
|
lines = [line.strip() for line in f.readlines()]
|
|
|
|
methods = []
|
|
parsing = False
|
|
parsing_request = False
|
|
parsing_response = False
|
|
|
|
method = ""
|
|
comment = ""
|
|
request_lines = []
|
|
response_lines = []
|
|
start_line = 0
|
|
|
|
for idx, line in enumerate(lines):
|
|
if not line.startswith("//"):
|
|
if parsing_response and response_lines:
|
|
request_json = " ".join(request_lines)
|
|
response_json = " ".join(response_lines)
|
|
|
|
parsed_req = json.loads(request_json)
|
|
parsed_res = json.loads(response_json)
|
|
|
|
methods.append({
|
|
"method": parsed_req["method"],
|
|
"comment": comment.strip(),
|
|
"request": json.dumps(parsed_req, indent=2),
|
|
"response": json.dumps(parsed_res, indent=2),
|
|
"line": start_line
|
|
})
|
|
|
|
parsing = False
|
|
parsing_request = False
|
|
parsing_response = False
|
|
request_lines = []
|
|
response_lines = []
|
|
continue
|
|
|
|
text = line[2:].strip()
|
|
|
|
if text == "RPCAPI:":
|
|
if parsing_response and response_lines:
|
|
request_json = " ".join(request_lines)
|
|
response_json = " ".join(response_lines)
|
|
|
|
parsed_req = json.loads(request_json)
|
|
parsed_res = json.loads(response_json)
|
|
|
|
methods.append({
|
|
"method": parsed_req["method"],
|
|
"comment": comment.strip(),
|
|
"request": json.dumps(parsed_req, indent=2),
|
|
"response": json.dumps(parsed_res, indent=2),
|
|
"line": start_line
|
|
})
|
|
|
|
parsing_request = False
|
|
parsing_response = False
|
|
request_lines = []
|
|
response_lines = []
|
|
|
|
parsing = True
|
|
start_line = idx + 1
|
|
comment = ""
|
|
continue
|
|
|
|
if not parsing:
|
|
continue
|
|
|
|
if text.startswith("-->"):
|
|
parsing_request = True
|
|
request_lines = [text[3:].strip()]
|
|
continue
|
|
|
|
if text.startswith("<--"):
|
|
parsing_request = False
|
|
parsing_response = True
|
|
response_lines = [text[3:].strip()]
|
|
continue
|
|
|
|
if parsing_response:
|
|
response_lines.append(text)
|
|
elif parsing_request:
|
|
request_lines.append(text)
|
|
else:
|
|
comment += text + "\n"
|
|
|
|
if parsing_response and response_lines:
|
|
request_json = " ".join(request_lines)
|
|
response_json = " ".join(response_lines)
|
|
|
|
parsed_req = json.loads(request_json)
|
|
parsed_res = json.loads(response_json)
|
|
|
|
methods.append({
|
|
"method": parsed_req["method"],
|
|
"comment": comment.strip(),
|
|
"request": json.dumps(parsed_req, indent=2),
|
|
"response": json.dumps(parsed_res, indent=2),
|
|
"line": start_line
|
|
})
|
|
|
|
for m in methods:
|
|
anchor = m["method"].replace(".", "").replace("/", "").lower()
|
|
ghlink = f"https://codeberg.org/darkrenaissance/darkfi/src/branch/master/{path.replace('../', '')}#L{m['line']}"
|
|
print(f"### `{m['method']}` <sup><a href=\"{ghlink}\">[source]</a></sup> {{#{anchor}}}\n")
|
|
|
|
if m["comment"]:
|
|
print(f"{m['comment']}\n")
|
|
|
|
print("**Request:**\n")
|
|
print("```json")
|
|
print(m["request"])
|
|
print("```\n")
|
|
|
|
print("**Response:**\n")
|
|
print("```json")
|
|
print(m["response"])
|
|
print("```\n")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(argv[1])
|