From 11d1398badb83ad33167470e6d87524891678f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 29 Jun 2026 17:19:24 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20=5Fscan=5Fregex=20for=20docx,=20PERSON?= =?UTF-8?q?=20cyrillic-only,=20101=20entities=20found=20=E2=80=94=20v0.9/v?= =?UTF-8?q?1.0.192?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/services/drhider.py | 12 +++++------- site/services/drhider.py | 12 +++++------- site/templates/drhider.html | 2 +- site/templates/index.html | 2 +- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/deploy/services/drhider.py b/deploy/services/drhider.py index c466d1b..0a38bfc 100644 --- a/deploy/services/drhider.py +++ b/deploy/services/drhider.py @@ -6,7 +6,7 @@ DrHider — обфускация документов (двухпроходна Согласованность: одна и та же сущность во всех файлах → одно и то же фиктивное значение. """ -DRHIDER_VERSION = "0.8" +DRHIDER_VERSION = "0.9" import io import csv import re @@ -44,10 +44,10 @@ COMPANY_PATTERN = re.compile( re.IGNORECASE ) -# ФИО — Фамилия + инициалы +# ФИО — Фамилия + инициалы или полное имя (только кириллица) PERSON_PATTERN = re.compile( - r'\b[А-ЯA-Z][а-яa-z]+\s+[А-ЯA-Z]\.[А-ЯA-Z]\.', - re.IGNORECASE + r'\b[А-Я][а-я]+\s+[А-Я]\.[А-Я]\.' + r'|\b[А-Я][а-я]+\s+[А-Я][а-я]+\s+[А-Я][а-я]+' ) # ═══════════════════════════════════════════ @@ -214,9 +214,7 @@ class TwoPassObfuscator: all_texts[fname] = text if doc is not None: all_docx[fname] = doc - elif text == "[DOC binary — not parsed]": - pass # .doc без изменений - else: + if text and text != "[DOC binary — not parsed]": self._scan_regex(text) if self._llm_client: diff --git a/site/services/drhider.py b/site/services/drhider.py index c466d1b..0a38bfc 100644 --- a/site/services/drhider.py +++ b/site/services/drhider.py @@ -6,7 +6,7 @@ DrHider — обфускация документов (двухпроходна Согласованность: одна и та же сущность во всех файлах → одно и то же фиктивное значение. """ -DRHIDER_VERSION = "0.8" +DRHIDER_VERSION = "0.9" import io import csv import re @@ -44,10 +44,10 @@ COMPANY_PATTERN = re.compile( re.IGNORECASE ) -# ФИО — Фамилия + инициалы +# ФИО — Фамилия + инициалы или полное имя (только кириллица) PERSON_PATTERN = re.compile( - r'\b[А-ЯA-Z][а-яa-z]+\s+[А-ЯA-Z]\.[А-ЯA-Z]\.', - re.IGNORECASE + r'\b[А-Я][а-я]+\s+[А-Я]\.[А-Я]\.' + r'|\b[А-Я][а-я]+\s+[А-Я][а-я]+\s+[А-Я][а-я]+' ) # ═══════════════════════════════════════════ @@ -214,9 +214,7 @@ class TwoPassObfuscator: all_texts[fname] = text if doc is not None: all_docx[fname] = doc - elif text == "[DOC binary — not parsed]": - pass # .doc без изменений - else: + if text and text != "[DOC binary — not parsed]": self._scan_regex(text) if self._llm_client: diff --git a/site/templates/drhider.html b/site/templates/drhider.html index 04f05ba..41d9e47 100644 --- a/site/templates/drhider.html +++ b/site/templates/drhider.html @@ -64,7 +64,7 @@ Сверка договоров | DrHider - v0.8 + v0.9
diff --git a/site/templates/index.html b/site/templates/index.html index 9e98efe..d01268a 100644 --- a/site/templates/index.html +++ b/site/templates/index.html @@ -73,7 +73,7 @@
Nubes - Сверка договоров — LLM AI-driven Event Sourcing v1.0.191-flask + Сверка договоров — LLM AI-driven Event Sourcing v1.0.192-flask
○ Загрузка ○ Классификация