Add IR remote control (LIRC) with a number-key content mapping
Adds a TCP client for lircd's classic protocol: play/pause/next/prev/ volume/mute map to the same intents every other front-end already emits, and number keys 0-9 play an assigned album/audiobook from the start or a podcast show's newest episode, resolved fresh on every press. The mapping is configured in config.yml and editable from the frontend: a small "Taste zuweisen" button on the play screen (or the A+digit keyboard shortcut) opens a 10-key picker to assign whatever is currently playing. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -128,6 +128,28 @@ async def test_podcast_episodes_are_newest_first(config_dir: Path) -> None:
|
||||
assert [a.title for a in episodes] == ["Neu", "Alt"]
|
||||
|
||||
|
||||
async def test_latest_episode_finds_the_newest_episode_of_a_show(config_dir: Path) -> None:
|
||||
library = await build(config_dir)
|
||||
latest = library.latest_episode("Wissen macht Ah")
|
||||
assert latest is not None
|
||||
assert latest.title == "Neu"
|
||||
|
||||
|
||||
async def test_latest_episode_is_none_for_an_unknown_show(config_dir: Path) -> None:
|
||||
library = await build(config_dir)
|
||||
assert library.latest_episode("no such show") is None
|
||||
|
||||
|
||||
async def test_latest_episode_ignores_series_that_are_not_episode_unit(config_dir: Path) -> None:
|
||||
"""A music/book section groups by `series` too (an audiobook's character), but it
|
||||
is a folder-unit shelf, not an episode-unit one - `latest_episode` must not treat
|
||||
an audiobook as if it had "episodes"."""
|
||||
library = await build(config_dir)
|
||||
audiobook = album_named(library, "Conni in den Bergen")
|
||||
assert audiobook.series is not None
|
||||
assert library.latest_episode(audiobook.series) is None
|
||||
|
||||
|
||||
async def test_other_sections_keep_filename_order(config_dir: Path) -> None:
|
||||
album = album_named(await build(config_dir), "Kinderparty Lieder")
|
||||
assert [track.path.name for track in album.tracks] == [
|
||||
|
||||
Reference in New Issue
Block a user