From 6ac5a88c47de21bc866562c5ffb5649d7abb426e Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 16 Sep 2024 12:30:54 +0100 Subject: [PATCH] Raw importer for all cover images --- lib/music_library/records/importer.ex | 15 +++++++++++++++ .../controllers/image_controller.ex | 2 ++ 2 files changed, 17 insertions(+) diff --git a/lib/music_library/records/importer.ex b/lib/music_library/records/importer.ex index 2a8fbd51..4cd550f8 100644 --- a/lib/music_library/records/importer.ex +++ b/lib/music_library/records/importer.ex @@ -69,6 +69,21 @@ defmodule MusicLibrary.Records.Importer do end end + def import_all_cover_images do + Rec + |> MusicLibrary.Repo.all() + |> Task.async_stream( + fn r -> + if r.image_data == nil do + import_cover_image(r) + IO.puts("Imported cover image for #{r.title}") + end + end, + timeout: 10_000 + ) + |> Stream.run() + end + def import_all do Rec |> MusicLibrary.Repo.all() diff --git a/lib/music_library_web/controllers/image_controller.ex b/lib/music_library_web/controllers/image_controller.ex index 4e393977..2679aef7 100644 --- a/lib/music_library_web/controllers/image_controller.ex +++ b/lib/music_library_web/controllers/image_controller.ex @@ -4,6 +4,8 @@ defmodule MusicLibraryWeb.ImageController do alias MusicLibrary.Records def show(conn, %{"record_id" => record_id}) do + # TODO: better error handling + # TODO: serve correct caching headers {:ok, image_data} = Records.get_image!(record_id) if image_data do