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()]