Rockbox open source high quality audio player as a Music Player Daemon
mpris
rockbox
mpd
libadwaita
audio
rust
zig
deno
1"""Filesystem browser (also surfaces UPnP entries)."""
2
3from __future__ import annotations
4
5from ..transport import HttpTransport
6from ..types import Entry
7
8
9class BrowseApi:
10 def __init__(self, http: HttpTransport) -> None:
11 self._http = http
12
13 async def entries(self, path: str | None = None) -> list[Entry]:
14 data = await self._http.execute(
15 "query Browse($path: String) "
16 "{ treeGetEntries(path: $path) "
17 "{ name attr timeWrite customaction displayName } }",
18 {"path": path},
19 )
20 return [Entry.model_validate(e) for e in data.get("treeGetEntries", [])]
21
22 async def directories(self, path: str | None = None) -> list[Entry]:
23 return [e for e in await self.entries(path) if e.is_directory]
24
25 async def files(self, path: str | None = None) -> list[Entry]:
26 return [e for e in await self.entries(path) if not e.is_directory]