From f223d6d739aafb0b35522ec614d2fdc37500ad38 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 10 May 2025 08:08:42 +0100 Subject: [PATCH] Rename scrobble -> scrobble_release and tighten options check --- lib/music_library/scrobble_activity.ex | 16 ++++++++-------- .../components/release_component.ex | 2 +- priv/gettext/default.pot | 10 ++++++++++ priv/gettext/en/LC_MESSAGES/default.po | 10 ++++++++++ 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/lib/music_library/scrobble_activity.ex b/lib/music_library/scrobble_activity.ex index 43ba971a..0c260fb9 100644 --- a/lib/music_library/scrobble_activity.ex +++ b/lib/music_library/scrobble_activity.ex @@ -7,29 +7,29 @@ defmodule MusicLibrary.ScrobbleActivity do Secrets.get("last_fm_session_key") !== nil end - def scrobble(release_with_tracks, opts) when is_list(opts) do - case opts do - [started_at: _, finished_at: _] -> + def scrobble_release(release_with_tracks, opts) when is_list(opts) do + case Enum.sort(opts) do + [finished_at: _, started_at: _] -> raise ArgumentError, """ Cannot scobble a release with both started_at and finished_at. Remove either of them. """ [started_at: started_at] -> - scrobble(release_with_tracks, {:started_at, started_at}) + scrobble_release(release_with_tracks, {:started_at, started_at}) [finished_at: finished_at] -> - scrobble(release_with_tracks, {:finished_at, finished_at}) + scrobble_release(release_with_tracks, {:finished_at, finished_at}) end end - def scrobble(release_with_tracks, {:finished_at, finished_at}) do + def scrobble_release(release_with_tracks, {:finished_at, finished_at}) do release_duration = Release.release_duration(release_with_tracks) started_at = DateTime.add(finished_at, -release_duration, :millisecond) - scrobble(release_with_tracks, {:started_at, started_at}) + scrobble_release(release_with_tracks, {:started_at, started_at}) end - def scrobble(release_with_tracks, {:started_at, started_at}) do + def scrobble_release(release_with_tracks, {:started_at, started_at}) do session_key = Secrets.get!("last_fm_session_key").value {scrobbles, _finished_at} = diff --git a/lib/music_library_web/components/release_component.ex b/lib/music_library_web/components/release_component.ex index fcd28e00..ceb1e4ff 100644 --- a/lib/music_library_web/components/release_component.ex +++ b/lib/music_library_web/components/release_component.ex @@ -124,7 +124,7 @@ defmodule MusicLibraryWeb.ReleaseComponent do if release_with_tracks = release_with_tracks_async_result && release_with_tracks_async_result.result do - case ScrobbleActivity.scrobble(release_with_tracks, finished_at: DateTime.utc_now()) do + case ScrobbleActivity.scrobble_release(release_with_tracks, finished_at: DateTime.utc_now()) do {:ok, _} -> {:noreply, socket diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index 73b97016..a9fb389a 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -809,3 +809,13 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Scrobble release" msgstr "" + +#: lib/music_library_web/components/release_component.ex +#, elixir-autogen, elixir-format +msgid "Disc scrobbled successfully" +msgstr "" + +#: lib/music_library_web/components/release_component.ex +#, elixir-autogen, elixir-format +msgid "Error scrobbling disc" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 3145e847..0224bd27 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -809,3 +809,13 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Scrobble release" msgstr "" + +#: lib/music_library_web/components/release_component.ex +#, elixir-autogen, elixir-format +msgid "Disc scrobbled successfully" +msgstr "" + +#: lib/music_library_web/components/release_component.ex +#, elixir-autogen, elixir-format, fuzzy +msgid "Error scrobbling disc" +msgstr ""