From a54cc8d372027fdbb5f7a634b2db5f42103dd8d8 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 16 Apr 2026 17:33:40 +0200 Subject: add script to convert Online-IDE PDFs into plaintext --- scripts/oideprint2txt | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 scripts/oideprint2txt 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]) -- cgit v1.2.3