Support a TOML configuration file
The new config file currently only configures the same options that were already available through environment variables. However I have ideas for additional features that would be much nicer to support using a structured configuration format like TOML rather than environment variables, so config files exist now! The previous environment variables are still supported and will be used if you don't have a config file. I plan to keep supporting the MPD_HOST and MPD_PORT environment variables forever since they're shared with other MPD clients such as mpc, but I may eventually drop the environment variables specific to mpd-now-playable in a future release.
This commit is contained in:
parent
796e3df87d
commit
dc037a0a4b
12 changed files with 305 additions and 33 deletions
|
|
@ -1,25 +1,19 @@
|
|||
import asyncio
|
||||
from os import environ
|
||||
|
||||
from corefoundationasyncio import CoreFoundationEventLoop
|
||||
|
||||
from .__version__ import __version__
|
||||
from .cocoa.now_playing import CocoaNowPlaying
|
||||
from .config.load import loadConfig
|
||||
from .mpd.listener import MpdStateListener
|
||||
|
||||
|
||||
async def listen() -> None:
|
||||
port = int(environ.get("MPD_PORT", "6600"))
|
||||
host = environ.get("MPD_HOST", "localhost")
|
||||
password = environ.get("MPD_PASSWORD")
|
||||
cache = environ.get("MPD_NOW_PLAYABLE_CACHE")
|
||||
if password is None and "@" in host:
|
||||
password, host = host.split("@", maxsplit=1)
|
||||
|
||||
print(f"mpd-now-playable v{__version__}")
|
||||
listener = MpdStateListener(cache)
|
||||
config = loadConfig()
|
||||
listener = MpdStateListener(config.cache)
|
||||
now_playing = CocoaNowPlaying(listener)
|
||||
await listener.start(host=host, port=port, password=password)
|
||||
await listener.start(config.mpd)
|
||||
await listener.loop(now_playing)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue