add room resolve

This commit is contained in:
Götz 2017-09-28 02:27:54 +02:00
parent 584e24a63f
commit 6bd8d503a5
8 changed files with 2742 additions and 908 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -12,12 +12,12 @@
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/ofu_food$foodplan_parser_controler.coverage" NAME="foodplan-parser-controler Coverage Results" MODIFIED="1506277850230" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$mensa_page_parser.coverage" NAME="mensa-page-parser Coverage Results" MODIFIED="1506198388515" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$html_generator.coverage" NAME="html-generator Coverage Results" MODIFIED="1506522674615" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$html_generator.coverage" NAME="html-generator Coverage Results" MODIFIED="1506558425013" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$fekide_happyhour_page_parser.coverage" NAME="fekide-happyhour-page-parser Coverage Results" MODIFIED="1506204094485" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$eventpage_parser_controller.coverage" NAME="eventpage-parser-controller Coverage Results" MODIFIED="1506519261107" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/events" />
<SUITE FILE_PATH="coverage/ofu_food$eventpage_parser_controller.coverage" NAME="eventpage-parser-controller Coverage Results" MODIFIED="1506558155597" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/events" />
<SUITE FILE_PATH="coverage/ofu_food$cafete_page_parser.coverage" NAME="cafete-page-parser Coverage Results" MODIFIED="1506201552685" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$ofu_food.coverage" NAME="ofu-food Coverage Results" MODIFIED="1506272180490" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ofu_food$ofu_eventpage_parser.coverage" NAME="ofu-eventpage-parser Coverage Results" MODIFIED="1506519153767" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/events" />
<SUITE FILE_PATH="coverage/ofu_food$ofu_eventpage_parser.coverage" NAME="ofu-eventpage-parser Coverage Results" MODIFIED="1506558075813" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/events" />
<SUITE FILE_PATH="coverage/ofu_food$generator_food_page.coverage" NAME="generator-food-page Coverage Results" MODIFIED="1506346677743" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
@ -38,8 +38,8 @@
<file leaf-file-name="ofu-eventpage-parser.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/events/ofu-eventpage-parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="315">
<caret line="20" column="13" lean-forward="false" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
<state relative-caret-position="395">
<caret line="28" column="54" lean-forward="false" selection-start-line="28" selection-start-column="54" selection-end-line="28" selection-end-column="54" />
<folding>
<element signature="e#0#15#0" expanded="true" />
</folding>
@ -47,11 +47,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="events.jinja" pinned="false" current-in-tab="true">
<file leaf-file-name="events.jinja" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/events.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="12" column="73" lean-forward="false" selection-start-line="12" selection-start-column="73" selection-end-line="12" selection-end-column="73" />
<state relative-caret-position="300">
<caret line="24" column="63" lean-forward="false" selection-start-line="24" selection-start-column="63" selection-end-line="24" selection-end-column="63" />
<folding>
<element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
</folding>
@ -72,18 +72,18 @@
<file leaf-file-name="eventpage-parser-controller.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/events/eventpage-parser-controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="7" column="59" lean-forward="false" selection-start-line="7" selection-start-column="59" selection-end-line="7" selection-end-column="59" />
<state relative-caret-position="-145">
<caret line="2" column="74" lean-forward="false" selection-start-line="2" selection-start-column="74" selection-end-line="2" selection-end-column="74" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="html-generator.py" pinned="false" current-in-tab="false">
<file leaf-file-name="html-generator.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/html-generator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="6" column="18" lean-forward="false" selection-start-line="6" selection-start-column="18" selection-end-line="6" selection-end-column="18" />
<state relative-caret-position="360">
<caret line="18" column="2" lean-forward="false" selection-start-line="18" selection-start-column="2" selection-end-line="18" selection-end-column="2" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
@ -114,10 +114,10 @@
<option value="$PROJECT_DIR$/templates/food.jinja" />
<option value="$PROJECT_DIR$/events/fekide-eventpage-parser.py" />
<option value="$PROJECT_DIR$/food/generator-food-page.py" />
<option value="$PROJECT_DIR$/events/ofu-eventpage-parser.py" />
<option value="$PROJECT_DIR$/events/eventpage-parser-controller.py" />
<option value="$PROJECT_DIR$/html-generator.py" />
<option value="$PROJECT_DIR$/events/ofu-eventpage-parser.py" />
<option value="$PROJECT_DIR$/templates/events.jinja" />
<option value="$PROJECT_DIR$/html-generator.py" />
</list>
</option>
</component>
@ -502,14 +502,14 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="0" y="27" width="1920" height="1053" extended-state="7" />
<frame x="0" y="27" width="1920" height="1053" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26549146" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.35191256" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.35191256" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@ -544,7 +544,7 @@
<state relative-caret-position="880">
<caret line="46" column="43" lean-forward="false" selection-start-line="46" selection-start-column="34" selection-end-line="46" selection-end-column="43" />
<folding>
<element signature="e#0#15#0" expanded="true" />
<element signature="e#0#15#0" expanded="false" />
</folding>
</state>
</provider>
@ -570,7 +570,7 @@
<state relative-caret-position="300">
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding>
<element signature="e#0#13#0" expanded="true" />
<element signature="e#0#13#0" expanded="false" />
</folding>
</state>
</provider>
@ -588,7 +588,7 @@
<state relative-caret-position="880">
<caret line="46" column="43" lean-forward="false" selection-start-line="46" selection-start-column="34" selection-end-line="46" selection-end-column="43" />
<folding>
<element signature="e#0#15#0" expanded="true" />
<element signature="e#0#15#0" expanded="false" />
</folding>
</state>
</provider>
@ -614,7 +614,7 @@
<state relative-caret-position="300">
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding>
<element signature="e#0#13#0" expanded="true" />
<element signature="e#0#13#0" expanded="false" />
</folding>
</state>
</provider>
@ -632,7 +632,7 @@
<state relative-caret-position="880">
<caret line="46" column="43" lean-forward="false" selection-start-line="46" selection-start-column="34" selection-end-line="46" selection-end-column="43" />
<folding>
<element signature="e#0#15#0" expanded="true" />
<element signature="e#0#15#0" expanded="false" />
</folding>
</state>
</provider>
@ -666,7 +666,7 @@
<state relative-caret-position="300">
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding>
<element signature="e#0#13#0" expanded="true" />
<element signature="e#0#13#0" expanded="false" />
</folding>
</state>
</provider>
@ -702,7 +702,7 @@
<state relative-caret-position="240">
<caret line="14" column="44" lean-forward="false" selection-start-line="14" selection-start-column="44" selection-end-line="14" selection-end-column="44" />
<folding>
<element signature="e#0#13#0" expanded="true" />
<element signature="e#0#13#0" expanded="false" />
</folding>
</state>
</provider>
@ -738,7 +738,7 @@
<state relative-caret-position="500">
<caret line="27" column="20" lean-forward="false" selection-start-line="27" selection-start-column="20" selection-end-line="27" selection-end-column="20" />
<folding>
<element signature="e#0#13#0" expanded="true" />
<element signature="e#0#13#0" expanded="false" />
</folding>
</state>
</provider>
@ -795,7 +795,7 @@
<state relative-caret-position="940">
<caret line="59" column="6" lean-forward="false" selection-start-line="59" selection-start-column="6" selection-end-line="59" selection-end-column="6" />
<folding>
<element signature="e#0#13#0" expanded="true" />
<element signature="e#0#13#0" expanded="false" />
</folding>
</state>
</provider>
@ -813,11 +813,27 @@
<state relative-caret-position="920">
<caret line="46" column="43" lean-forward="false" selection-start-line="46" selection-start-column="34" selection-end-line="46" selection-end-column="43" />
<folding>
<element signature="e#0#15#0" expanded="true" />
<element signature="e#0#15#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/food.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="15" column="20" lean-forward="true" selection-start-line="15" selection-start-column="20" selection-end-line="15" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/events/eventpage-parser-controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-145">
<caret line="2" column="74" lean-forward="false" selection-start-line="2" selection-start-column="74" selection-end-line="2" selection-end-column="74" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/events/fekide-eventpage-parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="820">
@ -828,51 +844,35 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/events/eventpage-parser-controller.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="7" column="59" lean-forward="false" selection-start-line="7" selection-start-column="59" selection-end-line="7" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/food.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="15" column="20" lean-forward="true" selection-start-line="15" selection-start-column="20" selection-end-line="15" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/events/ofu-eventpage-parser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="315">
<caret line="20" column="13" lean-forward="false" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
<state relative-caret-position="395">
<caret line="28" column="54" lean-forward="false" selection-start-line="28" selection-start-column="54" selection-end-line="28" selection-end-column="54" />
<folding>
<element signature="e#0#15#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html-generator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="6" column="18" lean-forward="false" selection-start-line="6" selection-start-column="18" selection-end-line="6" selection-end-column="18" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/events.jinja">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="195">
<caret line="12" column="73" lean-forward="false" selection-start-line="12" selection-start-column="73" selection-end-line="12" selection-end-column="73" />
<state relative-caret-position="300">
<caret line="24" column="63" lean-forward="false" selection-start-line="24" selection-start-column="63" selection-end-line="24" selection-end-column="63" />
<folding>
<element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#div#0;n#body#0;n#html#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html-generator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="18" column="2" lean-forward="false" selection-start-line="18" selection-start-column="2" selection-end-line="18" selection-end-column="2" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View File

@ -1,13 +1,14 @@
import importlib
UNIVIS_RPG_URL = "http://univis.uni-bamberg.de/prg?search=events&show=xml"
ofu_event_parser = importlib.import_module('ofu-eventpage-parser')
# fekide_event_parser = importlib.import_module('fekide-eventpage-parser')
# JSON_OUTPUT_DIR = "../../json/"
# PI
JSON_OUTPUT_DIR = "/media/data_1/www/pub-html/events/json/"
JSON_OUTPUT_DIR = "../../json/"
UNIVIS_RPG_URL = "http://univis.uni-bamberg.de/prg?search=events&show=xml"
# PI
# JSON_OUTPUT_DIR = "/media/data_1/www/pub-html/events/json/"
def writeToFile(jsonfile, filename):

View File

@ -2,6 +2,7 @@ import requests
import datetime
import xmltodict
import json
from pprint import pprint
def loadPage(url: str):
@ -12,14 +13,32 @@ def getDay():
return datetime.datetime.today().strftime("%A, %d.%m.%Y")
def getRoom(dict: dict, id: str):
for room in dict['UnivIS']['Room']:
if room['@key'] == id:
return room
def resolveUnivisRefs(dict: dict):
for event in dict['UnivIS']['Event']:
if 'rooms' in event:
room = event['rooms']['room']
if 'UnivISRef' in room:
key = room['UnivISRef']['@key']
detailed_room = getRoom(dict, key)
event['rooms']['room'] = detailed_room
def parsePage(url: str):
# {Univis: {'Event':[{,,,,},,,,]}}
page = loadPage(url)
dict = xmltodict.parse(page)
resolveUnivisRefs(dict)
json_data = json.dumps(dict)
json_data = json.loads(json_data)
json_data['last_execute'] = getDay()
return json.dumps(json_data)
# UNIVIS_RPG_URL = "http://univis.uni-bamberg.de/prg?search=events&show=xml"
# parsePage(UNIVIS_RPG_URL)

