Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 26 lines 926 B view raw
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]