93 lines
2.9 KiB
Python
Executable file
93 lines
2.9 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import pprint
|
|
import json
|
|
import re
|
|
|
|
finger = "/afs/stacken.kth.se/home/stacken/Private/finger.txt"
|
|
|
|
i=0
|
|
people=[]
|
|
for line in open(finger, 'rb'):
|
|
if i > 0:
|
|
|
|
jsn = {}
|
|
|
|
dl = str(line, 'iso-8859-1').strip()
|
|
spl = dict(enumerate(dl.split(';')))
|
|
|
|
if spl.get(0, None):
|
|
jsn["efternamn"] = spl.get(0,"")
|
|
if spl.get(1, None):
|
|
jsn["förnamn"] = spl.get(1,"")
|
|
if spl.get(2, None):
|
|
jsn["sortering"] = spl.get(2,"")
|
|
if spl.get(3, None):
|
|
jsn["titel"] = spl.get(3,"")
|
|
if spl.get(4, None):
|
|
jsn["c/o"] = spl.get(4,"")
|
|
if spl.get(5, None):
|
|
jsn["avdelning"] = spl.get(5,"")
|
|
if spl.get(6, None):
|
|
jsn["organisation"] = spl.get(6,"")
|
|
if spl.get(7, None):
|
|
jsn["gatuadress"] = spl.get(7,"")
|
|
if spl.get(8, None):
|
|
jsn["postadress"] = spl.get(8,"")
|
|
if spl.get(9, None):
|
|
jsn["land"] = spl.get(9,"")
|
|
if spl.get(10, None):
|
|
jsn["distrubution"] = spl.get(10,"")
|
|
if spl.get(11, None):
|
|
jsn["hemtelefon"] = spl.get(11,"")
|
|
if spl.get(12, None):
|
|
jsn["arbtelefon"] = spl.get(12,"")
|
|
if spl.get(13, None):
|
|
jsn["ppn"] = spl.get(13,"")
|
|
if spl.get(14, None):
|
|
jsn["användarnamn"] = spl.get(14,"")
|
|
if spl.get(15, None):
|
|
jsn["mailadress"] = spl.get(15,"")
|
|
|
|
if spl.get(16, None):
|
|
jsn["betalt"] = int(spl.get(16,0))
|
|
|
|
if spl.get(17, None):
|
|
jsn["inträdesdatum"] = spl.get(17,"")
|
|
if spl.get(18, None):
|
|
jsn["utträdesdatum"] = spl.get(18,"")
|
|
|
|
if spl.get(19, None):
|
|
rest = []
|
|
for status in spl[19].split(","):
|
|
ss = status.strip()
|
|
if ss == "Epost-kallelse":
|
|
jsn['Epost-kallelse'] = True
|
|
elif ss == "Ny":
|
|
jsn['Ny'] = True
|
|
elif ss == "Hallnyckel":
|
|
jsn['Hallnyckel'] = True
|
|
elif ss == "Hedersmedlem":
|
|
jsn['Hedersmedlem'] = True
|
|
elif ss == "Fel adress":
|
|
jsn['Fel_adress'] = True
|
|
elif ss == "Slutat":
|
|
jsn['Slutat'] = True
|
|
elif ss == "Utesluten":
|
|
jsn['Utesluten'] = True
|
|
else:
|
|
rest.append(ss)
|
|
|
|
if rest:
|
|
jsn["status"] = ",".join(rest)
|
|
|
|
if spl.get(20, None):
|
|
if re.match('^[0-9]+$', spl[20]):
|
|
jsn["kortnr"] = int(spl[20])
|
|
else:
|
|
jsn["kortstatus"] = spl[20]
|
|
|
|
people.append(jsn)
|
|
i+=1
|
|
|
|
print(json.dumps(people,indent=4, sort_keys=True, ensure_ascii=False))
|