dev #18

Merged
sbcrumb merged 28 commits from dev into main 2025-09-27 17:52:46 -04:00
Owner
No description provided.
sbcrumb added 28 commits 2025-09-27 17:52:26 -04:00
fix: Preserve and convert NFO filenames to match video files
Local Docker Build (Dev) / build-dev (push) Successful in 23s
9bc8955ad4
- Preserve existing long-named NFO files instead of migrating to short names
- Convert existing short NFO names (S01E01.nfo) to match video filenames
- Create new NFOs with long names based on matching video files
- Only fallback to short names if no matching video file exists
fix: Remove nfo_migration_required source and ensure proper date lookup
Local Docker Build (Dev) / build-dev (push) Successful in 49s
9b0da8b6ed
- Remove bogus 'nfo_migration_required' source that bypassed proper date lookup
- Ensure episodes with existing NFOs still get processed through Sonarr API
- Episodes should get proper dateadded from Sonarr import history or airdate fallback
- Version bump to 1.9.3-longnames
feat: Complete clean TV NFO processing implementation v2.0.0
Local Docker Build (Dev) / build-dev (push) Successful in 17s
b431107abd
- New EpisodeNFOManager class with video filename matching
- NFO files now match video filenames instead of S01E01.nfo format
- Clean TVSeriesProcessor with proper Sonarr API integration
- Proper date lookup: database -> Sonarr import history -> airdate fallback
- Updated manual scan endpoint to use new clean processor
- Removed all migration logic and nfo_migration_required sources

This is a complete rewrite of TV episode processing with focus on:
1. NFO filenames matching video files
2. Proper dateadded field population from Sonarr
3. Clean separation of concerns
4. Robust fallback logic
fix: Sonarr client initialization error
Local Docker Build (Dev) / build-dev (push) Successful in 24s
4411804725
Fix AttributeError for missing sonarr_url config attributes.
Use environment variables directly like the original code.
Version bump to 2.0.1-clean
fix: Remove invalid webhook_secret parameter from SonarrClient
Local Docker Build (Dev) / build-dev (push) Successful in 23s
12767d7350
SonarrClient constructor only accepts base_url and api_key parameters.
Version bump to 2.0.2-clean
feat: Add external API fallback for TV episode airdates
Local Docker Build (Dev) / build-dev (push) Successful in 19s
2e6d8a35e7
When Sonarr lookup fails to find a series or episode data, the system now falls back to external APIs (TMDB, OMDb) to get episode air dates. This ensures episodes still get proper dateadded values even when not found in Sonarr.

Changes:
- Add ExternalClientManager integration to TVSeriesProcessor
- Implement _get_episode_airdate_from_external_apis method
- Support TMDB TV episode lookups with IMDb->TMDB ID conversion
- Support OMDb episode season lookups with date parsing
- Version bump to 2.0.3-external-fallback

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

Co-Authored-By: Claude <noreply@anthropic.com>
fix: External API fallback flow and conditional NFO creation
Local Docker Build (Dev) / build-dev (push) Successful in 23s
27677e49f8
Fixed two critical issues:
1. External API fallback was never reached because early returns when series/episodes not found in Sonarr
2. tvshow.nfo and season.nfo were always created even if they already existed

