LeoVasanko
b0d13a67a0
Fix config saving by not trying to save None default values.
2026-06-02 22:35:44 +00:00
LeoVasanko
568605b09a
Add missing file from previous commit
v0.4.2
2026-06-02 22:22:49 +00:00
LeoVasanko
b09118c8cb
Clean up series nested context menus and implement keyboard/gamepad navigation for these functions.
v0.4.1
2026-06-02 22:17:47 +00:00
LeoVasanko
f79c044250
Tighten media cache headers
2026-05-31 02:45:16 +00:00
LeoVasanko
a4b0cd916a
Use image logo for HDR10+ badge
2026-05-31 02:31:35 +00:00
LeoVasanko
e1a961d21f
Detect and badge HDR10+ (SMPTE ST 2094-40) via ffmpeg showinfo
2026-05-31 02:05:10 +00:00
LeoVasanko
1a6a3f0cf2
Don't show collection where the current movie is the only item we have
2026-05-31 01:51:15 +00:00
LeoVasanko
626fb9a0ae
Unify playback-state read/write via /api/meta/playback-state
2026-05-31 01:43:56 +00:00
LeoVasanko
b6742f0f27
refactor: unify roots updates over single websocket
2026-05-31 00:26:51 +00:00
LeoVasanko
6d0e6d41a7
feat(media): use collection-based recommendations and refine poster display
2026-05-31 00:12:54 +00:00
LeoVasanko
932c5af1ff
fix(frontend): scope synced row scrolling by group
2026-05-30 23:54:11 +00:00
LeoVasanko
eb49eb713e
Hide app scrollbars
2026-05-30 22:59:14 +00:00
LeoVasanko
d7eea51334
Align custom access and websocket logging with paskia
2026-05-30 22:46:40 +00:00
LeoVasanko
01f424dbfb
Force reel videos to remount on movie change
2026-05-30 22:33:23 +00:00
LeoVasanko
df9025760d
Add custom FastAPI access logging middleware
2026-05-30 22:25:21 +00:00
LeoVasanko
09e51acd14
Disable spellcheck and autocorrect in search input
2026-05-30 19:18:09 +00:00
LeoVasanko
a029eabded
Update README
v0.4.0
2026-05-30 05:44:43 +00:00
LeoVasanko
4926b72167
Add adjacent detail navigation for keyboard and gamepad
2026-05-30 05:35:56 +00:00
LeoVasanko
cd336d0bdb
Add fixed-interval hold repeat for gamepad volume
2026-05-30 05:30:15 +00:00
LeoVasanko
c75fb30921
Refine scan activity UI and initial-index visibility
2026-05-30 05:18:25 +00:00
LeoVasanko
28c50cab0b
Enable SPA on backend (fix 404 accessing other than root)
2026-05-30 05:03:24 +00:00
LeoVasanko
14b76520a6
Stop eager reel loading in cards
2026-05-30 05:02:36 +00:00
LeoVasanko
c9d2bcfdcc
Fix frontend type mismatches
2026-05-30 04:52:59 +00:00
LeoVasanko
7a0247d78f
Refine hover reel audio fades and idle behavior
2026-05-30 04:38:33 +00:00
LeoVasanko
bb4bd3723f
Improved serie episode preview video handling
2026-05-30 04:28:34 +00:00
LeoVasanko
7675940029
Implement JS-driven season poster sizing from episode grid remainder
2026-05-30 04:19:14 +00:00
LeoVasanko
613b516785
Fix series preview videos to render paused frames and stagger active season
2026-05-30 04:13:05 +00:00
LeoVasanko
2f72d1e7e2
Fix series full view vertical navigation to follow episode rows
2026-05-30 04:05:20 +00:00
LeoVasanko
b51a7ea73d
Separate scrolling for browse and details page even though they are laid out side by side on the layout (with one hidden out of screen).
2026-05-30 04:00:53 +00:00
LeoVasanko
fe5be2087d
Refine movie similar strip and desktop nav flow
2026-05-30 03:50:28 +00:00
LeoVasanko
46eecd8dbf
Add related movies on Series page. Uses heuristics to show serie movies only.
2026-05-30 03:36:35 +00:00
LeoVasanko
c2ee25ba3d
Fix synced row deadzone behavior and isolate cast scroll metrics
2026-05-30 02:57:34 +00:00
LeoVasanko
649992a10a
Align frontend with new cast and people wire format
2026-05-30 02:40:36 +00:00
LeoVasanko
ada61e1400
Remove long hex root ids and use only friendly names
2026-05-30 02:28:58 +00:00
LeoVasanko
3551808351
Fix root-relative playable path normalization
2026-05-30 02:19:33 +00:00
LeoVasanko
0ef6896181
Refactor API to flat root routes and WS/meta structure
2026-05-30 02:09:24 +00:00
LeoVasanko
72963aeb7a
Fix loading of index that was bad because of slop code.
2026-05-30 01:43:46 +00:00
LeoVasanko
352835a664
Add logical root asset URLs and harden media path serving
2026-05-30 01:36:47 +00:00
LeoVasanko
900fcea638
refactor index schema and metadata format and directory tree
2026-05-30 01:05:27 +00:00
LeoVasanko
550f67531a
Faster startup by loading existing index without any checks, then incremental scanning to update.
2026-05-29 22:25:13 +00:00
LeoVasanko
25e9bab57b
Improve scanner cancellation and offload heavy index I/O
2026-05-29 21:48:23 +00:00
LeoVasanko
359ca0c5b4
Add cross-platform system volume control with linear amplification mapping
...
- New mediahive/volume_control.py module controls master volume on
Windows (IAudioEndpointVolume via ctypes), macOS (osascript), and
Linux/PipeWire (wpctl).
- UI slider x in [0, 1.5] maps to linear amp via:
amp = 0.02*x if x < 0.1
amp = (exp(6*x)-1)/402.42879349 otherwise
- PipeWire supports >100% amplification natively (up to x=1.5).
- Windows and macOS clamp at x=1.0 (100%) since their system mixers
do not support amplification above unity.
- Gamepad D-pad up/down now controls system volume in 0.01 steps.
- JsApi exposes set_volume(), get_volume(), and volume_max() for the
frontend to query platform limits and control volume directly.
- No external dependencies: uses ctypes on Windows, subprocess on
Linux/macOS. No PulseAudio fallback.
- Add ruff ignore rules for ctypes COM boilerplate patterns.
2026-05-29 18:21:18 +00:00
LeoVasanko
cac3348ec1
Fix detail-view focus scope and entry targets
2026-05-29 18:18:30 +00:00
LeoVasanko
0b3cd15589
feat: configurable media player selection with auto-detection
...
Backend:
- Add mediahive/players.py with cross-platform player detection:
- Windows: MPC-BE, MPC-HC, VLC, PotPlayer, mpv (registry + known paths)
- macOS: IINA, VLC (/Applications bundle scanning)
- Linux: VLC, SMPlayer (PATH via which)
- Add GET /api/players endpoint returning detected players
- Extend POST /api/roots/{id}/play to accept player_id and player_custom_cmd
- Make MPC-BE web UI port configurable via ?port= query param
Frontend:
- Add player selection to settings (localStorage, per-client)
- Two-column layout: player list (9.5em) + contextual options panel
- Contextual options: Custom Command input, MPC Web UI Port input
- Empty MPC port disables all Web UI polling/connection attempts
- MPC-BE polling only runs when MPC family player is selected and port is set
2026-05-29 00:44:23 +00:00
LeoVasanko
17d9426d0a
Fix scanner attach race during root activation
2026-05-27 22:05:37 +00:00
LeoVasanko
ed4a5b2900
Route settings dialog to /settings and fix worker null handling
2026-05-27 21:58:09 +00:00
LeoVasanko
1383fc8da3
Add preferred format settings and release preference sorting
2026-05-27 21:52:36 +00:00
LeoVasanko
fe71e1be8b
Remove search worker debug logging
2026-05-27 21:23:48 +00:00
LeoVasanko
a0d1433154
Switch SPA navigation to history paths
2026-05-27 21:21:49 +00:00
LeoVasanko
02a89aee68
Use /search/:term path-based search routing
2026-05-27 21:15:58 +00:00