๐ฏ What's New
โจ Major Features
- Anti-Ban Rate Limiting: Added
max_concurrent_downloadsto control the number of files downloading simultaneously per batch, anddownload_delayto insert delays between files. - Improved Gentle Exit: The downloader securely saves the state map, including ID checkpointing on
KeyboardInterruptto securely halt processes without missing files or re-downloading media arrays (Issue #91). - Persistent Progress Checkpointing: Explicitly preserves checkpoints in
config.yamlbetween active batch routines to minimize unhandled memory leaks.
๐ง Enhancements
- Added dependency
cryptgto greatly accelerate Telethon speeds and prevent arbitrary speed throttles (Issue #526). - Implemented robust regex sanitization for illegal Windows filename characters to mitigate generic
FileNotFoundError/OSErrorexceptions across environments (Issue #492).
๐งช Quality Improvements
- Extended Test Coverage: Covered mid-batch max limit boundaries, asynchronous concurrency locks (
asyncio.Semaphore), delays (asyncio.sleep,random.uniform), and tested complete configuration structures up to 99% coverage. - Config Type Validation:
max_concurrent_downloadssafely defaults to 4 and prevents ValueError/TypeError crashing routines on null or erroneous values. Negative scalar delays or non-numeric scalars gracefully skip instead of abruptly cascading.
๐ Configuration Examples
# Optional filters (Can also be set in individual chats)
# Control maximum concurrent downloads (1 = fully sequential)
max_concurrent_downloads: 4
# Insert a delay between file downloads (seconds)
# Fixed delay of 2 seconds:
download_delay: 2
# Random delay between 1 and 5 seconds:
download_delay: [1, 5]โ ๏ธ Breaking Changes
None - All changes are backward compatible.
Full Changelog: v3.2.0...v3.3.0