Files
music_library/lib/last_fm/import.ex
T
2025-05-31 16:16:24 +01:00

24 lines
492 B
Elixir

defmodule LastFm.Import do
@insertable_fields [
:musicbrainz_id,
:title,
:artist,
:album,
:cover_url,
:scrobbled_at_uts,
:scrobbled_at_label,
:last_fm_data
]
def batch(uts_to) do
with {:ok, tracks} <- LastFm.get_tracks(uts_to) do
track_params =
tracks
|> Enum.map(fn t -> Map.take(t, @insertable_fields) end)
|> Enum.map(&Map.to_list/1)
MusicLibrary.Repo.insert_all(LastFm.Track, track_params)
end
end
end