aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/oideprint2txt39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/oideprint2txt b/scripts/oideprint2txt
new file mode 100755
index 00000000..7f7f6d2f
--- /dev/null
+++ b/scripts/oideprint2txt
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+import argparse
+import json
+import sys
+import csv
+import subprocess
+
+parser = argparse.ArgumentParser()
+parser.add_argument('input')
+parser.add_argument('-t', default='json', choices=['csv', 'json'])
+
+args = parser.parse_args()
+
+data = subprocess.check_output(['pdftotext', args.input, '-'], text=True).splitlines()
+
+users = []
+
+user = {}
+i = 0
+while i < len(data):
+ if not data[i].startswith('URL'):
+ i = i + 1
+ continue
+
+ user = {
+ 'Name': (data[i+1].split(': ')[1]).strip(),
+ 'Klasse': (data[i+2].split(': ')[1]).strip(),
+ 'Benutzername': (data[i+3].split(': ')[1]).strip(),
+ 'Passwort': (data[i+4].split(': ')[1]).strip(),
+ }
+ users.append(user)
+ i = i + 5
+
+if args.t == 'json':
+ json.dump(users, sys.stdout)
+elif args.t == 'csv':
+ w = csv.writer(sys.stdout)
+ w.writerows([user.values() for user in users])