Can fetch genres from OpenAI

This commit is contained in:
Claudio Ortolina
2024-12-10 16:45:29 +03:00
parent 1cd38e5358
commit b68a7ac734
8 changed files with 156 additions and 51 deletions
@@ -63,6 +63,26 @@ defmodule MusicLibraryWeb.CollectionLive.Show do
end
end
def handle_event("populate_genres", %{"id" => id}, socket) do
record = Records.get_record!(id)
case Records.populate_genres(record) do
{:ok, updated_record} ->
{:noreply,
socket
|> put_flash(:info, gettext("Genres populated successfully"))
|> assign(:record, updated_record)}
{:error, reason} ->
{:noreply,
socket
|> put_flash(
:error,
gettext("Error populating genres") <> "," <> inspect(reason)
)}
end
end
def handle_event("refresh_cover", %{"id" => id}, socket) do
record = Records.get_record!(id)
@@ -56,6 +56,18 @@
{gettext("MB Data")}
</.button>
</.link>
<.link phx-click={JS.push("populate_genres", value: %{id: @record.id})}>
<.button type="button" class="relative -ml-px inline-flex items-center rounded-none">
<span class="sr-only">{gettext("Populate")}</span>
<.icon
name="hero-sparkles"
class="h-4 w-4 mr-1 phx-click-loading:animate-shake"
aria-hidden="true"
data-slot="icon"
/>
{gettext("Genres")}
</.button>
</.link>
<.link
phx-click={JS.push("delete", value: %{id: @record.id})}
data-confirm={gettext("Are you sure?")}
@@ -83,6 +83,26 @@ defmodule MusicLibraryWeb.WishlistLive.Show do
end
end
def handle_event("populate_genres", %{"id" => id}, socket) do
record = Records.get_record!(id)
case Records.populate_genres(record) do
{:ok, updated_record} ->
{:noreply,
socket
|> put_flash(:info, gettext("Genres populated successfully"))
|> assign(:record, updated_record)}
{:error, reason} ->
{:noreply,
socket
|> put_flash(
:error,
gettext("Error populating genres") <> "," <> inspect(reason)
)}
end
end
@impl true
def handle_info({MusicLibraryWeb.RecordLive.FormComponent, {:saved, record}}, socket) do
{:noreply, assign(socket, :record, record)}
@@ -56,6 +56,18 @@
{gettext("MB Data")}
</.button>
</.link>
<.link phx-click={JS.push("populate_genres", value: %{id: @record.id})}>
<.button type="button" class="relative -ml-px inline-flex items-center rounded-none">
<span class="sr-only">{gettext("Populate")}</span>
<.icon
name="hero-sparkles"
class="h-4 w-4 mr-1 phx-click-loading:animate-shake"
aria-hidden="true"
data-slot="icon"
/>
{gettext("Genres")}
</.button>
</.link>
<.link
phx-click={JS.push("delete", value: %{id: @record.id})}
data-confirm={gettext("Are you sure?")}