30 Commits
Author SHA1 Message Date
ggfevans ec42bf4758 fix: install dependencies 2025-06-07 16:05:32 -07:00
ggfevans 5e4d09c891 Cleanup claude scaffolding 2025-06-07 00:09:07 -07:00
Gareth Evans fe3bfe5c0f Update README.md 2025-06-07 00:04:10 -07:00
Gareth Evans 9b82acb01e Merge pull request #1 from ggfevans/prep-release
Prep release
2025-06-07 00:01:38 -07:00
Gareth Evans d8cace32dc Merge branch 'main' into prep-release 2025-06-07 00:01:27 -07:00
ggfevans da40105e55 docs: mark prompt 11 (packaging) as complete - PROJECT 100% COMPLETE! 🎉 2025-06-06 23:57:36 -07:00
ggfevansandClaude 42b15c449a feat: complete packaging system for distribution
Package Configuration:
- Enhanced setup.py with comprehensive metadata and classifiers
- Modern pyproject.toml with build system configuration
- MANIFEST.in for proper file inclusion/exclusion
- Added __main__.py for python -m execution
- py.typed marker for type checking support

Dependencies Management:
- Separated development dependencies in requirements-dev.txt
- Core dependencies with version constraints
- Optional dependencies for docs and development
- Build tools configuration

Installation and Distribution:
- Console script entry points (qbit-torrent-extract, qte)
- Proper package structure with src layout
- Wheel and source distribution support
- PyPI-ready metadata and classifiers

Container Support:
- Multi-stage Dockerfile for production deployment
- qBittorrent integration Dockerfile
- Docker Compose configurations
- .dockerignore for optimized builds

Release Documentation:
- Comprehensive CHANGELOG.md with version history
- Docker integration documentation
- Build and installation instructions

Successfully builds:
- qbit_torrent_extract-0.1.0-py3-none-any.whl
- qbit_torrent_extract-0.1.0.tar.gz

Package is now ready for PyPI distribution and Docker deployment\!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 23:56:59 -07:00
ggfevansandClaude bb48d1373e docs: add humorous references to the *arr app import problem
- Added "No files found are eligible for import" quotes and references
- Created dedicated troubleshooting section for *arr app integration
- Added BitBook and archive-ception jokes throughout
- Included real-world example: Chuck.Palahniuk.-.Fight.Club.2011.Retail.EPUB.eBook-BitBook
- Added "Make Readarr Happy" configuration example
- Referenced the tool as "The Readarr Whisperer"

Because we've all been there, staring at that error message, knowing the
EPUB is RIGHT THERE inside that ZIP file. This tool was born from that
exact frustration\! 📚🤖

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 23:46:51 -07:00
ggfevans 2da3cfba8f docs: mark prompt 10 (documentation) as complete 2025-06-06 23:40:15 -07:00
ggfevansandClaude a84f617179 feat: implement comprehensive documentation system
Created complete documentation suite in docs/ directory:

API Documentation (docs/api.md):
- Complete API reference for all modules and classes
- Detailed method signatures and parameters
- Usage examples and error handling
- Thread safety and performance notes

Installation Guide (docs/installation.md):
- Platform-specific installation instructions
- Virtual environment setup
- Dependency management
- qBittorrent integration setup
- Docker installation options
- Development environment setup
- Comprehensive troubleshooting

Configuration Reference (docs/configuration.md):
- Complete parameter documentation
- Configuration file format and schema
- Command-line options reference
- Environment variable support
- Configuration examples for different use cases
- Validation and best practices

Troubleshooting Guide (docs/troubleshooting.md):
- Quick diagnostic steps
- Platform-specific issues and solutions
- Performance optimization
- Security and validation troubleshooting
- Advanced debugging techniques
- Support and help resources

Enhanced README.md:
- Added documentation section with quick links
- Improved development setup instructions
- Added project structure overview
- Enhanced contributing guidelines
- Added support and changelog sections

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 23:39:39 -07:00
ggfevans 7db992e966 docs: mark prompt 9 (testing suite) as complete 2025-06-06 17:10:37 -07:00
ggfevansandClaude e1f65c2a8c feat: implement comprehensive testing suite
- Add 56 new tests across 4 major test categories
- Total test count increased from 92 to 148 tests (61% increase)

CLI/Integration Tests (test_main.py):
- Complete CLI option testing (help, version, all options)
- Integration testing with real archives and workflows
- Error handling and edge case testing
- Configuration override testing

Security Tests (test_security.py):
- Zipbomb protection and detection
- Nested depth protection
- Path traversal attack prevention
- Corrupted archive handling
- Password-protected archive detection
- Resource exhaustion protection
- Mixed security scenario testing

Performance Tests (test_performance.py):
- Extraction performance benchmarking
- Memory usage testing
- Throughput metrics and scalability
- Validation performance testing
- Baseline performance regression detection

Integration Tests (test_integration.py):
- End-to-end workflow testing
- Real-world scenario simulation
- Component integration testing
- qBittorrent simulation scenarios
- Progressive extraction testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 17:10:08 -07:00
ggfevans ff0531d283 docs: mark prompt 8 (qBittorrent integration) as complete 2025-06-06 16:59:38 -07:00
ggfevansandClaude 02b57d9f77 feat: complete qBittorrent integration documentation
- Add comprehensive qBittorrent setup guide with basic and advanced examples
- Document all qBittorrent variables (%F, %N, %R, etc.) and their usage
- Include complete command-line options reference
- Add detailed JSON configuration file format and examples
- Create extensive troubleshooting section covering:
  * Permission errors and solutions
  * Path and dependency issues
  * Archive extraction problems
  * Performance and timeout issues
