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 ""