now using campus API
This commit is contained in:
55
backend/tools/campus_rooms.py
Normal file
55
backend/tools/campus_rooms.py
Normal file
@@ -0,0 +1,55 @@
|
||||
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)
|
||||
|
||||
print(len(parsed_rooms))
|
||||
return parsed_rooms
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
rooms = get_campus_rooms()
|
||||
print(len(rooms))
|
||||
Reference in New Issue
Block a user