64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
import json
|
|
from pprint import pprint
|
|
from django.db.utils import IntegrityError
|
|
|
|
from apps.donar.models import Room
|
|
from apps.donar.utils.parser import univis_rooms_parser
|
|
|
|
# CONFIG
|
|
UNIVIS_RPG_GuK = "http://univis.uni-bamberg.de/prg?search=rooms&department=Fakult%E4t%20Geistes-%20und%20Kulturwissenschaften&show=xml"
|
|
UNIVIS_RPG_SoWi = "http://univis.uni-bamberg.de/prg?search=rooms&department=Fakult%E4t%20Sozial-%20und%20Wirtschaftswissenschaften&show=xml"
|
|
UNIVIS_RPG_HuWi = "http://univis.uni-bamberg.de/prg?search=rooms&department=Fakult%E4t%20Humanwissenschaften&show=xml"
|
|
UNIVIS_RPG_WIAI = "http://univis.uni-bamberg.de/prg?search=rooms&department=Fakult%E4t%20Wirtschaftsinformatik&show=xml"
|
|
|
|
|
|
def getJsonFromFile(path):
|
|
with open(path, "r") as file:
|
|
return json.load(file)
|
|
|
|
|
|
def writeFekideDataInDB(data):
|
|
|
|
for room in data:
|
|
try:
|
|
key = ""
|
|
address = ""
|
|
building_key = ""
|
|
floor = ""
|
|
name = ""
|
|
orgname = ""
|
|
short = ""
|
|
if '@key' in room:
|
|
key = room['@key']
|
|
|
|
if 'address' in room:
|
|
address = room['address']
|
|
|
|
if 'buildingkey' in room:
|
|
building_key = room['buildingkey']
|
|
if 'floor' in room:
|
|
floor = room['floor']
|
|
if 'name' in room:
|
|
name = room['name']
|
|
if 'short' in room:
|
|
short = room['short']
|
|
|
|
Room.objects.create(key=key, address=address, building_key=building_key, floor=floor, name=name,
|
|
orgname=orgname, short=short)
|
|
except IntegrityError:
|
|
# ignored
|
|
break
|
|
|
|
|
|
def main():
|
|
# get food jsons
|
|
writeFekideDataInDB(univis_rooms_parser.parsePage(UNIVIS_RPG_GuK))
|
|
writeFekideDataInDB(univis_rooms_parser.parsePage(UNIVIS_RPG_SoWi))
|
|
writeFekideDataInDB(univis_rooms_parser.parsePage(UNIVIS_RPG_HuWi))
|
|
writeFekideDataInDB(univis_rooms_parser.parsePage(UNIVIS_RPG_WIAI))
|
|
pprint("Room: " + str(Room.objects.count()))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|