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.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
web_router = APIRouter()
@ -26,3 +27,21 @@ async def obsidian_list(request: Request):
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}
)

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 %}