diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/oideprint2txt | 39 |
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]) |
