Add form for parsing training

This commit is contained in:
t0xa 2025-09-05 20:42:36 +03:00
parent d2cfa5ae17
commit b416b23b99
2 changed files with 44 additions and 2 deletions

View file

@ -1,8 +1,9 @@
from fastapi import APIRouter, Request import logging
from fastapi import APIRouter, Request, Form
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from app.core.parsers.obsidian import parse_training_data from app.core.parsers.obsidian import ObsidianNotesParser, parse_training_data
from app.core.templates.templates import BaseTemplateResponse from app.core.templates.templates import BaseTemplateResponse
web_router = APIRouter() web_router = APIRouter()
@ -26,3 +27,21 @@ async def obsidian_list(request: Request):
return template_renderer.render( return template_renderer.render(
request=request, template_name="trainings.html", context={"trainings": data} 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}
)

View file

@ -0,0 +1,23 @@
{% extends "base.html" %}
{% block content %}
<h1>Parse training data</h1>
<form method="post" action="/app/obsidian/parse">
<div class="form-group">
<label for="training_data">Place your training here</label>
<textarea
class="form-control"
id="training_data"
name="training_data"
rows="10"
required
></textarea>
</div>
<button type="submit" class="btn btn-primary">Parse Training</button>
</form>
{% if result %}
<div class="mt-3">
<h3>Result:</h3>
<pre>{{ result }}</pre>
</div>
{% endif %}
{% endblock %}