From 3a4cd4935dafe6d445daac3b7d6ced409f99aa23 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sun, 3 Sep 2023 00:12:19 +0300 Subject: Add web server --- app/server.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app/server.py (limited to 'app/server.py') diff --git a/app/server.py b/app/server.py new file mode 100644 index 0000000..785e30f --- /dev/null +++ b/app/server.py @@ -0,0 +1,31 @@ +from typing import Any +import bottle as _bottle # type: ignore +from tinydb import Query + +from app.database import database_manager + +bottle: Any = _bottle + + +@bottle.route("/") +def index(feed_id: str): + if database_manager.db is None: + raise Exception("Database is not initialized") + + Q = Query() + res = database_manager.db.search(Q.feed_id == feed_id) + if len(res) == 0: + bottle.abort(400, f"No feed found with id {feed_id}") + + if len(res) > 1: + bottle.abort(400, f"Weird number of feeds found with id {feed_id}: {len(res)}") + + bottle.response.set_header("content-type", "application/xml") + + feed: Any = res[0] # type: ignore + feed_xml: str = feed["feed_xml"] + return feed_xml + + +def run_web_server(host: str, port: int): + bottle.run(host=host, port=port) -- cgit v1.3