v1.8.0
Pre-releaseArchitectural Overhaul
-
Modular Package: Monolithic Snatch.py split into a clean package under Modules/ (soon snatch/), with dedicated modules for CLI, config, manager, cache, progress, utils, plugins, P2P, logging, defaults, constants, and metadata.
-
Entry Points: Scaffolded Modules/main.py for python -m Modules, and setup.py configured for a snatch console script.
-
Editable Installs: Supports pip install -e . for rapid development.
Logging & Configuration
-
Unified Logging: Central logging_config.py (Colorama for human‑readable; JSON formatter for machine parsing).
-
Root Logger: Automatically configured in cli.py, with module‑local logger = getLogger(name) everywhere.
Interactive Download Mode (WIP)
-
Interactive Mode: New interactive_mode.py consolidates prompts (media type, audio codec, channels, resolution).
-
Crash Fix: Resolved 'NoneType' object has no attribute 'get' when metadata missing.
-
Flags: --no-interactive placeholder for non‑interactive defaults.
DownloadManager Improvements (WIP)
-
Format Options: Scaffold to accept format_opts dict (audio/video filters).
-
Exit Codes: Defined 0=success, 1=partial failure, 2=fatal error.
Extensibility Scaffolds
-
Plugin API: plugins.py stub for entry‑point discovery and hook registry.
-
P2P Sharing: p2p.py stubs for share_file() and fetch_file(), paving the way for direct Snatch‑to‑Snatch transfers.
Planned Advanced Features
-
Proxy Auto‑Config & NTLM/Kerberos support
-
Multi‑host mirror & failover (Metalink, chunk scheduling)
-
Video upscaling (SRCNN/ESPCN/Topaz AI) and audio enhancement (RNNoise, loudnorm)
-
Internationalization (gettext, locales/)
-
CI‑driven testing matrix and shell‑completion scripts
Known Issues in This Pre‑Release
-
Interactive Mode Incomplete: Some prompts may not correctly override defaults or honor --no-interactive.
-
Audio‑Format Flag: --audio-format binding to DownloadManager is not yet fully wired.
-
P2P Workflow: Handshake, NAT traversal, and error handling are placeholders needing robust testing.
-
Plugin Hooks: No real plugins yet; hook points need integration.
-
Packaging Edges: Windows console‑script shim may require manual PATH adjustments.