Rename scrobble -> scrobble_release and tighten options check
This commit is contained in:
@@ -7,29 +7,29 @@ defmodule MusicLibrary.ScrobbleActivity do
|
|||||||
Secrets.get("last_fm_session_key") !== nil
|
Secrets.get("last_fm_session_key") !== nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def scrobble(release_with_tracks, opts) when is_list(opts) do
|
def scrobble_release(release_with_tracks, opts) when is_list(opts) do
|
||||||
case opts do
|
case Enum.sort(opts) do
|
||||||
[started_at: _, finished_at: _] ->
|
[finished_at: _, started_at: _] ->
|
||||||
raise ArgumentError, """
|
raise ArgumentError, """
|
||||||
Cannot scobble a release with both started_at and finished_at.
|
Cannot scobble a release with both started_at and finished_at.
|
||||||
Remove either of them.
|
Remove either of them.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[started_at: started_at] ->
|
[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] ->
|
[finished_at: finished_at] ->
|
||||||
scrobble(release_with_tracks, {:finished_at, finished_at})
|
scrobble_release(release_with_tracks, {:finished_at, finished_at})
|
||||||
end
|
end
|
||||||
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)
|
release_duration = Release.release_duration(release_with_tracks)
|
||||||
started_at = DateTime.add(finished_at, -release_duration, :millisecond)
|
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
|
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
|
session_key = Secrets.get!("last_fm_session_key").value
|
||||||
|
|
||||||
{scrobbles, _finished_at} =
|
{scrobbles, _finished_at} =
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ defmodule MusicLibraryWeb.ReleaseComponent do
|
|||||||
|
|
||||||
if release_with_tracks =
|
if release_with_tracks =
|
||||||
release_with_tracks_async_result && release_with_tracks_async_result.result do
|
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, _} ->
|
{:ok, _} ->
|
||||||
{:noreply,
|
{:noreply,
|
||||||
socket
|
socket
|
||||||
|
|||||||
@@ -809,3 +809,13 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Scrobble release"
|
msgid "Scrobble release"
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|||||||
@@ -809,3 +809,13 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Scrobble release"
|
msgid "Scrobble release"
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|||||||
Reference in New Issue
Block a user