From cde1e54d002d038e35c04dbd74546e38e6175aa7 Mon Sep 17 00:00:00 2001 From: berkio_admin_gitea Date: Tue, 7 Jul 2026 12:55:37 +0000 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B0:=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BB=D0=BE=D0=BD=D0=BA=D0=B0=20=C2=AB=D0=A1=D1=88?= =?UTF-8?q?=D0=B8=D0=B2=D0=BA=D0=B0=C2=BB=20=D0=B2=20=D1=82=D0=B0=D0=B1?= =?UTF-8?q?=D0=BB=D0=B8=D1=86=D0=B5=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=B2=20(+=20=D0=B2=20CSV)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- app/main.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/main.py b/app/main.py index 6d94b2d..335e041 100644 --- a/app/main.py +++ b/app/main.py @@ -2735,7 +2735,7 @@ _ADMIN_HTML = """

Обработанные документы

-
+
ДатаФайлСтр.ИсходникРезультатКач-воOCRИсточник
ДатаФайлСтр.ИсходникРезультатКач-воСшивкаOCRИсточник
@@ -2816,8 +2816,8 @@ _ADMIN_HTML = """ var dd = (f.date||'') + (f.time ? ' '+String(f.time).slice(0,5) : ''); return ''+esc(dd)+''+esc(f.name)+''+(f.pages||'—')+ ''+size(f.source_size_mb)+''+size(f.result_size_mb)+ - ''+esc(f.quality||'—')+''+(f.ocr?'✓':'')+''+srcPill+''; - }).join('') : 'Пока нет документов'; + ''+esc(f.quality||'—')+''+esc(f.stitching||'—')+''+(f.ocr?'✓':'')+''+srcPill+''; + }).join('') : 'Пока нет документов'; } function showGate(err){ @@ -2934,7 +2934,7 @@ def _admin_collect_stats() -> dict: pages_expr = "COALESCE(NULLIF(pages_total,0), num_pages, 0)" if "pages_total" in cols else "COALESCE(num_pages,0)" docs = [dict(r) for r in con.execute( f"SELECT date, time, COALESCE(NULLIF(original_name,''), name_or_f) AS name, {pages_expr} AS pages, " - "source_size_mb, result_size_mb, quality, ocr, user_id, url_res_f " + "source_size_mb, result_size_mb, quality, stitching, ocr, user_id, url_res_f " "FROM FILES ORDER BY rowid DESC LIMIT 150")] agg = con.execute( f"SELECT COUNT(*) c, COALESCE(SUM({pages_expr}),0) p, " @@ -2956,7 +2956,7 @@ def _build_docs_csv() -> bytes: buf = io.StringIO() w = csv.writer(buf, delimiter=";") w.writerow(["Дата", "Время", "Файл", "Страниц", "Исходник, МБ", - "Результат, МБ", "Качество", "OCR", "Источник", "Статус"]) + "Результат, МБ", "Качество", "Сшивка", "OCR", "Источник", "Статус"]) def _mb(v): return ("%.2f" % v) if v else "" with sqlite3.connect(DB_PATH, timeout=30) as con: @@ -2965,11 +2965,11 @@ def _build_docs_csv() -> bytes: pages_expr = "COALESCE(NULLIF(pages_total,0), num_pages, 0)" if "pages_total" in cols else "COALESCE(num_pages,0)" for r in con.execute( f"SELECT date, time, COALESCE(NULLIF(original_name,''), name_or_f) AS name, {pages_expr} AS pages, " - "source_size_mb, result_size_mb, quality, ocr, user_id, url_res_f FROM FILES ORDER BY rowid DESC"): + "source_size_mb, result_size_mb, quality, stitching, ocr, user_id, url_res_f FROM FILES ORDER BY rowid DESC"): src = "сайт" if (r["user_id"] == WEB_USER_ID) else "бот" w.writerow([r["date"] or "", (r["time"] or "")[:8], r["name"] or "", r["pages"] or "", _mb(r["source_size_mb"]), _mb(r["result_size_mb"]), r["quality"] or "", - "да" if r["ocr"] else "", src, r["url_res_f"] or ""]) + r["stitching"] or "", "да" if r["ocr"] else "", src, r["url_res_f"] or ""]) return ("" + buf.getvalue()).encode("utf-8") # BOM → кириллица в Excel