diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-15 16:56:39 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-15 16:56:39 -0500 |
| commit | c1d4e3c4a42abd01bc7ef83b1d6ae036ee32ef1d (patch) | |
| tree | 3e6dcc682cbf2311409e7f71d83a7d4088392068 /claude-templates/.ai/scripts/eml-view-and-extract-attachments-readme.org | |
| parent | 2b471da4bab014a2e096f63edc7aac235fc40fdd (diff) | |
| parent | 69c5e4ace81586c05dea6a9a3afd54dafa61a73b (diff) | |
| download | rulesets-c1d4e3c4a42abd01bc7ef83b1d6ae036ee32ef1d.tar.gz rulesets-c1d4e3c4a42abd01bc7ef83b1d6ae036ee32ef1d.zip | |
Merge commit '69c5e4ace81586c05dea6a9a3afd54dafa61a73b' as 'claude-templates'
Diffstat (limited to 'claude-templates/.ai/scripts/eml-view-and-extract-attachments-readme.org')
| -rw-r--r-- | claude-templates/.ai/scripts/eml-view-and-extract-attachments-readme.org | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/claude-templates/.ai/scripts/eml-view-and-extract-attachments-readme.org b/claude-templates/.ai/scripts/eml-view-and-extract-attachments-readme.org new file mode 100644 index 0000000..3a99d95 --- /dev/null +++ b/claude-templates/.ai/scripts/eml-view-and-extract-attachments-readme.org @@ -0,0 +1,47 @@ +#+TITLE: eml-view-and-extract-attachments.py + +Extract email content and attachments from EML files with auto-renaming. + +* Usage + +#+begin_src bash +# View mode — print metadata and body to stdout, extract attachments alongside EML +python3 .ai/scripts/eml-view-and-extract-attachments.py inbox/message.eml + +# Pipeline mode — extract, auto-rename, refile to output dir, clean up +python3 .ai/scripts/eml-view-and-extract-attachments.py inbox/message.eml --output-dir assets/ +#+end_src + +* Naming Convention + +Files are auto-renamed as =YYYY-MM-DD-HHMM-Sender-TYPE-Description.ext=: + +- =2026-02-05-1136-Jonathan-EMAIL-Re-Fw-4319-Danneel-Street.eml= +- =2026-02-05-1136-Jonathan-EMAIL-Re-Fw-4319-Danneel-Street.txt= +- =2026-02-05-1136-Jonathan-ATTACH-Ltr-Carrollton.pdf= + +Date and sender are parsed from email headers. Falls back to "unknown" for missing values. + +* Dependencies + +- Python 3 (stdlib only for core functionality) +- =html2text= (optional — used for HTML-only emails, falls back to tag stripping) + +* Pipeline Mode Behavior + +1. Creates a temp directory alongside the source EML +2. Copies and renames the EML, writes a =.txt= of the body, extracts attachments +3. Checks for filename collisions in the output directory +4. Moves all files to the output directory +5. Cleans up the temp directory +6. Prints a summary of created files + +Source EML is never modified or moved. + +* Tests + +#+begin_src bash +python3 -m pytest .ai/scripts/tests/ -v +#+end_src + +48 tests: unit tests for parsing, filename generation, and attachment saving; integration tests for both pipeline and stdout modes. Requires =pytest=. |
