Update app.py
Browse files
app.py
CHANGED
@@ -268,7 +268,7 @@ def cleanup_old_sessions(base_path, max_age_days=1):
|
|
268 |
|
269 |
# 3. Zapis odpowiedzi do pliku .docx
|
270 |
|
271 |
-
def zapisz_odpowiedz(odpowiedz, pytanie, sources,
|
272 |
if not odpowiedz or odpowiedz.strip() == "" or not pytanie.strip():
|
273 |
print("Błąd: Odpowiedź lub pytanie są puste!")
|
274 |
return None
|
@@ -298,24 +298,14 @@ def zapisz_odpowiedz(odpowiedz, pytanie, sources, cytaty, user_path):
|
|
298 |
paragraph.paragraph_format.space_before = Pt(0)
|
299 |
paragraph.paragraph_format.space_after = Pt(5)
|
300 |
|
301 |
-
# Pytanie
|
302 |
-
p1 = doc.add_paragraph()
|
303 |
-
formatuj_naglowek(p1, "Pytanie:")
|
304 |
-
p1 = doc.add_paragraph(pytanie)
|
305 |
-
formatuj_paragraf(p1)
|
306 |
-
|
307 |
-
doc.add_paragraph(" ")
|
308 |
-
|
309 |
-
# Odpowiedź
|
310 |
-
p2 = doc.add_paragraph()
|
311 |
-
formatuj_naglowek(p2, "Odpowiedź:")
|
312 |
-
|
313 |
def dodaj_markdown_tekst(doc, text):
|
314 |
lines = text.splitlines()
|
315 |
for line in lines:
|
|
|
316 |
if line.strip().startswith(("- ", "* ")):
|
317 |
para = doc.add_paragraph(style='List Bullet')
|
318 |
content = line.strip()[2:]
|
|
|
319 |
elif line.strip().startswith("> "):
|
320 |
para = doc.add_paragraph()
|
321 |
para.paragraph_format.left_indent = Pt(20)
|
@@ -324,6 +314,7 @@ def zapisz_odpowiedz(odpowiedz, pytanie, sources, cytaty, user_path):
|
|
324 |
para = doc.add_paragraph()
|
325 |
content = line
|
326 |
|
|
|
327 |
pattern = r"(\*\*.*?\*\*|\*.*?\*|~~.*?~~|[^*~]+)"
|
328 |
parts = re.findall(pattern, content)
|
329 |
|
@@ -341,25 +332,24 @@ def zapisz_odpowiedz(odpowiedz, pytanie, sources, cytaty, user_path):
|
|
341 |
run.font.name = "Calibri"
|
342 |
run.font.size = Pt(12)
|
343 |
|
344 |
-
|
|
|
|
|
|
|
345 |
|
346 |
doc.add_paragraph(" ")
|
347 |
|
348 |
-
|
|
|
|
|
|
|
|
|
|
|
349 |
if sources and sources.strip():
|
350 |
p3 = doc.add_paragraph()
|
351 |
formatuj_naglowek(p3, "Źródła:")
|
352 |
-
|
353 |
-
|
354 |
-
formatuj_paragraf(para)
|
355 |
-
|
356 |
-
# Cytaty – tylko jeśli przekazane
|
357 |
-
if cytaty and cytaty.strip():
|
358 |
-
p4 = doc.add_paragraph()
|
359 |
-
formatuj_naglowek(p4, "Cytaty:")
|
360 |
-
for line in cytaty.strip().splitlines():
|
361 |
-
para = doc.add_paragraph(line)
|
362 |
-
formatuj_paragraf(para)
|
363 |
|
364 |
doc.save(file_path)
|
365 |
print(f"Plik zapisany: {file_path}")
|
@@ -503,7 +493,7 @@ with gr.Blocks(css="""
|
|
503 |
outputs=historia_formularza
|
504 |
).then(
|
505 |
zapisz_odpowiedz,
|
506 |
-
inputs=[output_answer, input_text_form,
|
507 |
outputs=None
|
508 |
).then(
|
509 |
lista_plikow,
|
@@ -523,7 +513,7 @@ with gr.Blocks(css="""
|
|
523 |
outputs=output_answer
|
524 |
).then(
|
525 |
zapisz_odpowiedz,
|
526 |
-
inputs=[output_answer, input_text_form,
|
527 |
outputs=None
|
528 |
).then(
|
529 |
lista_plikow,
|
|
|
268 |
|
269 |
# 3. Zapis odpowiedzi do pliku .docx
|
270 |
|
271 |
+
def zapisz_odpowiedz(odpowiedz, pytanie, sources, user_path):
|
272 |
if not odpowiedz or odpowiedz.strip() == "" or not pytanie.strip():
|
273 |
print("Błąd: Odpowiedź lub pytanie są puste!")
|
274 |
return None
|
|
|
298 |
paragraph.paragraph_format.space_before = Pt(0)
|
299 |
paragraph.paragraph_format.space_after = Pt(5)
|
300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
301 |
def dodaj_markdown_tekst(doc, text):
|
302 |
lines = text.splitlines()
|
303 |
for line in lines:
|
304 |
+
# Lista wypunktowana
|
305 |
if line.strip().startswith(("- ", "* ")):
|
306 |
para = doc.add_paragraph(style='List Bullet')
|
307 |
content = line.strip()[2:]
|
308 |
+
# Cytat
|
309 |
elif line.strip().startswith("> "):
|
310 |
para = doc.add_paragraph()
|
311 |
para.paragraph_format.left_indent = Pt(20)
|
|
|
314 |
para = doc.add_paragraph()
|
315 |
content = line
|
316 |
|
317 |
+
# Markdown inline: **bold**, *italic*, ~~strikethrough~~
|
318 |
pattern = r"(\*\*.*?\*\*|\*.*?\*|~~.*?~~|[^*~]+)"
|
319 |
parts = re.findall(pattern, content)
|
320 |
|
|
|
332 |
run.font.name = "Calibri"
|
333 |
run.font.size = Pt(12)
|
334 |
|
335 |
+
p1 = doc.add_paragraph()
|
336 |
+
formatuj_naglowek(p1, "Pytanie:")
|
337 |
+
p1 = doc.add_paragraph(pytanie)
|
338 |
+
formatuj_paragraf(p1)
|
339 |
|
340 |
doc.add_paragraph(" ")
|
341 |
|
342 |
+
p2 = doc.add_paragraph()
|
343 |
+
formatuj_naglowek(p2, "Odpowiedź:")
|
344 |
+
dodaj_markdown_tekst(doc, odpowiedz)
|
345 |
+
|
346 |
+
doc.add_paragraph(" ")
|
347 |
+
|
348 |
if sources and sources.strip():
|
349 |
p3 = doc.add_paragraph()
|
350 |
formatuj_naglowek(p3, "Źródła:")
|
351 |
+
p3 = doc.add_paragraph(re.sub(r":.*", "", sources))
|
352 |
+
formatuj_paragraf(p3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
|
354 |
doc.save(file_path)
|
355 |
print(f"Plik zapisany: {file_path}")
|
|
|
493 |
outputs=historia_formularza
|
494 |
).then(
|
495 |
zapisz_odpowiedz,
|
496 |
+
inputs=[output_answer, input_text_form, gr.State(""), session_dir], # <– puste cytaty!
|
497 |
outputs=None
|
498 |
).then(
|
499 |
lista_plikow,
|
|
|
513 |
outputs=output_answer
|
514 |
).then(
|
515 |
zapisz_odpowiedz,
|
516 |
+
inputs=[output_answer, input_text_form, output_cytaty, session_dir],
|
517 |
outputs=None
|
518 |
).then(
|
519 |
lista_plikow,
|