- Provide debugging steps and log analysis guidance
- Document security settings and best practices
- Add performance optimization recommendations
- Include production-ready configuration examples
- Cover monitoring and maintenance strategies

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 16:59:12 -07:00
ggfevans 4926dbf5c6 docs: mark prompt 7 (CLI implementation) as complete 2025-06-06 16:51:25 -07:00
ggfevansandClaude 87e2432c31 feat: complete CLI implementation and code formatting
- CLI now includes all specified options from spec:
  * --verbose/--quiet for output verbosity
  * --max-depth for nested archive limits
  * --help for documentation
  * --version for version information
- Additional CLI features beyond spec:
  * --preserve/--no-preserve for archive handling
  * --config for configuration file support
  * --max-ratio for zipbomb protection
  * --log-dir for custom log directories
  * --torrent-name for per-torrent logging
  * --stats-file, --show-stats, --export-stats for statistics
- Applied black code formatting to entire codebase
- Input validation handled by click path validation
- Comprehensive help documentation included

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 16:50:46 -07:00
ggfevans 7cca5e7b3a docs: mark prompt 6 (statistics tracking) as complete 2025-06-06 16:39:20 -07:00
ggfevansandClaude dabe486876 feat: implement comprehensive statistics tracking system
- Create StatisticsManager with full archive processing tracking
- Add persistent JSON storage with atomic writes for data integrity
- Implement detailed error categorization (8 error types)
- Track performance metrics including extraction time and throughput
- Support aggregated statistics across multiple runs
- Add CLI options for --stats-file, --show-stats, --export-stats
- Integrate statistics with extractor for detailed per-archive tracking
- Maintain backward compatibility with legacy stats structure
- Write comprehensive test suite with 31 tests covering all functionality
- Support statistics export and data management operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 16:38:51 -07:00
ggfevans e6d8601191 docs: mark prompt 5 (logging system) as complete 2025-06-06 16:13:08 -07:00
ggfevansandClaude 03455a7916 feat: implement comprehensive logging system with per-torrent support
- Add enhanced logging module with structured formatting
- Implement per-torrent log files with automatic sanitization
- Add log rotation with configurable size and count limits
- Create contextual logging with archive path and torrent information
- Integrate logging system with extractor and main CLI
- Add support for normal/verbose modes and log level management
- Implement console and file logging with separate formatters
- Add comprehensive test suite for logging functionality
- Support torrent-name CLI option for per-torrent logging
- Provide logging statistics and management capabilities

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 16:12:29 -07:00
ggfevans 8fe4c676d5 chore: update dependencies 2025-06-06 16:07:42 -07:00
ggfevans ca3331ea55 docs: mark prompt 4 (extraction system) as complete 2025-06-06 15:38:32 -07:00
ggfevansandClaude 72aef05e51 feat: complete extraction system with comprehensive archive support
- Add support for all archive types: .7z, .tar.gz, .tgz
- Implement nested archive extraction with depth tracking
- Integrate validator module for pre-extraction validation
- Add comprehensive error handling with skip-and-continue functionality
- Improve progress indicators with iterative extraction approach
- Add extraction statistics tracking and reporting
- Implement password-protected archive detection and skipping
- Add post-extraction validation through validator integration
- Write comprehensive test suite covering all archive types
- Add tests for error handling, zipbomb protection, and nested depth limits

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 15:37:56 -07:00
ggfevans f0a9e7335d docs: mark prompt 3 (archive validation) as complete
- Update progress to 3/11 complete (27%)
- Check off all validation subtasks
- Note 14 tests were written
- Defer security documentation to Prompt 10
2025-06-06 15:20:37 -07:00
ggfevans 886a65aae9 Merge branch 'feature/prompt-3-archive-validation' 2025-06-06 15:19:28 -07:00
ggfevans 4c326ae708 feat: implement archive detection and validation system
- Add ArchiveValidator class with support for .zip, .rar, .7z, .tar, .tar.gz
- Implement zipbomb protection with configurable extraction ratio limits
- Add nested archive depth checking to prevent excessive recursion
- Support validation of corrupted archives and password protection
- Include comprehensive test suite with 14 tests
- Add py7zr dependency for 7z archive support
2025-06-06 15:19:15 -07:00
ggfevans 1bf409e392 docs: mark prompt 2 (configuration system) as complete
- Update progress summary to 2/11 complete (18%)
- Check off configuration system in checklist
- Mark all subtasks as complete
- Note that documentation is deferred to Prompt 10
2025-06-06 15:13:43 -07:00
ggfevans a7002617e6 feat: add configuration system with JSON support
- Implement Config dataclass with validation
- Add support for JSON config files
- Enable command-line overrides
- Include zipbomb protection settings (max_extraction_ratio)
- Add nested depth limits (max_nested_depth)
- Support logging configuration
- Add comprehensive test coverage
2025-06-06 15:10:25 -07:00
ggfevans a250f71186 docs: add completion tracking and git workflow to prompt-plan
- Add markdown checklist for all prompts
- Include progress summary with statistics
- Add git workflow guidelines and best practices
- Define commit message format
- Add subtask tracking for detailed progress
- Mark current completion status for each prompt
2025-06-06 15:09:57 -07:00
ggfevans d3c3efc287 Initial commit: Project structure and specifications 2025-06-06 14:37:44 -07:00