47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
import logging
|
|
from fastapi import APIRouter, Request, Form
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from app.core.parsers.obsidian import ObsidianNotesParser, parse_training_data
|
|
from app.core.templates.templates import BaseTemplateResponse
|
|
|
|
web_router = APIRouter()
|
|
templates = Jinja2Templates(directory="app/templates")
|
|
template_renderer = BaseTemplateResponse(templates)
|
|
|
|
|
|
@web_router.get("/", response_class=HTMLResponse)
|
|
async def home(request: Request):
|
|
"""Home page"""
|
|
|
|
return template_renderer.render(
|
|
request,
|
|
"index.html",
|
|
)
|
|
|
|
|
|
@web_router.get("/obsidian/list/", response_class=HTMLResponse)
|
|
async def obsidian_list(request: Request):
|
|
data = parse_training_data()
|
|
return template_renderer.render(
|
|
request=request, template_name="trainings.html", context={"trainings": data}
|
|
)
|
|
|
|
|
|
@web_router.get("/obsidian/parse", response_class=HTMLResponse)
|
|
async def obsidian_parse_form(request: Request):
|
|
return template_renderer.render(
|
|
request=request, template_name="obsidian/parser.html", context={"trainings": {}}
|
|
)
|
|
|
|
|
|
@web_router.post("/obsidian/parse", response_class=HTMLResponse)
|
|
async def obsidian_parse(request: Request, training_data: str = Form(...)):
|
|
logging.error(training_data)
|
|
op = ObsidianNotesParser()
|
|
result = op.parse(data=training_data)
|
|
logging.error(result)
|
|
return template_renderer.render(
|
|
request=request, template_name="trainings.html", context={"trainings": result}
|
|
)
|