Files
Lyra/worker/lyra_worker/registry.py
T

19 lines
755 B
Python

from lyra_worker.adapters._streamrip import StreamripClient
from lyra_worker.adapters._ytdlp import YtDlpClient
from lyra_worker.adapters.base import SourceAdapter
from lyra_worker.adapters.qobuz import QobuzAdapter
from lyra_worker.adapters.youtube import YouTubeAdapter
def build_adapters(config: dict) -> list[SourceAdapter]:
"""Real source adapters, best-tier first, filtered to those that are configured.
An adapter is included only if its health() is true (e.g. Qobuz requires
credentials in config). Plan 3d adds Soulseek (slskd) the same way.
"""
candidates: list[SourceAdapter] = [
QobuzAdapter(StreamripClient(config)),
YouTubeAdapter(YtDlpClient()),
]
return [a for a in candidates if a.health()]