|
|
|
@ -101,16 +101,19 @@ def decorate_app(app: FastAPI) -> FastAPI:
|
|
|
|
|
@app.get("/{sub_key:path}", response_class=HTMLResponse, name="base-route")
|
|
|
|
|
@app.get("/{sub_key:path}/", response_class=HTMLResponse, name="base-route")
|
|
|
|
|
async def public_router(request: Request, sub_key: str):
|
|
|
|
|
key = None
|
|
|
|
|
|
|
|
|
|
if request.headers.get('host',"").startswith('localhost'):
|
|
|
|
|
key = ArcologyKey(key=sub_key)
|
|
|
|
|
return await render_page_from_key(request, key.key, engine, key.site)
|
|
|
|
|
else:
|
|
|
|
|
with Session(engine) as session:
|
|
|
|
|
key = ArcologyKey.from_request(request)
|
|
|
|
|
kw = Keyword.get("ARCOLOGY_FEED", key.key, session)
|
|
|
|
|
if kw is not None:
|
|
|
|
|
return await render_feed_from_file(request, kw.filename(), engine, key.site)
|
|
|
|
|
return await render_page_from_key(request, key.key, engine, key.site)
|
|
|
|
|
key = ArcologyKey.from_request(request)
|
|
|
|
|
|
|
|
|
|
with Session(engine) as session:
|
|
|
|
|
kw = Keyword.get("ARCOLOGY_FEED", key.key, session)
|
|
|
|
|
if kw is not None:
|
|
|
|
|
return await render_feed_from_file(request, kw.filename(), engine, key.site)
|
|
|
|
|
|
|
|
|
|
return await render_page_from_key(request, key.key, engine, key.site)
|
|
|
|
|
|
|
|
|
|
return app
|
|
|
|
|
#+end_src
|
|
|
|
|