Refactor last_fm configuration

Move all configuration outside of the LastFm module, so that it's not
polluted with references to the parent music_library application.
This commit is contained in:
Claudio Ortolina
2024-11-06 12:08:06 +00:00
parent c64a8f7287
commit 18ae8b7866
11 changed files with 33 additions and 24 deletions
+6 -6
View File
@@ -5,14 +5,14 @@ defmodule LastFm.Refresh do
alias LastFm.Feed
@refresh_interval System.convert_time_unit(60, :second, :millisecond)
def start_link(config) do
GenServer.start_link(__MODULE__, config, name: __MODULE__)
end
@impl true
def init(config) do
config = Map.new(config)
if enabled?(config) do
{:ok, config, {:continue, :refresh}}
else
@@ -25,12 +25,12 @@ defmodule LastFm.Refresh do
case config.api.get_recent_tracks(config.user, config.api_key) do
{:ok, tracks} ->
Feed.update(tracks)
Process.send_after(self(), :refresh, @refresh_interval)
Process.send_after(self(), :refresh, config.refresh_interval)
{:noreply, config}
{:error, _reason} ->
# TODO: think about failure scenario - error is logged at the API level
Process.send_after(self(), :refresh, @refresh_interval)
Process.send_after(self(), :refresh, config.refresh_interval)
{:noreply, config}
end
end
@@ -40,12 +40,12 @@ defmodule LastFm.Refresh do
case config.api.get_recent_tracks(config.user, config.api_key) do
{:ok, tracks} ->
Feed.update(tracks)
Process.send_after(self(), :refresh, @refresh_interval)
Process.send_after(self(), :refresh, config.refresh_interval)
{:noreply, config}
{:error, _reason} ->
# TODO: think about failure scenario - error is logged at the API level
Process.send_after(self(), :refresh, @refresh_interval)
Process.send_after(self(), :refresh, config.refresh_interval)
{:noreply, config}
end
end