69e7d163fc
* refactor: remove built-in Spotify integration Remove the Spotify adapter and all related configuration, replacing the built-in integration with the plugin system. This deletes the adapters/spotify package, removes Spotify config options (ID/Secret), updates the default agents list from "deezer,lastfm,spotify" to "deezer,lastfm", and cleans up all references across configuration, metrics, logging, artwork caching, and documentation. Users with Spotify config options will now see a warning that the options are no longer available. * feat: add ListenBrainz to list of default agents Signed-off-by: Deluan <deluan@navidrome.org> --------- Signed-off-by: Deluan <deluan@navidrome.org>
13 lines
766 B
Markdown
13 lines
766 B
Markdown
This folder abstracts metadata lookup into "agents". Each agent can be implemented to get as
|
|
much info as the external source provides, by using a granular set of interfaces
|
|
(see [interfaces](interfaces.go)).
|
|
|
|
A new agent must comply with these simple implementation rules:
|
|
1) Implement the `AgentName()` method. It just returns the name of the agent for logging purposes.
|
|
2) Implement one or more of the `*Retriever()` interfaces. That's where the agent's logic resides.
|
|
3) Register itself (in its `init()` function).
|
|
|
|
For an agent to be used it needs to be listed in the `Agents` config option (default is `"deezer,lastfm"`). The order dictates the priority of the agents
|
|
|
|
For a simple Agent example, look at the [local_agent](local_agent.go) agent source code.
|