You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
* feat: add all media keys, per-box tabbed UI with remote control layout
- Add 40+ media key constants to const.py grouped by category (Power,
Playback, Navigation, D-Pad, Colour, Digits)
- Add /api/keys endpoint to web.py
- Redesign web_ui.html: per-box tabs instead of grid, full-page remote
control layout with D-pad cross, numpad, colour buttons, and all keys
* feat: export all media key constants from package __init__
* feat: add set_channel_by_number and deduplicate channels by number
- Add set_channel_by_number() to LGHorizonDevice for tuning by channel
number instead of name
- Refactor set_channel to share _tune_to_channel helper
- Deduplicate channels in _refresh_channels: keep last entry per
logicalChannelNumber (HD over SD)
- Add set_channel_by_number command to web.py
* fix: deduplicate channels at output layer instead of storage
Move channel deduplication from _refresh_channels to get_profile_channels
so all channel IDs remain in _channels for state processor lookups.
Prevents KeyError when the box reports a channel variant (e.g. SD) that
was previously removed by dedup.
* fix: switch channels by number instead of name to avoid duplicates
Web UI and CLI now use set_channel_by_number to prevent ambiguity
when multiple channels share the same name but have different numbers.
* feat: add /api/explore and /api/services endpoints for API discovery