View File

@ -2,21 +2,24 @@ import jinja2
import json
import datetime
from jinja2 import Environment, FileSystemLoader
from pprint import pprint
# Config global
CSSFILE_WEB = "../../css/bootstrap-4.0.0-beta-dist/css/bootstrap.css"
TEMPLATE_PATH = 'events.jinja'
# Config Thinkpad
# JSON_FILES_PATH = "../json/"
# OUTPUT = "../html/event.html"
# JINJA_PATH = 'templates/'
CSSFILE_WEB = "../css/bootstrap-4.0.0-beta-dist/css/bootstrap.css"
JSON_FILES_PATH = "../json/"
OUTPUT = "../html/event.html"
JINJA_PATH = 'templates/'
# PI
JSON_FILES_PATH = "/media/data_1/www/pub-html/events/json/"
OUTPUT = "/media/data_1/www/pub-html/events/index.html"
JINJA_PATH = '/media/data_1/skripts/ofu-app-webskripts/ofu-food/templates/'
# CSSFILE_WEB = "../../css/bootstrap-4.0.0-beta-dist/css/bootstrap.css"
# JSON_FILES_PATH = "/media/data_1/www/pub-html/events/json/"
# OUTPUT = "/media/data_1/www/pub-html/events/index.html"
# JINJA_PATH = '/media/data_1/skripts/ofu-app-webskripts/ofu-food/templates/'
def getJsonFromFile(path):
@ -24,23 +27,26 @@ def getJsonFromFile(path):
return json.load(file)
def getTemplate():
env = Environment(loader=FileSystemLoader(JINJA_PATH))
return env.get_template(TEMPLATE_PATH)
def writeHtml(html):
with open(OUTPUT, "w") as file:
file.write(html)
def main():
ofuEventsJson = getJsonFromFile(JSON_FILES_PATH + "events-ofu.json")
env = Environment(loader=FileSystemLoader(JINJA_PATH))
template = env.get_template(TEMPLATE_PATH)
template = getTemplate()
templateVars = {
"cssfile": CSSFILE_WEB,
"events_wrapper": ofuEventsJson,
}
# Template Vars: cssfile, executiontime, erbaCafeteTitle, erbaWeekmenu, markusCafeteTitle, markusWeekmenu, austrMensaTitle, austrWeekmenu, fekiMensaTitle, fekiWeekmenu, happyHourDay, happyhours
html = template.render(templateVars)
with open(OUTPUT, "w") as file:
file.write(html)
writeHtml(template.render(templateVars))
main()

View File

@ -6,7 +6,7 @@
<meta name="description" content="Sammelwebsite für Events universitärer- oder universitäts-naher Veranstaltungen">
<meta name="keywords" content="OFU, Otto-Friedrich, Universität, Bamberg, Events">
<link rel="stylesheet" href=" {{ cssfile }} ">
<title>Essen an der OFU</title>
<title>Events an der OFU</title>
</head>
<body>
@ -21,7 +21,9 @@
<h4>{{ event.title }}</h4>
<p>Start: {{ event.startdate }} at {{ event.starttime }}</p>
<p>End: {{ event.enddate }} at {{ event.endtime }}</p>
{# <p>Where: {{ event.rooms.room.UnivISRef['@key'] }}</p>#}
{% if event.rooms %}
<p>Where: {{ event.rooms.room.short }}</p>
{% endif %}
<p>{{ event.description }}</p>
<p>Organisator: {{ event.orgname }}</p>
</div>