Files
lrc-backend/backend/tools/campus_rooms.py
2020-08-13 09:00:54 +02:00

54 lines
2.0 KiB
Python

import re
from campus_api_client.campus_management_api_client import CampusManagementApiClient
from backend import Config
def get_campus_rooms():
cac = CampusManagementApiClient(user=Config.CAMPUS_MANAGEMENT_USER, pw=Config.CAMPUS_MANAGEMENT_PW)
parsed_rooms = []
count = 0
re_string = r"^(\d\d.\d\d)?\s(.*)"
re_exp = re.compile(re_string)
for r in cac.get_rooms():
name = r.get('name')
# print(f"## {r.get('name')}: {r.get('roomNo')}")
building_number = r.get('buildingNo', None)
building_name = r.get('building')
if building_number is None or building_number == '':
count += 1
# print(r)
match = re_exp.match(building_name)
if match is not None:
building_number, building_name = match.groups()
else:
try:
building_name = building_name.split(building_number)[1].strip()
building_name = None if building_name == "" else building_name
except IndexError: # ignore index error
pass
# print(f"Building No {r.get('buildingNo')}: {r.get('building')}")
# print(building_name)
# print(building_number)
if building_number is not None and building_number != "" and name.startswith(building_number):
name = name.split(building_number, 1)[1].strip()
elif building_number is not None and name.startswith(f"Geb. {building_number}"):
name = name.split(f"Geb. {building_number}", 1)[1].strip()
room = {'name': name,
'alternate_name': r.get('internalName'),
'external_id': r.get('guid'),
'room_number': r.get('roomNo'),
'building_name': building_name,
'building_number': building_number,
'coordinates': r.get('coordinates')}
parsed_rooms.append(room)
return parsed_rooms
if __name__ == "__main__":
rooms = get_campus_rooms()
print(len(rooms))