61 Commits

Author SHA1 Message Date
7bd7cdacac Refactor renderer.js into modular class-based architecture
- Split renderer.js into 9 manager classes following SOLID principles:
  * AppState - State management
  * EpisodeManager - Episode numbering and range editing
  * TagManager - File tagging system
  * SearchManager - TheTVDB search integration
  * FileManager - Directory and file operations
  * ModalManager - Video preview modals
  * ProgressManager - Progress display
  * FileListManager - File list rendering and drag/drop
  * UIManager - Main UI coordinator

- Add comprehensive test suite (test-renderer-classes-comprehensive.js)
  with 100+ tests covering all business logic
- Fix drag/drop handler 'this' binding issues
- Add CSS for highlighted episodes and improved file list styling
- Restore all original functionality including episode cascading,
  tagging system, TVDB search, and Jellyfin naming
2026-02-25 02:47:35 -06:00
1176c74c2e Add comprehensive test coverage for renderer class refactoring
- Added test-renderer-classes.js with tests for all 8 new class files
- Updated test-functional.js to match new code structure
- All tests passing:
  * 4 renderer class tests (AppState, EpisodeManager, ProgressManager, imports)
  * 9 audit system tests
  * 4 functional tests
- Syntax verified with node --check
2026-02-25 02:33:37 -06:00
be887c3855 Refactor renderer.js into modular class-based structure
- Split large renderer.js file into 8 separate class files:
  - AppState.js: Manages application state
  - FileListManager.js: Handles file list display and manipulation
  - TagManager.js: Manages file tagging functionality
  - EpisodeManager.js: Handles episode number editing and highlighting
  - SearchManager.js: Manages TVDB search and show selection
  - FileManager.js: Handles file operations
  - ModalManager.js: Manages video preview modal
  - ProgressManager.js: Manages progress display
  - UIManager.js: Main coordinator for UI functionality
