5545f05eee
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# enrich_files_v1.0
|
|
|
|
**Verze:** 1.0
|
|
**Datum:** 2026-06-03
|
|
**Skript:** `enrich_files_v1.0.py`
|
|
|
|
## Účel
|
|
Doplnit do existujících záznamů v MongoDB `soubory.*` pole `content.*` parsovaná z obsahu souborů.
|
|
|
|
Spouští se **až po** [scan_files_v1.0.py](scan_files_v1.0.md).
|
|
|
|
## Podporované přípony a pole
|
|
|
|
| ext | knihovna | pole v `content` |
|
|
|---|---|---|
|
|
| pdf | pypdf | pages, encrypted, author, title, subject, creator, producer, created, modified, text_head |
|
|
| docx | python-docx | author, title, subject, last_modified_by, paragraphs, words, created, modified, text_head |
|
|
| xlsx, xlsm | openpyxl | total_sheets, sheets[{name,rows,cols}], author, title, subject, last_modified_by, created, modified |
|
|
| pptx | python-pptx | slides, author, title, subject, last_modified_by, created, modified, text_head (z prvních 3 snímků) |
|
|
| eml | stdlib email | subject, from, to, cc, date, has_attachments, attachments[], body_head |
|
|
| msg | extract_msg | totéž co eml |
|
|
|
|
S[DRY](../DRY)polečná pole vždy: `ok` (bool), `parsed_at`, `parser_version`, `sha256_at_parse`. Při chybě `error` (název výjimky + zpráva).
|
|
|
|
## Inkrementální chování
|
|
Zpracují se jen dokumenty kde:
|
|
- `content` chybí, NEBO
|
|
- `content.parser_version` != aktuální verze (1.0), NEBO
|
|
- `content.sha256_at_parse` != aktuální `sha256` (soubor se změnil)
|
|
|
|
Při dalším spuštění **přidá** jen nové/změněné. Při zvýšení verze parseru přeparsuje vše.
|
|
|
|
## Limity (skip)
|
|
- PDF nad 500 MB → ok=False, error="too_big_..."
|
|
- XLSX nad 200 MB → ok=False
|
|
- ostatní nad 300 MB → ok=False
|
|
|
|
`text_head` max 2000 znaků.
|
|
|
|
## Spuštění
|
|
```
|
|
python U:\PythonProject\Janssen\Soubory\enrich_files_v1.0.py
|
|
```
|
|
|
|
## Plán
|
|
Po doběhnutí ověřit `content.ok` rate, případně doladit (chybové vzory) a teprve pak stavět `MCP_SOUBORY` server.
|