5.7 KiB
5.7 KiB
Project: Media File Renamer and Metadata Viewer (Python TUI with Textual)
Current Version: 0.5.10
TODO Steps:
- ✅ Set up Python project structure with UV package manager
- ✅ Install dependencies: textual, mutagen, pymediainfo, python-magic, pathlib for file handling
- ✅ Implement recursive directory scanning for video files (*.mkv, *.avi, *.mov, *.mp4, *.wmv, *.flv, *.webm, etc.)
- ✅ Detect real media container type using mutagen and python-magic
- ✅ Create Textual TUI application with split layout (left: file tree, right: file details)
- ✅ Implement file tree display with navigation (keyboard arrows, mouse support)
- ✅ Add bottom command bar with 'quit', 'open directory', 'scan' commands
- ✅ Display file details on right side: file size, extension from filename, extension from metadata, file date
- ✅ Add functionality to select files in the tree and update right panel
- ✅ Implement detailed metadata display including video/audio/subtitle tracks with colors
- ✅ Add custom tree styling with file icons and colored guides
- ✅ Add scrollable details panel
- ✅ Handle markup escaping for file names with brackets
- ✅ Implement file renaming functionality with confirmation dialog
- ✅ Add proposed name generation based on metadata extraction
- ✅ Add help screen with key bindings and usage information
- ✅ Add tree expansion/collapse toggle functionality
- ✅ Add file refresh functionality to reload metadata for selected file
- ✅ Optimize tree updates to avoid full reloads after renaming
- ✅ Add loading indicators for metadata extraction
- ✅ Add error handling for file operations and metadata extraction
- 🔄 Implement blue highlighting for changed parts in proposed filename display (show differences between current and proposed names)
- 🔄 Implement build script to exclude dev commands (bump-version, release) from distributed package
- 📋 Implement metadata editing capabilities (future enhancement)
- 📋 Add batch rename operations (future enhancement)
- 📋 Add plugin system for custom extractors/formatters (future enhancement)
- 📋 Add advanced search and filtering capabilities (future enhancement)
- 📋 Implement undo/redo functionality for file operations (future enhancement)
Media Catalog Mode Implementation Plan
New big app evolution step: Add media catalog mode with settings, caching, and enhanced TMDB display.
Phase 1: Settings Management Foundation
- ✅ Create settings module (
renamer/settings.py) for JSON config in~/.config/renamer/config.jsonwith schema: mode, cache TTLs - ✅ Integrate settings into app startup (load/save on launch/exit)
- ✅ Add settings window to UI with fields for mode and TTLs
- ✅ Add "Open Settings" command to command panel
- ✅ Order setting menu item in the action bar by right side, close to the sysytem menu item ^p palette
Phase 2: Mode Toggle and UI Switching
- ✅ Add "Toggle Mode" command to switch between "technical" and "catalog" modes
- ✅ Modify right pane for mode-aware display (technical vs catalog info)
- ✅ Persist and restore mode state from settings
Phase 3: Caching System
- ✅ Create caching module (
renamer/cache.py) for file-based cache with TTL support - ✅ Integrate caching into extractors (check cache first, store results)
- ✅ Add refresh command to force re-extraction and cache update
- ✅ Handle cache cleanup on file rename (invalidate old filename)
Phase 4: Media Catalog Display
- ✅ Update TMDB extractor for catalog data: title, year, duration, rates, overview, genres codes, poster_path
- ✅ Create catalog formatter (
formatters/catalog_formatter.py) for beautiful display - ✅ Integrate catalog display into right pane
Phase 5: Poster Handling and Display
- ✅ Add poster caching (images in cache dir with 1-month TTL)
- ✅ Implement terminal image display (using rich-pixels library)
Phase 6: Polish and Documentation
- ✅ Create comprehensive CLAUDE.md for AI assistants
- ✅ Update all markdown documentation files
- ✅ Ensure version consistency across all files
Additional TODOs from Plan
- 📋 Retrieve full movie details from TMDB (currently basic data only)
- 📋 Expand genres to full names instead of codes (currently shows genre IDs)
- 📋 Optimize poster quality and display (improve image rendering)
- 📋 Add TV show support (currently movie-focused)
- 📋 Implement blue highlighting for filename differences
- 📋 Build script to exclude dev commands from distribution
Recently Completed (v0.5.x)
Version 0.5.10
- Complete media catalog mode implementation
- TMDB integration with poster display
- Settings system with persistent JSON storage
- Advanced caching with TTL support
- Dual-mode display (technical/catalog)
- Settings UI screen
Version 0.4.x
- Enhanced extractor system
- TMDB extractor foundation
- Improved formatter architecture
Version 0.3.x
- Expanded metadata extraction
- Multiple formatter types
- Special edition detection
Version 0.2.x
- Initial TUI implementation
- Basic metadata extraction
- File tree navigation
- Rename functionality
Development Priorities
High Priority
- 🔄 Blue highlighting for filename differences (UX improvement)
- 🔄 Build script for clean distribution packages
- 📋 Genre ID to name expansion (TMDB lookup)
Medium Priority
- 📋 Batch rename operations
- 📋 Advanced search/filtering
- 📋 TV show support
Low Priority (Future)
- 📋 Metadata editing
- 📋 Plugin system
- 📋 Undo/redo functionality
- 📋 Configuration profiles
Legend:
- ✅ Completed
- 🔄 In Progress / Partially Complete
- 📋 Planned / Future Enhancement
Last Updated: 2025-12-31