Skip to content

feat(export): bundle multi-subnet export into a zip with a combined txt - #31

Merged
Mathious6 merged 2 commits into
mainfrom
feat/export-bundle
Sep 7, 2026
Merged

feat(export): bundle multi-subnet export into a zip with a combined txt#31
Mathious6 merged 2 commits into
mainfrom
feat/export-bundle

Conversation

@Mathious6

Copy link
Copy Markdown
Owner

What changed

  • Exporting several subnets at once now writes one ZIP into the chosen folder: one <category>.txt per subnet plus an ALL_<qty>.txt concatenating every proxy line for easy bulk import.
  • Single-subnet export keeps writing a plain TXT, and the AYCD JSON flow is untouched.
  • Archive names follow the existing category grammar: shared tag stem first, else the shared country code, else XX / MIXED, then the subnet and proxy counts, and a short scope fingerprint so distinct selections never silently overwrite each other while re-exporting the same scope replaces its own archive.
  • New archive.rs owns ZIP serialization (deflate, owner-only permissions inside and out); secure_file exposes the shared truncating 0600 opener; export planning stays pure and tested.
  • README step 6 documents the bundled artifact.

Why

One downloadable artifact per export makes multi-subnet hand-off to bulk-import tools a single step instead of gathering many files.

Test plan

  • cargo fmt --check, clippy -D warnings, cargo test --locked --lib (98 passed, incl. ZIP round-trip, overwrite, permissions, naming, scope-fingerprint cases)
  • bun run check, bun run build
  • Rebased on current main (frontend + rust dep groups) and re-validated both stacks
  • Manual dev-instance check: multi-select export produces one ZIP with per-subnet TXTs and the combined ALL file

@Mathious6
Mathious6 merged commit 1d2982c into main Sep 7, 2026
7 checks passed
@Mathious6
Mathious6 deleted the feat/export-bundle branch September 7, 2026 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant