From c6d778c1cd5923170502f376927074913a747266 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Thu, 26 Feb 2026 11:16:55 +0000 Subject: [PATCH] Render debug information in side sheet with highlighting --- .claude/settings.local.json | 3 +- .../components/core_components.ex | 53 ++++++++++------ .../live/artist_live/show.ex | 61 ++++++++++++++----- .../live/collection_live/show.ex | 26 +++++++- .../live/wishlist_live/show.ex | 26 +++++++- mix.exs | 3 + mix.lock | 3 + priv/gettext/default.pot | 48 ++++++++------- priv/gettext/en/LC_MESSAGES/default.po | 48 ++++++++------- 9 files changed, 187 insertions(+), 84 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 510cd1d1..64a93a8b 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -45,7 +45,8 @@ "Bash(mix deps.get:*)", "Bash(ls:*)", "WebFetch(domain:raw.githubusercontent.com)", - "WebFetch(domain:github.com)" + "WebFetch(domain:github.com)", + "WebFetch(domain:hex.pm)" ] }, "enableAllProjectMcpServers": false diff --git a/lib/music_library_web/components/core_components.ex b/lib/music_library_web/components/core_components.ex index b75439be..ea3a3749 100644 --- a/lib/music_library_web/components/core_components.ex +++ b/lib/music_library_web/components/core_components.ex @@ -20,6 +20,8 @@ defmodule MusicLibraryWeb.CoreComponents do alias Phoenix.LiveView.JS import Fluxon.Components.Input + import Fluxon.Components.Sheet + import Fluxon.Components.Tabs @doc """ Renders a simple form. @@ -104,30 +106,47 @@ defmodule MusicLibraryWeb.CoreComponents do """ end - attr :title, :string, required: true - attr :data, :map, required: true + attr :id, :string, required: true + attr :items, :list, required: true - def json_viewer(assigns) do + def debug_data_sheet(assigns) do ~H""" -
- {@title} -
{Jason.encode!(@data, pretty: true)}
-
+ <.sheet :if={@items != []} id={@id} placement="right" class="w-md sm:min-w-lg lg:min-w-2xl"> +

+ {gettext("Debug data")} +

+ <.tabs id={"#{@id}-tabs"}> + <.tabs_list active_tab={hd(@items).name} variant="segmented" size="xs"> + <:tab :for={item <- @items} name={item.name}>{item.title} + + <.tabs_panel :for={item <- @items} name={item.name} active={item == hd(@items)}> + <%= if item.type == :json do %> +
+ {format_debug_data(item)} +
+ <% else %> +
{format_debug_data(item)}
+ <% end %> + + + """ end - attr :title, :string, required: true - attr :data, :string, required: true - - def text_viewer(assigns) do - ~H""" -
- {@title} - {@data} -
- """ + defp format_debug_data(%{type: :json, data: data}) do + data + |> Jason.encode!(pretty: true) + |> Lumis.highlight!( + language: "json", + formatter: + {:html_multi_themes, + themes: [light: "github_light", dark: "github_dark"], default_theme: "light-dark()"} + ) + |> Phoenix.HTML.raw() end + defp format_debug_data(%{type: :text, data: data}), do: data + attr :id, :string, required: true attr :on_close, :any, required: false, default: nil attr :open, :boolean, required: false, default: true diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex index a011e592..fe58a8ed 100644 --- a/lib/music_library_web/live/artist_live/show.ex +++ b/lib/music_library_web/live/artist_live/show.ex @@ -120,6 +120,18 @@ defmodule MusicLibraryWeb.ArtistLive.Show do data-slot="icon" /> + <.button + variant="soft" + phx-click={Fluxon.open_dialog("debug-data")} + > + {gettext("Debug data")} + <.icon + name="hero-code-bracket" + class="h-5 w-5" + aria-hidden="true" + data-slot="icon" + /> + <.dropdown id={"actions-#{@artist.musicbrainz_id}"} placement="bottom-end"> <:toggle> <.button variant="soft"> @@ -404,22 +416,39 @@ defmodule MusicLibraryWeb.ArtistLive.Show do - <.json_viewer - :if={@artist_info.musicbrainz_data} - title={gettext("MusicBrainz data")} - data={@artist_info.musicbrainz_data} - /> - - <.json_viewer - :if={@artist_info.discogs_data} - title={gettext("Discogs data")} - data={@artist_info.discogs_data} - /> - - <.json_viewer - :if={@artist_info.wikipedia_data != %{}} - title={gettext("Wikipedia data")} - data={@artist_info.wikipedia_data} + <.debug_data_sheet + id="debug-data" + items={ + Enum.filter( + [ + if(@artist_info.musicbrainz_data, + do: %{ + name: "musicbrainz", + title: gettext("MusicBrainz"), + data: @artist_info.musicbrainz_data, + type: :json + } + ), + if(@artist_info.discogs_data, + do: %{ + name: "discogs", + title: gettext("Discogs"), + data: @artist_info.discogs_data, + type: :json + } + ), + if(@artist_info.wikipedia_data != %{}, + do: %{ + name: "wikipedia", + title: gettext("Wikipedia"), + data: @artist_info.wikipedia_data, + type: :json + } + ) + ], + & &1 + ) + } /> diff --git a/lib/music_library_web/live/collection_live/show.ex b/lib/music_library_web/live/collection_live/show.ex index 9ed8c962..584614f4 100644 --- a/lib/music_library_web/live/collection_live/show.ex +++ b/lib/music_library_web/live/collection_live/show.ex @@ -76,6 +76,18 @@ defmodule MusicLibraryWeb.CollectionLive.Show do data-slot="icon" /> + <.button + variant="soft" + phx-click={Fluxon.open_dialog("debug-data")} + > + {gettext("Debug data")} + <.icon + name="hero-code-bracket" + class="h-5 w-5" + aria-hidden="true" + data-slot="icon" + /> + <.dropdown id={"actions-#{@record.id}"} placement="bottom-end"> <:toggle> <.button variant="soft"> @@ -371,8 +383,18 @@ defmodule MusicLibraryWeb.CollectionLive.Show do section={:collection} /> - <.json_viewer title={gettext("MusicBrainz data")} data={@record.musicbrainz_data} /> - <.text_viewer title={gettext("Record Embedding")} data={@embedding_text} /> + <.debug_data_sheet + id="debug-data" + items={[ + %{ + name: "musicbrainz", + title: gettext("MusicBrainz"), + data: @record.musicbrainz_data, + type: :json + }, + %{name: "embedding", title: gettext("Embedding"), data: @embedding_text, type: :text} + ]} + /> <.live_component id="release-with-tracks" diff --git a/lib/music_library_web/live/wishlist_live/show.ex b/lib/music_library_web/live/wishlist_live/show.ex index 74aac03f..487aa758 100644 --- a/lib/music_library_web/live/wishlist_live/show.ex +++ b/lib/music_library_web/live/wishlist_live/show.ex @@ -48,6 +48,18 @@ defmodule MusicLibraryWeb.WishlistLive.Show do data-slot="icon" /> + <.button + variant="soft" + phx-click={Fluxon.open_dialog("debug-data")} + > + {gettext("Debug data")} + <.icon + name="hero-code-bracket" + class="h-5 w-5" + aria-hidden="true" + data-slot="icon" + /> + <.dropdown id={"actions-#{@record.id}"} placement="bottom-end"> <:toggle> <.button variant="soft"> @@ -347,8 +359,18 @@ defmodule MusicLibraryWeb.WishlistLive.Show do - <.json_viewer title={gettext("MusicBrainz data")} data={@record.musicbrainz_data} /> - <.text_viewer title={gettext("Record Embedding")} data={@embedding_text} /> + <.debug_data_sheet + id="debug-data" + items={[ + %{ + name: "musicbrainz", + title: gettext("MusicBrainz"), + data: @record.musicbrainz_data, + type: :json + }, + %{name: "embedding", title: gettext("Embedding"), data: @embedding_text, type: :text} + ]} + /> <.live_component id="record-chat" diff --git a/mix.exs b/mix.exs index 6db192ee..8e8ebb26 100644 --- a/mix.exs +++ b/mix.exs @@ -99,6 +99,9 @@ defmodule MusicLibrary.MixProject do # Notes {:earmark, "~> 1.4"}, + # Syntax highlighting + {:lumis, "~> 0.1"}, + # Time-zone support - requires mint and castore {:time_zone_info, "~> 0.7.8"}, diff --git a/mix.lock b/mix.lock index 0477fd47..d8bb91c2 100644 --- a/mix.lock +++ b/mix.lock @@ -2,6 +2,7 @@ "bandit": {:hex, :bandit, "1.10.3", "1e5d168fa79ec8de2860d1b4d878d97d4fbbe2fdbe7b0a7d9315a4359d1d4bb9", [:mix], [{:hpax, "~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.18", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "99a52d909c48db65ca598e1962797659e3c0f1d06e825a50c3d75b74a5e2db18"}, "benchee": {:hex, :benchee, "1.5.0", "4d812c31d54b0ec0167e91278e7de3f596324a78a096fd3d0bea68bb0c513b10", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}, {:statistex, "~> 1.1", [hex: :statistex, repo: "hexpm", optional: false]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "5b075393aea81b8ae74eadd1c28b1d87e8a63696c649d8293db7c4df3eb67535"}, "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, + "castore": {:hex, :castore, "1.0.17", "4f9770d2d45fbd91dcf6bd404cf64e7e58fed04fadda0923dc32acca0badffa2", [:mix], [], "hexpm", "12d24b9d80b910dd3953e165636d68f147a31db945d2dcb9365e441f8b5351e5"}, "cc_precompiler": {:hex, :cc_precompiler, "0.1.11", "8c844d0b9fb98a3edea067f94f616b3f6b29b959b6b3bf25fee94ffe34364768", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"}, "circular_buffer": {:hex, :circular_buffer, "1.0.0", "25c004da0cba7bd8bc1bdabded4f9a902d095e20600fd15faf1f2ffbaea18a07", [:mix], [], "hexpm", "c829ec31c13c7bafd1f546677263dff5bfb006e929f25635878ac3cfba8749e5"}, "cloak": {:hex, :cloak, "1.1.4", "aba387b22ea4d80d92d38ab1890cc528b06e0e7ef2a4581d71c3fdad59e997e7", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "92b20527b9aba3d939fab0dd32ce592ff86361547cfdc87d74edce6f980eb3d7"}, @@ -32,6 +33,7 @@ "lazy_html": {:hex, :lazy_html, "0.1.10", "ffe42a0b4e70859cf21a33e12a251e0c76c1dff76391609bd56702a0ef5bc429", [:make, :mix], [{:cc_precompiler, "~> 0.1", [hex: :cc_precompiler, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.9.0", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:fine, "~> 0.1.0", [hex: :fine, repo: "hexpm", optional: false]}], "hexpm", "50f67e5faa09d45a99c1ddf3fac004f051997877dc8974c5797bb5ccd8e27058"}, "live_debugger": {:hex, :live_debugger, "0.6.0", "77fcbb11b1909ff6edc29a755aa5f14cb176d188b24593526b3e482be7519990", [:mix], [{:file_system, "~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:igniter, ">= 0.5.40 and < 1.0.0-0", [hex: :igniter, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.7", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.20.8 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}], "hexpm", "ad2458f4acd8b86e15b1cf7aef3304907e858f4ac35644986e5c958ea993ffb3"}, "live_toast": {:hex, :live_toast, "0.8.0", "d7e24801a9a966d8e48872767ac33c50fc14640ac5272128becfc534fabd99b7", [:mix], [{:ecto, ">= 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:gettext, ">= 0.26.2", [hex: :gettext, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.7.19", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_live_view, ">= 1.0.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}], "hexpm", "7e64435131b7731698908d59f7ba9f5092df8a3720814f26edf57e99d97a803c"}, + "lumis": {:hex, :lumis, "0.1.1", "cafa14b023d5ef69cf13f12c57cd4ebf1a934c125709ace0f68fb71bf540fc8b", [:mix], [{:nimble_options, "~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:rustler, "~> 0.29", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.6", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "f7b9eb466d496969f07a6d035fcc8017676d1177cd4b06ff09c03773dbe191be"}, "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "mint": {:hex, :mint, "1.7.1", "113fdb2b2f3b59e47c7955971854641c61f378549d73e829e1768de90fc1abf1", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "fceba0a4d0f24301ddee3024ae116df1c3f4bb7a563a731f45fdfeb9d39a231b"}, "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, @@ -58,6 +60,7 @@ "recon": {:hex, :recon, "2.5.6", "9052588e83bfedfd9b72e1034532aee2a5369d9d9343b61aeb7fbce761010741", [:mix, :rebar3], [], "hexpm", "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0"}, "req": {:hex, :req, "0.5.17", "0096ddd5b0ed6f576a03dde4b158a0c727215b15d2795e59e0916c6971066ede", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "0b8bc6ffdfebbc07968e59d3ff96d52f2202d0536f10fef4dc11dc02a2a43e39"}, "rewrite": {:hex, :rewrite, "1.2.0", "80220eb14010e175b67c939397e1a8cdaa2c32db6e2e0a9d5e23e45c0414ce21", [:mix], [{:glob_ex, "~> 0.1", [hex: :glob_ex, repo: "hexpm", optional: false]}, {:sourceror, "~> 1.0", [hex: :sourceror, repo: "hexpm", optional: false]}, {:text_diff, "~> 0.1", [hex: :text_diff, repo: "hexpm", optional: false]}], "hexpm", "a1cd702bbb9d51613ab21091f04a386d750fc6f4516b81900df082d78b2d8c50"}, + "rustler_precompiled": {:hex, :rustler_precompiled, "0.8.4", "700a878312acfac79fb6c572bb8b57f5aae05fe1cf70d34b5974850bbf2c05bf", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "3b33d99b540b15f142ba47944f7a163a25069f6d608783c321029bc1ffb09514"}, "sentry": {:hex, :sentry, "11.0.4", "60371c96cefd247e0fc98840bba2648f64f19aa0b8db8e938f5a98421f55b619", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: true]}, {:igniter, "~> 0.5", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_options, "~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_ownership, "~> 0.3.0 or ~> 1.0", [hex: :nimble_ownership, repo: "hexpm", optional: false]}, {:opentelemetry, ">= 0.0.0", [hex: :opentelemetry, repo: "hexpm", optional: true]}, {:opentelemetry_api, ">= 0.0.0", [hex: :opentelemetry_api, repo: "hexpm", optional: true]}, {:opentelemetry_exporter, ">= 0.0.0", [hex: :opentelemetry_exporter, repo: "hexpm", optional: true]}, {:opentelemetry_semantic_conventions, ">= 0.0.0", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_live_view, "~> 0.20 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.6", [hex: :plug, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "feaafc284dc204c82aadaddc884227aeaa3480decb274d30e184b9d41a700c66"}, "sourceror": {:hex, :sourceror, "1.11.0", "df2cdaffdc323e804009ff50b50bb31e6f2d6e116d936ccf22981f592594d624", [:mix], [], "hexpm", "6e26f572bdfc21d7ad397f596b4cfbbf31d7112126fe3e902c120947073231a8"}, "spitfire": {:hex, :spitfire, "0.3.7", "d6051f94f554d33d038ab3c1d7e017293ae30429cc6b267b08cb6ad69e35e9a3", [:mix], [], "hexpm", "798ff97db02477b05fa3db8e2810cebda6ed5d90c6de6b21aa65abd577599744"}, diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index 8c149254..640e3859 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -238,13 +238,6 @@ msgstr "" msgid "Copy MusicBrainz ID to clipboard" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex -#: lib/music_library_web/live/collection_live/show.ex -#: lib/music_library_web/live/wishlist_live/show.ex -#, elixir-autogen, elixir-format -msgid "MusicBrainz data" -msgstr "" - #: lib/music_library_web/live/stats_live/index.ex #, elixir-autogen, elixir-format msgid "Scrobble activity" @@ -805,11 +798,6 @@ msgstr "" msgid "Read more" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex -#, elixir-autogen, elixir-format -msgid "Discogs data" -msgstr "" - #: lib/music_library_web/components/record_components.ex #: lib/music_library_web/components/scrobble_components.ex #, elixir-autogen, elixir-format @@ -1631,12 +1619,6 @@ msgstr "" msgid "Running optimize..." msgstr "" -#: lib/music_library_web/live/collection_live/show.ex -#: lib/music_library_web/live/wishlist_live/show.ex -#, elixir-autogen, elixir-format -msgid "Record Embedding" -msgstr "" - #: lib/music_library_web/live/collection_live/show.ex #: lib/music_library_web/live/wishlist_live/show.ex #, elixir-autogen, elixir-format @@ -1799,11 +1781,6 @@ msgstr "" msgid "Refresh Wikipedia" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex -#, elixir-autogen, elixir-format -msgid "Wikipedia data" -msgstr "" - #: lib/music_library_web/live/artist_live/show.ex #, elixir-autogen, elixir-format msgid "Wikipedia data refreshed successfully" @@ -1996,6 +1973,7 @@ msgstr "" msgid "Added %{date}" msgstr "" +#: lib/music_library_web/live/artist_live/show.ex #: lib/music_library_web/live/collection_live/show.ex #: lib/music_library_web/live/wishlist_live/show.ex #, elixir-autogen, elixir-format @@ -2019,3 +1997,27 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Copy MB ID" msgstr "" + +#: lib/music_library_web/components/core_components.ex +#: lib/music_library_web/live/artist_live/show.ex +#: lib/music_library_web/live/collection_live/show.ex +#: lib/music_library_web/live/wishlist_live/show.ex +#, elixir-autogen, elixir-format +msgid "Debug data" +msgstr "" + +#: lib/music_library_web/live/artist_live/show.ex +#, elixir-autogen, elixir-format +msgid "Discogs" +msgstr "" + +#: lib/music_library_web/live/collection_live/show.ex +#: lib/music_library_web/live/wishlist_live/show.ex +#, elixir-autogen, elixir-format +msgid "Embedding" +msgstr "" + +#: lib/music_library_web/live/artist_live/show.ex +#, elixir-autogen, elixir-format +msgid "Wikipedia" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 6c3160bb..6aa1b64d 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -238,13 +238,6 @@ msgstr "" msgid "Copy MusicBrainz ID to clipboard" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex -#: lib/music_library_web/live/collection_live/show.ex -#: lib/music_library_web/live/wishlist_live/show.ex -#, elixir-autogen, elixir-format -msgid "MusicBrainz data" -msgstr "" - #: lib/music_library_web/live/stats_live/index.ex #, elixir-autogen, elixir-format msgid "Scrobble activity" @@ -805,11 +798,6 @@ msgstr "" msgid "Read more" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex -#, elixir-autogen, elixir-format -msgid "Discogs data" -msgstr "" - #: lib/music_library_web/components/record_components.ex #: lib/music_library_web/components/scrobble_components.ex #, elixir-autogen, elixir-format @@ -1631,12 +1619,6 @@ msgstr "" msgid "Running optimize..." msgstr "" -#: lib/music_library_web/live/collection_live/show.ex -#: lib/music_library_web/live/wishlist_live/show.ex -#, elixir-autogen, elixir-format -msgid "Record Embedding" -msgstr "" - #: lib/music_library_web/live/collection_live/show.ex #: lib/music_library_web/live/wishlist_live/show.ex #, elixir-autogen, elixir-format, fuzzy @@ -1799,11 +1781,6 @@ msgstr "" msgid "Refresh Wikipedia" msgstr "" -#: lib/music_library_web/live/artist_live/show.ex -#, elixir-autogen, elixir-format -msgid "Wikipedia data" -msgstr "" - #: lib/music_library_web/live/artist_live/show.ex #, elixir-autogen, elixir-format, fuzzy msgid "Wikipedia data refreshed successfully" @@ -1996,6 +1973,7 @@ msgstr "" msgid "Added %{date}" msgstr "" +#: lib/music_library_web/live/artist_live/show.ex #: lib/music_library_web/live/collection_live/show.ex #: lib/music_library_web/live/wishlist_live/show.ex #, elixir-autogen, elixir-format, fuzzy @@ -2019,3 +1997,27 @@ msgstr "" #, elixir-autogen, elixir-format, fuzzy msgid "Copy MB ID" msgstr "" + +#: lib/music_library_web/components/core_components.ex +#: lib/music_library_web/live/artist_live/show.ex +#: lib/music_library_web/live/collection_live/show.ex +#: lib/music_library_web/live/wishlist_live/show.ex +#, elixir-autogen, elixir-format +msgid "Debug data" +msgstr "" + +#: lib/music_library_web/live/artist_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Discogs" +msgstr "" + +#: lib/music_library_web/live/collection_live/show.ex +#: lib/music_library_web/live/wishlist_live/show.ex +#, elixir-autogen, elixir-format +msgid "Embedding" +msgstr "" + +#: lib/music_library_web/live/artist_live/show.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Wikipedia" +msgstr ""