summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2020-07-03 15:19:10 +0200
committerDennis Kobert <dennis@kobert.dev>2020-07-03 15:19:10 +0200
commitcec0137494af8da4aaec11b6b92961a823ce5edb (patch)
treebede0b05aaec3e3350cfd0029a739a11ae00ba08
parent63fb9e6c50f3b1e4c3b052d5951f4b73cc254be6 (diff)
Add sequence diagram parser
-rw-r--r--seq-ateurs.py42
1 files changed, 42 insertions, 0 deletions
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)