- Follows SOLID principles and single responsibility
- Improves code maintainability and testability
- All syntax verified with node --check
2026-02-25 02:32:08 -06:00
8ebd419a91 Fix episode range format to include E prefix on both episodes
- Changed S05E01-03 to S05E01-E03 (proper format with E prefix on end episode)
- File now names correctly as 'Demon Slayer S05E01-E03 - 1080p.mkv'
2026-02-25 00:34:16 -06:00
17b10edbbc Fix show name extraction to remove leading semicolons
- Add regex to strip leading semicolons/colons from show folder name
- This fixes filenames like ';Demon Slayer S05E01-03' -> 'Demon Slayer S05E01-03'
2026-02-25 00:33:07 -06:00
b2e4f2d45e Fix episode number arrow cascade and remove Update Ranges button
- Add isUpdatingEpisodeNumbers flag to prevent re-entrant calls
- Arrow buttons now properly cascade shifts to all subsequent episodes
- Remove Update Ranges button and associated code
- Remove DevTools auto-open for cleaner release
- Syntax validation passes
2026-02-25 00:24:54 -06:00
46bfba582d Fix arrow button episode number cascading - all subsequent episodes now shift correctly 2026-02-25 00:17:51 -06:00
30eba3ae4e Add Begin Mapping feature with Jellyfin naming, fix tvdbid regex 2026-02-22 03:08:51 -06:00
92320cc908 Add delete tag, episode count matching indicator, fix season episode counts 2026-02-22 02:33:41 -06:00
ef2fbd1a95 MKV opens directly in player, improved search results contrast, updated AGENTS.md 2026-02-22 02:04:30 -06:00
246f768e02 Clean up UI with dark theme and improved layout 2026-02-22 01:42:20 -06:00
98d6810066 Fix play button, add progress spinner, folder navigation, and UI improvements 2026-02-22 01:38:48 -06:00
4b1c3e0fc6 Clean up all duplicate path declarations in main.js 2026-02-21 16:06:16 -06:00
7717315c84 Add startup log file creation with error handling 2026-02-21 16:03:47 -06:00
ad6c9b0d8d Fix duplicate path declaration properly 2026-02-21 15:59:15 -06:00
937200bf79 Fix duplicate variable declaration in main.js 2026-02-21 15:58:48 -06:00
ce07fdbb74 Add debug logging to file moving functionality 2026-02-21 15:58:08 -06:00
b4a23b5fd7 Add comprehensive debugging to move functionality 2026-02-21 15:53:45 -06:00
83a5a734b8 Add detailed logging to file moving functionality for debugging 2026-02-21 15:51:42 -06:00
9f8f428da4 Fix missing play button click handler and add debugging 2026-02-21 15:50:26 -06:00
66da3ca60a Add directory creation feedback and improve move functionality 2026-02-21 15:49:02 -06:00
c795c39d94 Add functionality to move tagged files to extra/commentary folders 2026-02-21 15:47:48 -06:00
3f837ccf94 Disable play button until item is tagged, instead of hiding it 2026-02-21 15:45:59 -06:00
a787536297 Fix play button shifting with flex layout adjustments 2026-02-21 15:44:53 -06:00
6daf24d579 Fix play button shifting by pre-allocating space and showing/hiding instead of adding/removing 2026-02-21 15:43:30 -06:00
ac6d6d32b4 Fix play button positioning and remove green background 2026-02-21 15:42:16 -06:00
6438deb3d0 Add play button to media rows when items are tagged 2026-02-21 15:41:08 -06:00
fd635c0dbc Update floating circle to appear at bottom right when tagged items exist 2026-02-21 15:37:45 -06:00
e8de57230e Update floating circle animation to move completely out of sight when no tagged items 2026-02-21 15:37:28 -06:00
7f501795ed Add tagged items counter to floating circle with animation 2026-02-21 15:37:14 -06:00
4234448f5d Add floating circle to bottom right of app 2026-02-21 15:22:53 -06:00
cb03ad1f96 Add AGENTS.md file with project guidelines for agentic coding agents 2026-02-21 15:20:27 -06:00
4ba3b629a1 Implement video preview feature with centered modal, MKV file support, and improved user experience 2026-02-19 10:40:54 -06:00
8c5ce29754 Fix warning sign persistence issue - warning sign now displayed in separate column and doesn't affect actual file names 2026-02-19 10:13:48 -06:00
3a855ce64a Implement actual file system renaming functionality with updated documentation 2026-02-19 10:11:11 -06:00
e3101006f2 Implement mutually exclusive tagging with untagging, fix UI shifting, and add clapper emoji to title 2026-02-19 10:08:11 -06:00
d3aac3261d attempts at move to extra 2026-02-19 09:47:06 -06:00
12035cc4d8 feat: Remove test TVDB API button from UI 2026-02-19 09:23:39 -06:00
777e665bb4 feat: Clear search results when show is selected 2026-02-19 09:21:06 -06:00
987e01945e feat: Implement real TVDB v4 API integration with season/episode functionality and clean table display 2026-02-19 09:19:01 -06:00
e3c9e5f54c Refined show details implementation to properly handle season loading 2026-02-18 22:11:58 -06:00
789930997d Simplified show details implementation to avoid API parameter errors 2026-02-18 22:10:29 -06:00
0523ac2f1f Fix TVDB API implementation - use search by ID approach to avoid 'InvalidValueType' error 2026-02-18 22:07:26 -06:00
e0a350b65f Simplified and fixed TVDB API show details implementation - removed problematic fallback code 2026-02-18 22:01:51 -06:00
093a455bcf Further refine TVDB API show details implementation with better error handling 2026-02-18 21:59:32 -06:00
956dce038d Fix TVDB API endpoint issue - corrected show details endpoint 2026-02-18 21:58:12 -06:00
1cd7fab414 Implement enhanced TVDB v4 API functionality: show seasons and episodes with clickable navigation 2026-02-18 21:56:46 -06:00
8fd6df7d3e Remove all mock data and fully implement TVDB v4 API integration 2026-02-18 21:54:19 -06:00
315bd2a41c Added dotenv package and implemented proper .env file loading for Electron application. Fixed API key loading issue. 2026-02-18 21:47:11 -06:00
76a2b8abb3 Fixed environment variable handling for TVDB API key. Added fallback to process.env.API_KEY for better compatibility. 2026-02-18 21:46:04 -06:00