Name Trade Republic uploads by statement period

Trade Republic statements all download as document-N.pdf, which says
nothing about what they hold. traderepublic now implements parser.Namer:
it reads the period from the address block at the top of the first page
("DATE 01 May 2025 - 31 Jul 2026") and names the statement
traderepublic_2025_05_01_2026_07_31, lowercase like the NLB names, so the
folder sorts by start date and two downloads of one statement meet under
one name. The transaction table's own DATE heading never matches, since
no date range follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 22:26:15 +02:00
co-authored by Claude Opus 5.5
parent a5f7541980
commit bd406a110d
4 changed files with 72 additions and 18 deletions
+11 -9
View File
@@ -216,14 +216,16 @@ already exist with an `account.toml`: an upload adds statements to an account,
it does not create one.
Some banks name their downloads unhelpfully, so a parser may name the statement
instead. An NLB izpisek is saved as `izpisek_YYYY_MM_DD.pdf` after the *Datum
izpiska* in its header — lowercase throughout, extension included — so the
folder sorts by date and the status line says what each file became. Downloading
the same statement twice then lands on the same name and is recognised as
already there; a different statement with the same date (a reissue) is numbered
`_2`, `_3` rather than refused. A statement with no date it can find keeps its
own name. Only uploads are named — files already in a folder are never renamed,
since the index records them by path.
instead — lowercase throughout, extension included — and the status line says
what each file became. An NLB izpisek is saved as `izpisek_YYYY_MM_DD.pdf` after
the *Datum izpiska* in its header, and a Trade Republic statement, which
downloads as `document-N.pdf`, as `traderepublic_YYYY_MM_DD_YYYY_MM_DD.pdf`
after the period on its first page (`DATE 01 May 2025 - 31 Jul 2026`). Either
way the folder sorts by date. Downloading the same statement twice then lands on
the same name and is recognised as already there; a different statement with the
same name (a reissue) is numbered `_2`, `_3` rather than refused. A statement
with no date it can find keeps its own name. Only uploads are named — files
already in a folder are never renamed, since the index records them by path.
### Keys
@@ -678,7 +680,7 @@ nothing else to configure — `parser` names one of these and that is all.
| `parser` | Statement | Notes |
| --- | --- | --- |
| `nlb` | NLB izpisek PDF | Wrapped descriptions are folded in from continuation lines, and the IBAN column is appended to the description. Uploads are saved as `izpisek_YYYY_MM_DD.pdf` after the statement date. |
| `traderepublic` | Trade Republic PDF | Handles both the single-line and the stacked layout by measuring column positions. |
| `traderepublic` | Trade Republic PDF | Handles both the single-line and the stacked layout by measuring column positions. Uploads are saved as `traderepublic_YYYY_MM_DD_YYYY_MM_DD.pdf` after the statement period. |
| `revolut` | `account-statement*.csv` | Skips non-COMPLETED rows, folds the fee into the amount. |
```toml