Repository navigation
Tags
Tags
feat: add customizable suffix env vars for synced subtitle filenames (f… …ixes #25) (#58) Add FFSUBSYNC_SUFFIX, AUTOSUBSYNC_SUFFIX, and ALASS_SUFFIX env vars so users can control the output filename suffix for Bazarr compatibility. Includes duplicate suffix prevention (e.g., movie.en.cc.srt won't become movie.en.cc.cc.srt when suffix is "cc").
feat: folder picker UI for "Scan Specific Path" modal (#56) * chore: ignore JetBrains IDE folder and local AI overrides Adds .idea/ (IntelliJ), CLAUDE.local.md, and .claude/CLAUDE.local.md so personal IDE state and local-only AI prompt overrides don't leak into the repo. The shared CLAUDE.md / .claude/ stay local-only via .git/info/exclude rather than .gitignore. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * feat: folder picker UI for "Scan Specific Path" modal Replaces the free-text textarea in the Scan Specific Paths modal with a clickable folder tree. Users browse the configured SCAN_PATHS roots, expand subdirectories, and pick paths via a + button into a chip list. Backend: new GET /api/browse?path=<abs> in src/server.ts. Returns the configured SCAN_PATHS as virtual top-level entries when no path is given, otherwise enumerates immediate children of the requested path. Refuses any path that does not resolve (via realpath, on both the request and the configured roots) inside one of the configured roots, so the endpoint cannot be coaxed into leaking arbitrary filesystem structure. Returns the user-supplied path in the response rather than the realpath so the UI shows paths as the user clicked them. Frontend: hand-rolled in vanilla JS to match the project's existing no-build, no-deps frontend style — no jQuery, no tree-widget library. Lazy-loads children on expand. Folder rows have a chevron, folder icon, and + button (visible on hover). File rows are shown for context but are display-only — file icon, dimmed text, no chevron, no + (the sync engine still operates on directories, this just lets users see what's inside before picking). Selected paths render as a chip list with × to remove. Hovering a chip expands it inline so the full path is visible even when truncated. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
fix: remove O(n²) bottleneck in large file scans (#46) Removed redundant findMatchingVideoFile call and per-file WebSocket broadcasts from the run:files_found handler. With 32k+ subtitle files, the synchronous disk I/O and DB queries blocked the event loop entirely. Video path matching now happens in processFile when the file is actually processed, and video_path is stored in the DB at that point. Co-authored-by: bridgemill-ch <[email protected]>
PreviousNext