Files
janssen/Python-runner/5_enrich_fulltext_emails_v1.2.md
2026-06-05 21:21:30 +02:00

48 lines
1.9 KiB
Markdown

# 5_enrich_fulltext_emails_v1.2.py
**Krok 5 pipeline** — vytáhne plný text z emailů v MongoDB (db: `emaily`) a uloží do PostgreSQL (db: `MongoEmaily`, tabulka: `emails`) s GIN `tsvector` indexem (config `soubory` — simple + unaccent).
Emaily se **nestahují znovu** — tělo už je v Mongo z kroků 1/2/4. Tento skript jen vybere první dostupné tělo podle priority a pošle text do PG na fulltext.
## Priorita zdroje těla (`body_source`)
1. **`smime`** — `smime_body_text` / `smime_body_html` (pokud unwrap proběhl)
2. **`html`** — `body_html`
3. **`text`** — `body_text` (z parse v1.4 nebo refetch v1.0)
4. **`preview`** — `body_preview` (fallback)
Názvy vnitřních S/MIME příloh (`smime_inner_attachments`) jdou do `attachments_summary` — dohledatelné přes MCP `emaily.find_attachment`.
## Inkrementalita
Pokud `(mailbox, message_id)` v PG existuje, `extractor_version` je aktuální (1.2) a `modified_at` v Mongo není novější → **skip**. Při bumpu `EXTRACTOR_VERSION` se vše přeparsuje.
## Argumenty
| Argument | Povinný | Hodnoty | Default | Popis |
|---|---|---|---|---|
| `--mailbox` | ne | e-mail | (všechny) | Jedna konkrétní schránka |
| `--limit N` | ne | int | (bez limitu) | Limit emailů na schránku (test) |
## Varianty volání
```bash
# Všechny schránky:
docker exec -it python-runner python /scripts/5_enrich_fulltext_emails_v1.2.py
# Jedna schránka:
docker exec -it python-runner python /scripts/5_enrich_fulltext_emails_v1.2.py --mailbox ordinace@buzalkova.cz
# Test 500 emailů:
docker exec -it python-runner python /scripts/5_enrich_fulltext_emails_v1.2.py --mailbox ordinace@buzalkova.cz --limit 500
# Plný běh na pozadí, log do souboru:
docker exec -d python-runner bash -c "python /scripts/5_enrich_fulltext_emails_v1.2.py > /scripts/enrich.log 2>&1"
```
## Sledování průběhu
```bash
docker exec -it python-runner tail -f /scripts/enrich.log
```