Files
renamer/ToDo.md

5.7 KiB

Project: Media File Renamer and Metadata Viewer (Python TUI with Textual)

Current Version: 0.5.10

TODO Steps:

  1. Set up Python project structure with UV package manager
  2. Install dependencies: textual, mutagen, pymediainfo, python-magic, pathlib for file handling
  3. Implement recursive directory scanning for video files (*.mkv, *.avi, *.mov, *.mp4, *.wmv, *.flv, *.webm, etc.)
  4. Detect real media container type using mutagen and python-magic
  5. Create Textual TUI application with split layout (left: file tree, right: file details)
  6. Implement file tree display with navigation (keyboard arrows, mouse support)
  7. Add bottom command bar with 'quit', 'open directory', 'scan' commands
  8. Display file details on right side: file size, extension from filename, extension from metadata, file date
  9. Add functionality to select files in the tree and update right panel
  10. Implement detailed metadata display including video/audio/subtitle tracks with colors
  11. Add custom tree styling with file icons and colored guides
  12. Add scrollable details panel
  13. Handle markup escaping for file names with brackets
  14. Implement file renaming functionality with confirmation dialog
  15. Add proposed name generation based on metadata extraction
  16. Add help screen with key bindings and usage information
  17. Add tree expansion/collapse toggle functionality
  18. Add file refresh functionality to reload metadata for selected file
  19. Optimize tree updates to avoid full reloads after renaming
  20. Add loading indicators for metadata extraction
  21. Add error handling for file operations and metadata extraction
  22. 🔄 Implement blue highlighting for changed parts in proposed filename display (show differences between current and proposed names)
  23. 🔄 Implement build script to exclude dev commands (bump-version, release) from distributed package
  24. 📋 Implement metadata editing capabilities (future enhancement)
  25. 📋 Add batch rename operations (future enhancement)
  26. 📋 Add plugin system for custom extractors/formatters (future enhancement)
  27. 📋 Add advanced search and filtering capabilities (future enhancement)
  28. 📋 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

  1. Create settings module (renamer/settings.py) for JSON config in ~/.config/renamer/config.json with schema: mode, cache TTLs
  2. Integrate settings into app startup (load/save on launch/exit)
  3. Add settings window to UI with fields for mode and TTLs
  4. Add "Open Settings" command to command panel
  5. 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

  1. Add "Toggle Mode" command to switch between "technical" and "catalog" modes
  2. Modify right pane for mode-aware display (technical vs catalog info)
  3. Persist and restore mode state from settings

Phase 3: Caching System

  1. Create caching module (renamer/cache.py) for file-based cache with TTL support
  2. Integrate caching into extractors (check cache first, store results)
  3. Add refresh command to force re-extraction and cache update
  4. Handle cache cleanup on file rename (invalidate old filename)

Phase 4: Media Catalog Display

  1. Update TMDB extractor for catalog data: title, year, duration, rates, overview, genres codes, poster_path
  2. Create catalog formatter (formatters/catalog_formatter.py) for beautiful display
  3. Integrate catalog display into right pane

Phase 5: Poster Handling and Display

  1. Add poster caching (images in cache dir with 1-month TTL)
  2. Implement terminal image display (using rich-pixels library)

Phase 6: Polish and Documentation

  1. Create comprehensive CLAUDE.md for AI assistants
  2. Update all markdown documentation files
  3. 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

  1. 🔄 Blue highlighting for filename differences (UX improvement)
  2. 🔄 Build script for clean distribution packages
  3. 📋 Genre ID to name expansion (TMDB lookup)

Medium Priority

  1. 📋 Batch rename operations
  2. 📋 Advanced search/filtering
  3. 📋 TV show support

Low Priority (Future)

  1. 📋 Metadata editing
  2. 📋 Plugin system
  3. 📋 Undo/redo functionality
  4. 📋 Configuration profiles

Legend:

  • Completed
  • 🔄 In Progress / Partially Complete
  • 📋 Planned / Future Enhancement

Last Updated: 2025-12-31