Skip to content

v1.8.0

Pre-release
Pre-release

Choose a tag to compare

@Rashed-alothman Rashed-alothman released this 08 May 23:06
· 25 commits to main since this release

Architectural 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

  1. Interactive Mode Incomplete: Some prompts may not correctly override defaults or honor --no-interactive.

  2. Audio‑Format Flag: --audio-format binding to DownloadManager is not yet fully wired.

  3. P2P Workflow: Handshake, NAT traversal, and error handling are placeholders needing robust testing.

  4. Plugin Hooks: No real plugins yet; hook points need integration.

  5. Packaging Edges: Windows console‑script shim may require manual PATH adjustments.