23 Commits

Author SHA1 Message Date
73f5585488 security: harden Electron app - context isolation, preload, fix XSS & command injection
- Enable contextIsolation, disable nodeIntegration, remove enableRemoteModule
- Add preload.js with safe contextBridge API exposure
- Fix OS command injection: exec() → execFile() in open-file-in-player
- Fix DOM XSS: replace innerHTML with textContent/createElement in FileListManager, UIManager, ModalManager
- Remove direct fs/electron access from renderer, route through IPC
- Add validate-folder and get-file-stats IPC handlers
- Load renderer modules via script tags with require polyfill
2026-07-05 07:31:06 +00:00
5b1d24ae4a Add file editing via double-click and fix TVDB ID appending logic
- Add double-click handler to make file names editable in UI
- Remove duplicate IPC handler for rename-file in renderer.js
- Fix checkEpisodeCountMatch to properly validate sequential episodes
- Fix begin-mapping to handle both season folder and show folder cases
- Improve open-file-in-player handler to properly log results
2026-02-26 19:20:15 -06:00
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
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
a787536297 Fix play button shifting with flex layout adjustments 2026-02-21 15:44:53 -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
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
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
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
b8acd99a56 Split quality and frame rate into separate columns. Files now display quality and fps in separate columns for cleaner presentation. 2026-02-18 21:33:49 -06:00
65988a942e Added quality column feature. Files now display quality information like 1080p30fps or 720p60fps. Enhanced error handling for problematic files with visual labeling and quality extraction. 2026-02-18 21:32:35 -06:00
ac2248d7ed Enhanced error handling for problematic files with visual labeling. Fixed ffprobe issues with files like IGPX - The Complete Stage - Disc 2_t08.mkv. Added ⚠️ label for files that fail to process. Application now continues working normally even when encountering problematic media files. 2026-02-18 21:27:04 -06:00