Files
music_library/lib/last_fm/import.ex
T
Claudio Ortolina 750f0a74d1 Add logic to backfill scrobbled_tracks
Chokes on duplicate primary keys
2025-05-31 20:12:36 +01:00

24 lines
488 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(opts) do
with {:ok, tracks} <- LastFm.get_tracks(opts) 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