aboutsummaryrefslogtreecommitdiff
path: root/scripts/oideprint2txt
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-04-16 17:33:40 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-04-16 17:33:40 +0200
commita54cc8d372027fdbb5f7a634b2db5f42103dd8d8 (patch)
treea590d33e3359207b67ea2444cf8b2b5f72f1f2e0 /scripts/oideprint2txt
parent8c501dbe9d8a97eb0e0fee5ea96345e01d097ee6 (diff)
downloadunterricht-a54cc8d372027fdbb5f7a634b2db5f42103dd8d8.tar.gz
unterricht-a54cc8d372027fdbb5f7a634b2db5f42103dd8d8.zip
add script to convert Online-IDE PDFs into plaintext
Diffstat (limited to 'scripts/oideprint2txt')
-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])