From cec0137494af8da4aaec11b6b92961a823ce5edb Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Fri, 3 Jul 2020 15:19:10 +0200 Subject: Add sequence diagram parser --- seq-ateurs.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 seq-ateurs.py diff --git a/seq-ateurs.py b/seq-ateurs.py new file mode 100644 index 0000000..c5ff9b6 --- /dev/null +++ b/seq-ateurs.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +import plantuml +import sys +import time +import os + +f = open(sys.argv[1], 'r').readlines() +p = plantuml.PlantUML(url="http://www.plantuml.com/plantuml/svg/") + + +def generate_svg(name, text): + print(f"generating: {text}") + try: + res = p.processes(plantuml_text=(text)) + except Exception: + print(p.get_url(plantuml_text=(text))) + return + + svg = 'seq/' + name + '.svg' + pdf = 'seq/' + name + '.pdf' + open(svg, 'wb').write(res) + os.system(f"inkscape {svg} -o {pdf}") + time.sleep(1) + + +def parse_sequence(offset): + print(f"offset: {offset}") + while not "```plantuml" == f[offset].strip(): + offset += 1 + begin = offset + while not "```" == f[offset].strip(): + offset += 1 + lines = f[begin + 1:(offset - 1)] + name = f[begin + 1][1:-1] + print(f"name: {name}") + generate_svg(name, ''.join(lines)) + return offset + + +offset = 0 +while offset < len(f): + offset = parse_sequence(offset) -- cgit v1.2.3