Ben_Kosytorz
137efa7e6c
feat(rust): port discord, gofile, zero807, extract_all and catalogue
...
Parallel module ports (behavior parity with the python versions):
- src/discord.rs: DCE docker export (token via env only), base64/plain URL
extraction with grab.sh-compatible regexes, host classification; 11 tests
- src/gofile.rs: GoFile API client — one guest account per run, linear
backoff on account creation, sha256 website token, recursive content walk,
streaming .part downloads; 7 tests (offline goldens from python hashlib)
- src/zero807.rs: curl downloader with UA+Referer contract, dead-link
detection; 4 tests
- src/extract.rs: recursive extraction (sevenz-rust2 for 7z, zip crate,
unrar for rar, system tar/gzip/bzip2/xz for tarballs), nested BFS
expansion, .broken quarantine, extract_manifest.jsonl, idempotent re-runs;
8 tests
- src/catalogue.rs: keyword classifier over the dumped taxonomy, manifest/
directory scanning, overrides, md+jsonl reports, audited moves; 7 tests
incl. all 17 python test cases
2026-10-09 14:17:02 +02:00
Ben_Kosytorz
519e7904dc
feat(rust): difflib port + taxonomy data dump
...
- src/difflib.rs: faithful port of CPython difflib.SequenceMatcher
(Ratcliff/Obershelp ratio incl. real_quick_ratio/quick_ratio and autojunk),
validated against python-computed test vectors with exact float equality
- data/warhammer_data.json: taxonomy tables dumped from the python module
(tools/dump_warhammer_data.py), parsed order-preserving in
src/warhammer_data.rs (python dict insert-order + last-value-wins semantics)
- deps for the module ports: clap, reqwest, url, base64, regex, sha2, hex,
sevenz-rust2, unrar, zip, indexmap, rand, rpassword
2026-10-09 13:44:28 +02:00
Ben_Kosytorz
59a89fa06a
feat(rust): port state.py, globalstore.py and manifest appending
...
- src/state.rs: per-run state.json (status/attempts/error/files/updated),
corrupt-file -> *.json.bak restart, atomic tmp+rename save, mark() parity
(attempts increments, None fields never clear existing values)
- src/globalstore.rs: cross-run urls.json at XDG_DATA_HOME or
~/.local/share/dlphelper/urls.json, disabled-store no-op
- src/manifest.rs: append_manifest as compact JSONL, UTF-8
- unknown/extra JSON fields are preserved on round-trip so both versions can
read each other's artifacts (schema contract per AGENTS.md)
- 14 unit tests
2026-10-09 13:27:59 +02:00