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.
+
+
+
+ """