Commit 926c656
fix: filter media extras from standalone scan + fix Wanted list layout (#91)
* fix: setup auth redirect and plugins nav label
- SetupPage: handle "Already configured" error by navigating to home
instead of showing an error toast; fixes "Continue without password"
button doing nothing when AUTH_ENABLED=false
- i18n: add missing nav.plugins key to EN and DE common locale files
so Sidebar shows "Plugins" instead of the raw key
* fix: standalone app context, library view, scan UI indicator
- standalone/__init__.py: push Flask app context in _initial_scan and
_on_new_file background threads; store app ref via start(app=app)
- app.py: pass app to standalone_mgr.start()
- routes/library.py: include standalone series/movies in /library when
no Sonarr/Radarr configured; enrich with live wanted_count; filter
misidentified trailer files (tvshow/movie/trailer titles)
- useApi.ts: useStandaloneStatus polls every 2s while scanner_scanning
- AdvancedTab.tsx: Scan All button shows Scanning... spinner during active scan
- Setup.tsx: navigate home on Already configured error (fixes Continue
without password button when AUTH_ENABLED=false)
- i18n: add missing nav.plugins key to EN and DE locales
* docs: V9 Sublarr integration plan
- Switch to /api/chat with explicit system/user turns
- Add series_context parameter to translate_batch interface
- Fix quality evaluator prompt + score parser (was returning 50 for everything)
- Ollama Modelfile for V9 (no SYSTEM block — injected dynamically)
- Backward-compatible: use_chat_api=False preserves V6 behavior
* feat: NFO metadata integration for standalone scanner
- Add nfo_parser.py: reads tvshow.nfo / movie.nfo (Kodi/Emby/Jellyfin
format), extracts title, year, TVDB/TMDB/IMDB IDs, is_anime flag,
and local poster path; uses stdlib xml.etree only
- Integrate into scanner._process_series_group() and _process_movie():
NFO is tried first (offline, accurate); MetadataResolver only called
when NFO lacks IDs; local poster.jpg used instead of API-fetched URL
- Add GET /api/v1/standalone/series/<id>/poster and
GET /api/v1/standalone/movies/<id>/poster endpoints to serve local
poster images with is_safe_path() path-traversal protection
- ruff format routes/library.py
* fix: NFO/poster lookup in Season subfolder layout
parse_series_nfo() and find_local_poster() now also check the parent
directory when the given folder_path is a Season subfolder — handles
the common case where episodes are in Season 1/ but tvshow.nfo and
poster.jpg live in the series root.
* fix: poster endpoint path security and library poster URL
- poster endpoints now allow poster_url to reside in series_folder OR
its parent directory (handles Season-subfolder layout where poster.jpg
is in the series root but folder_path points to Season 1/)
- library endpoint returns /api/v1/standalone/series/<id>/poster URLs
instead of raw file paths (browsers block file:// local resources)
* fix: standalone series detail fallback for Sonarr-free mode
* fix: standalone fallback for series subtitles sidecar endpoint
* docs: fansub scoring integration design spec
* docs: revise fansub scoring spec — fix layer architecture, process_wanted_item gap, settings tab placement
* fix: filter media extras from standalone scan + fix Wanted list layout
- Skip trailers, featurettes, samples etc. during standalone filesystem scan.
Matches Jellyfin/Kodi extras naming convention (-trailer, -featurette,
-behindthescenes, -deleted, -interview, -scene, -short, -sample, -theme)
and standalone stems (tvshow, movie, trailer, sample).
- Cleanup step also removes existing wanted entries for matched extras.
- New config field standalone_skip_extras (default: true), exposed as
toggle in Settings → Library Sources (advanced).
- Fix Wanted page scroll list not filling available viewport: replaced
hardcoded calc(100vh-300px) with proper flex-1/min-h-0 chain so the
virtualizer always gets the correct container height.
---------
Co-authored-by: Abrechen2 <179815050+DennisSico@users.noreply.github.com>1 parent 670bf65 commit 926c656
File tree
5 files changed
+37
-5
lines changed- backend
- standalone
- frontend/src/pages
- Settings
5 files changed
+37
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
248 | 248 | | |
249 | 249 | | |
250 | 250 | | |
| 251 | + | |
251 | 252 | | |
252 | 253 | | |
253 | 254 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
17 | 39 | | |
18 | 40 | | |
19 | 41 | | |
| |||
152 | 174 | | |
153 | 175 | | |
154 | 176 | | |
| 177 | + | |
155 | 178 | | |
156 | 179 | | |
157 | 180 | | |
158 | 181 | | |
159 | 182 | | |
160 | 183 | | |
161 | 184 | | |
| 185 | + | |
| 186 | + | |
162 | 187 | | |
163 | 188 | | |
164 | 189 | | |
165 | 190 | | |
166 | 191 | | |
167 | | - | |
| 192 | + | |
168 | 193 | | |
169 | 194 | | |
170 | 195 | | |
| |||
613 | 638 | | |
614 | 639 | | |
615 | 640 | | |
| 641 | + | |
616 | 642 | | |
617 | 643 | | |
| 644 | + | |
618 | 645 | | |
619 | 646 | | |
620 | 647 | | |
| |||
623 | 650 | | |
624 | 651 | | |
625 | 652 | | |
626 | | - | |
| 653 | + | |
627 | 654 | | |
628 | 655 | | |
629 | 656 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
237 | 240 | | |
238 | 241 | | |
239 | 242 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
454 | 454 | | |
455 | 455 | | |
456 | 456 | | |
457 | | - | |
| 457 | + | |
458 | 458 | | |
459 | 459 | | |
460 | 460 | | |
| |||
834 | 834 | | |
835 | 835 | | |
836 | 836 | | |
837 | | - | |
| 837 | + | |
838 | 838 | | |
839 | 839 | | |
840 | | - | |
| 840 | + | |
841 | 841 | | |
842 | 842 | | |
843 | 843 | | |
| |||
0 commit comments