Changes:
- Restructured Sonarr lookup to fall through to external APIs when series/episodes not found
- Made tvshow.nfo and season.nfo creation conditional (only if files don't exist)
- Added debug logging for skipped NFO creation
- Version bump to 2.0.4-fallback-fix

Now series like High Potential should properly fall back to TMDB/OMDb for episode airdates.

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

Co-Authored-By: Claude <noreply@anthropic.com>
fix: Add Sonarr direct lookup fallback for reliable series detection
Local Docker Build (Dev) / build-dev (push) Successful in 19s
4d30ea840f
The /series/lookup endpoint sometimes fails to find series that exist in Sonarr. Added fallback to series_by_imdb_direct() method which scans all series directly.

Changes:
- Try Sonarr lookup endpoint first (fast)
- Fall back to direct series scan if lookup fails (slower but more reliable)
- Apply same logic to both episode dates and metadata methods
- Version bump to 2.0.5-sonarr-direct-lookup

This should find High Potential, Breaking Bad, and other series that exist in Sonarr but weren't found via the lookup endpoint.

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

Co-Authored-By: Claude <noreply@anthropic.com>
debug: Add extensive logging for episode detection
Local Docker Build (Dev) / build-dev (push) Successful in 29s
b9e3ae3a5e
Added detailed debug logging to diagnose why High Potential shows "0 episodes" despite having video files:

- Log season directory detection and pattern matching
- Log video file scanning and episode filename parsing
- Log season number extraction and matching logic
- Log final episode count and processing decisions

This will help identify where the episode detection is failing in the pipeline.

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

Co-Authored-By: Claude <noreply@anthropic.com>
update
Local Docker Build (Dev) / build-dev (push) Successful in 28s
c19d0f6290
retry for the AI
Local Docker Build (Dev) / build-dev (push) Successful in 16s
2c4dd274ff
tuple update
Local Docker Build (Dev) / build-dev (push) Successful in 23s
fc80c08041
airdate fallback
Local Docker Build (Dev) / build-dev (push) Successful in 29s
806370bd5f
verixon update
Local Docker Build (Dev) / build-dev (push) Successful in 33s
3d7460ad76
update to nfoguard.py
Local Docker Build (Dev) / build-dev (push) Successful in 24s
7027ae2745
tv update again
Local Docker Build (Dev) / build-dev (push) Successful in 28s
d2ad048f61
title search
Local Docker Build (Dev) / build-dev (push) Successful in 28s
3826895275
stop tvshow.nfo and show.nfo
Local Docker Build (Dev) / build-dev (push) Successful in 28s
Local Docker Build (Main) / build (pull_request) Successful in 24s
Local Docker Build (Main) / deploy (pull_request) Has been skipped
ce1a599fd9
feature: more omprovments phase 3
Build & Push DEV to DockerHub / docker (pull_request) Failing after 33s
d7426281de
chore: ensure .gitea directory is tracked and protected
Local Docker Build (Dev) / build-dev (pull_request) Successful in 29s
cab1a27144
- Remove .gitea/ from .git/info/exclude to allow tracking
- Add .gitea/workflows/ CI configuration files to repository
- Prevents accidental deletion of Gitea-specific CI workflows
- Ensures consistent build pipeline across repository instances
improvements (#15)
Build & Push DEV to DockerHub / docker (push) Failing after 1m12s
fa1e4e2ec7
Reviewed-on: #15
fix: restore .gitea directory and CI workflows
Local Docker Build (Dev) / build-dev (push) Successful in 29s
1a544dcba3
- Restore .gitea/workflows/ci.yml for main branch builds
- Restore .gitea/workflows/ci-dev.yml for dev branch builds
- Ensures Gitea CI pipeline will function properly
- Fixes issue where .gitea directory was accidentally removed
Merge branch 'improvements' into dev
Local Docker Build (Dev) / build-dev (push) Successful in 29s
6d840753a5
version: Update to 2.0.0 for major architecture and code quality improvements
Local Docker Build (Dev) / build-dev (push) Successful in 17s
09612aeb4e
- Bump version to 2.0.0 to reflect major changes
- Represents completion of modular architecture transformation
- Includes comprehensive code quality improvements (Phase 3)
- All new utility modules and error handling systems
- Breaking changes: modular structure, new import paths
feat: implement comprehensive async I/O capabilities
Local Docker Build (Dev) / build-dev (pull_request) Successful in 20s
82eb29fd63
- Add utils/async_file_utils.py with aiofiles-based operations
- Create core/async_nfo_manager.py for concurrent NFO processing
- Add async methods to TVProcessor for concurrent episode handling
- Implement async_find_episodes_on_disk() for faster scanning
- Add async_batch_create_episode_nfos() for concurrent NFO creation
- Support async_process_multiple_series() for parallel processing
- Optimize I/O performance for large media libraries
- Enable controlled concurrency with semaphores and rate limiting

Performance improvements:
- Concurrent file operations reduce I/O wait times
- Batch processing minimizes individual file access overhead
- Configurable concurrency limits prevent system overload
- Async directory scanning for faster episode discovery
Merge pull request 'feat: implement comprehensive async I/O capabilities' (#17) from async into dev
Local Docker Build (Dev) / build-dev (push) Successful in 14s
Local Docker Build (Main) / build (pull_request) Successful in 28s
Local Docker Build (Main) / deploy (pull_request) Has been skipped
820c5472c3
Reviewed-on: #17
sbcrumb merged commit 7ae8ce0024 into main 2025-09-27 17:52:46 -04:00
sbcrumb referenced this issue from a commit 2025-09-27 17:52:47 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sbcrumb/nfoguard#18