diff --git a/prophet/app.py b/prophet/app.py index 0bbcf64..0b02c17 100644 --- a/prophet/app.py +++ b/prophet/app.py @@ -4,7 +4,6 @@ from datetime import datetime import feedparser from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import HTMLResponse from fastapi_utils.tasks import repeat_every from prophet.domain.improvement import Improvement @@ -108,82 +107,6 @@ async def fetch_update(): return json.dumps(improved) -## HTML (& hyperdata) responses -@app.get("/improvements", response_class=HTMLResponse) -def list_improvements(): - improved = repo.get_all() - return ( - """ """ - + "\n".join( - f""" -
-
- -
-
{item.title}
-
{item.summary}
-
""" - for item in sorted(improved, key=lambda i: i.original.date, reverse=True) - ) - ) - - -@app.get("/originals", response_class=HTMLResponse) -def list_originals(): - improved = repo.get_all() - return ( - """ """ - + "\n".join( - f""" -
-
- -
-
{item.original.title}
-
{item.original.summary}
-
""" - for item in sorted(improved, key=lambda i: i.original.date, reverse=True) - ) - ) - - -style = """ -.card { - border: 1px solid #ccc; - padding: 10px; - margin: auto; - margin-bottom: 40px; - width: 600px; -} - -.card-title { - font-size: 24px; - margin-bottom: 5px; -} -""" - - -@app.get("/", response_class=HTMLResponse) -def root_route(): - return f""" - - - - The Pollen Prophet - - - - -

The Pollen Prophet

-

Making funny since 2025 what ought not bee.

-
- - - """ - - def start() -> None: from uvicorn import run diff --git a/prophet/view.py b/prophet/view.py new file mode 100644 index 0000000..6079d60 --- /dev/null +++ b/prophet/view.py @@ -0,0 +1,84 @@ +from fastapi.responses import HTMLResponse + +from prophet import app +from prophet.domain.improvement_repo import IImprovementRepo +from prophet.infra.improvement_pickle_repo import ImprovementPickleRepo + +repo: IImprovementRepo = ImprovementPickleRepo() + +html_app = app.app + + +@html_app.get("/improvements", response_class=HTMLResponse) +def list_improvements(): + improved = repo.get_all() + return ( + """ """ + + "\n".join( + f""" +
+
+ +
+
{item.title}
+
{item.summary}
+
""" + for item in sorted(improved, key=lambda i: i.original.date, reverse=True) + ) + ) + + +@html_app.get("/originals", response_class=HTMLResponse) +def list_originals(): + improved = repo.get_all() + return ( + """ """ + + "\n".join( + f""" +
+
+ +
+
{item.original.title}
+
{item.original.summary}
+
""" + for item in sorted(improved, key=lambda i: i.original.date, reverse=True) + ) + ) + + +style = """ +.card { + border: 1px solid #ccc; + padding: 10px; + margin: auto; + margin-bottom: 40px; + width: 600px; +} + +.card-title { + font-size: 24px; + margin-bottom: 5px; +} +""" + + +@html_app.get("/", response_class=HTMLResponse) +def root_route(): + return f""" + + + + The Pollen Prophet + + + + +

The Pollen Prophet

+

Making funny since 2025 what ought not bee.

+
+ + + """