Show last listen at for each collected record

This commit is contained in:
Claudio Ortolina
2025-06-03 15:57:12 +01:00
parent 46681deca9
commit c23260d03d
6 changed files with 48 additions and 2 deletions
+17
View File
@@ -211,6 +211,23 @@ defmodule MusicLibrary.Records do
end
end
def get_last_listened_track(record_id) do
q =
from r in fragment("records, json_each(records.release_ids)"),
where: fragment("records.id = ?", ^record_id),
select: r.value
release_ids = Repo.all(q)
q =
from t in LastFm.Track,
where: fragment("? ->> '$.musicbrainz_id'", t.album) in ^release_ids,
order_by: [desc: t.scrobbled_at_uts],
limit: 1
Repo.one(q)
end
def refresh_cover(record) do
with {:ok, cover_data} <- MusicBrainz.get_cover_art({:url, record.cover_url}) do
{:ok, thumb_data} = Cover.resize(cover_data)