ini file support and cover art

This commit is contained in:
2026-08-27 13:33:34 +02:00
parent 744a2815f1
commit 84891adb89
13 changed files with 422 additions and 79 deletions
+25 -11
View File
@@ -33,12 +33,18 @@ port=8080
[player]
dlna-port=8734
[library]
paths=D:\Muziek;D:\Podcasts
[libraries]
muziek=D:\Muziek
podcasts=D:\Podcasts
[playback-agents]
7b4776ef27104e8eb9f7ea2c622ce76ca23de4260b0f94e6880d321017b32a0e4=true
```
Start dat bestand met `racket main.rkt --config rkt-web-player.ini`. Meerdere
bibliotheekpaden worden met een puntkomma gescheiden.
Start dat bestand met `racket main.rkt --config rkt-web-player.ini`. Iedere key
onder `[libraries]` is de zichtbare bibliotheeknaam; de waarde is de lokale of
UNC-rootmap. Het oudere `[library] paths=D:\Muziek;D:\Podcasts` blijft eveneens
ondersteund.
## Werking
@@ -47,7 +53,9 @@ responsive en geschikt voor muis, toetsenbord en touch. Links staat de lazy
mappenbrowser met trackinformatie; rechts staan playlisttabs en de huidige
playlist. Een map wordt pas recursief gelezen wanneer die met **afspelen** of
**toevoegen** wordt gekozen. Trackmetadata wordt eveneens pas op dat moment
geladen.
geladen. Bij de huidige track toont de webinterface embedded album-art uit de
audio-tags. Als die ontbreekt, worden naast het audiobestand ook `cover`,
`folder` en `front` met een JPEG- of PNG-extensie geprobeerd.
De webinterface praat met een kleine JSON-API onder `/api`. Lokale weergave
wordt pas geïnitialiseerd bij het eerste afspeelcommando. De knop naast de
@@ -60,7 +68,8 @@ drag-and-drop verplaatst. De tabs zijn in deze versie alleen in het geheugen
aanwezig en worden niet na een herstart hersteld.
De server luistert standaard alleen op localhost. Geef alleen bewust een
LAN-adres aan `--listen-ip`; de huidige opzet bevat geen authenticatie.
LAN-adres aan `--listen-ip`; de webinterface bevat nog geen
gebruikersauthenticatie.
## Windows playback agent
@@ -90,7 +99,11 @@ De GUI bewaart de server-URL, de gekozen naam en een eenmalig gegenereerde
Racket-configuratiemap. Vul als server bijvoorbeeld `http://192.168.1.10:8080`
in. De naam wordt in dezelfde agent-GUI ingesteld. Na registratie verschijnt
de agent met die naam als uitvoer van type `AGENT`; de server volgt latere
naamswijzigingen bij registratie en polling.
naamswijzigingen bij registratie en polling. De server laat een agent alleen
toe wanneer zijn volledige applicatie-ID vooraf als key onder
`[playback-agents]` staat en de waarde niet `false` is. Een onbekende ID krijgt
HTTP 403 en wordt niet als uitvoerpunt aangemaakt. De agent toont in dat geval
zijn ID en meldt dat de serverbeheerder deze eerst aan de INI moet toevoegen.
Onder **Afspelen** toont de agent het playlistnummer, de huidige track en
bestandsnaam, afspeeltoestand, verstreken en totale tijd, bitdiepte,
@@ -110,10 +123,11 @@ opgeruimd zodra ze niet meer nodig zijn en bij afsluiten van de agent.
Een systeemvakfunctie is voorlopig niet opgenomen. De agent start geen
PowerShell-proces of andere externe tray-helper.
De applicatie-ID identificeert de agent en begrenst toegang tot zijn tijdelijke
media-URL, maar vervangt geen transportbeveiliging of authenticatie. Gebruik de
agent en server alleen op een vertrouwd LAN zolang de HTTP-server geen TLS en
gebruikersauthenticatie heeft.
De allowlist voorkomt dat een onbekende agent zich als uitvoerpunt registreert
of opdrachten en tijdelijke media ontvangt. Het applicatie-ID is een gedeeld
toegangstoken en vervangt geen transportbeveiliging of gebruikersauthenticatie.
Gebruik de agent en server alleen op een vertrouwd LAN zolang de HTTP-server
geen TLS heeft.
## Controleren