diff --git a/config.yml b/config.yml index 3410596..c69b596 100644 --- a/config.yml +++ b/config.yml @@ -24,7 +24,8 @@ app: real_url: https://www.thsf.net pretalx: url: https://23.thsf.net - apikey: sdfsdfsdf + apiprefix: api + apikey: bb770a53b15467dfb67c03d178004aca9e4819d6 event: thsf-2023 schedule: wip diff --git a/requirements.txt b/requirements.txt index 1e40446..dfbb3d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ wheel flask gunicorn pyYAML +requests diff --git a/setup.cfg b/setup.cfg index d18e9ab..1f6a046 100644 --- a/setup.cfg +++ b/setup.cfg @@ -22,6 +22,7 @@ install_requires = flask gunicorn pyYAML + request [options.packages.find] where = src diff --git a/src/thsf/__init__.py b/src/thsf/__init__.py index fcbf56e..6b16d6c 100644 --- a/src/thsf/__init__.py +++ b/src/thsf/__init__.py @@ -3,6 +3,7 @@ import logging from logging import config import yaml from flask import Flask, render_template, redirect, request, url_for +from thsf.backend import Backend # ------------------------------------------------------------------------------ @@ -30,6 +31,9 @@ try: app.config["SECRET_KEY"] = app.local_config["app"]["secret_key"] app.config["LANGUAGES"] = app.local_config["app"]["languages"] config.dictConfig(app.local_config["log"]) + backend = Backend(url=app.local_config["pretalx"]["url"], + apiprefix=app.local_config["pretalx"]["apiprefix"], + apikey=app.local_config["pretalx"]["apikey"]) except Exception as err: logger.critical("[{}] {}".format(err.__class__, str(err))) sys.exit(1) @@ -56,6 +60,7 @@ def index(): @app.route('/planning', methods=['GET']) def planning(): + backend.get(endpoint=f"events/{app.local_config['pretalx']['event']}/schedules/{app.local_config['pretalx']['schedule']}") return "planning" @app.route('/concerts', methods=['GET']) diff --git a/src/thsf/backend/__init__.py b/src/thsf/backend/__init__.py new file mode 100644 index 0000000..86a51c9 --- /dev/null +++ b/src/thsf/backend/__init__.py @@ -0,0 +1,15 @@ +import requests + + +class Backend(url, apiprefix, apikey): + def __init__(self, url, apiprefix, apikey): + self.url = url + self.apiprefix = apiprefix + self.apikey = apikey + self.session = requests.Session() + + def get(self, endpoint, params=None): + url = f"{self.url}/{self.apiprefix}/{endpoint}" + headers = {f"Authorization: Token {self.apikey}"} + return self.session.get(url, **{"params": params, "headers": headers}) + diff --git a/src/thsf/templates/base.html b/src/thsf/templates/base.html index c84b5b6..4898cfd 100644 --- a/src/thsf/templates/base.html +++ b/src/thsf/templates/base.html @@ -23,7 +23,8 @@