Add stats for last 7 days
This commit is contained in:
@@ -343,11 +343,12 @@ defmodule MusicLibrary.ScrobbleActivity do
|
|||||||
releases.
|
releases.
|
||||||
"""
|
"""
|
||||||
def get_top_albums_by_period(opts) do
|
def get_top_albums_by_period(opts) do
|
||||||
period = Keyword.get(opts, :period, :last_30_days)
|
period = Keyword.get(opts, :period, :last_7_days)
|
||||||
|
|
||||||
albums =
|
albums =
|
||||||
case period do
|
case period do
|
||||||
:all_time -> get_top_albums(opts)
|
:all_time -> get_top_albums(opts)
|
||||||
|
:last_7_days -> get_top_albums_by_days(7, opts)
|
||||||
:last_30_days -> get_top_albums_by_days(30, opts)
|
:last_30_days -> get_top_albums_by_days(30, opts)
|
||||||
:last_90_days -> get_top_albums_by_days(90, opts)
|
:last_90_days -> get_top_albums_by_days(90, opts)
|
||||||
:last_365_days -> get_top_albums_by_days(365, opts)
|
:last_365_days -> get_top_albums_by_days(365, opts)
|
||||||
@@ -373,10 +374,11 @@ defmodule MusicLibrary.ScrobbleActivity do
|
|||||||
Gets top artists for a time period (30, 90, 365 days) and all time.
|
Gets top artists for a time period (30, 90, 365 days) and all time.
|
||||||
"""
|
"""
|
||||||
def get_top_artists_by_period(opts) do
|
def get_top_artists_by_period(opts) do
|
||||||
period = Keyword.get(opts, :period, :last_30_days)
|
period = Keyword.get(opts, :period, :last_7_days)
|
||||||
|
|
||||||
case period do
|
case period do
|
||||||
:all_time -> get_top_artists(opts)
|
:all_time -> get_top_artists(opts)
|
||||||
|
:last_7_days -> get_top_artists_by_days(7, opts)
|
||||||
:last_30_days -> get_top_artists_by_days(30, opts)
|
:last_30_days -> get_top_artists_by_days(30, opts)
|
||||||
:last_90_days -> get_top_artists_by_days(90, opts)
|
:last_90_days -> get_top_artists_by_days(90, opts)
|
||||||
:last_365_days -> get_top_artists_by_days(365, opts)
|
:last_365_days -> get_top_artists_by_days(365, opts)
|
||||||
|
|||||||
@@ -20,13 +20,21 @@ defmodule MusicLibraryWeb.StatsLive.TopAlbums do
|
|||||||
</h1>
|
</h1>
|
||||||
<.tabs class="mt-4">
|
<.tabs class="mt-4">
|
||||||
<.tabs_list active_tab={name_from_period(@period)} variant="segmented" size="xs">
|
<.tabs_list active_tab={name_from_period(@period)} variant="segmented" size="xs">
|
||||||
|
<:tab
|
||||||
|
class="flex-1"
|
||||||
|
name="top_albums_last_7_days"
|
||||||
|
phx-click={JS.push("set_period", value: %{period: "last_7_days"})}
|
||||||
|
phx-target={@myself}
|
||||||
|
>
|
||||||
|
{gettext("7d")}
|
||||||
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
name="top_albums_last_30_days"
|
name="top_albums_last_30_days"
|
||||||
phx-click={JS.push("set_period", value: %{period: "last_30_days"})}
|
phx-click={JS.push("set_period", value: %{period: "last_30_days"})}
|
||||||
phx-target={@myself}
|
phx-target={@myself}
|
||||||
>
|
>
|
||||||
{gettext("30 days")}
|
{gettext("30d")}
|
||||||
</:tab>
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
@@ -34,7 +42,7 @@ defmodule MusicLibraryWeb.StatsLive.TopAlbums do
|
|||||||
phx-click={JS.push("set_period", value: %{period: "last_90_days"})}
|
phx-click={JS.push("set_period", value: %{period: "last_90_days"})}
|
||||||
phx-target={@myself}
|
phx-target={@myself}
|
||||||
>
|
>
|
||||||
{gettext("90 days")}
|
{gettext("90d")}
|
||||||
</:tab>
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
@@ -42,7 +50,7 @@ defmodule MusicLibraryWeb.StatsLive.TopAlbums do
|
|||||||
phx-click={JS.push("set_period", value: %{period: "last_365_days"})}
|
phx-click={JS.push("set_period", value: %{period: "last_365_days"})}
|
||||||
phx-target={@myself}
|
phx-target={@myself}
|
||||||
>
|
>
|
||||||
{gettext("Last year")}
|
{gettext("1y")}
|
||||||
</:tab>
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
@@ -76,7 +84,7 @@ defmodule MusicLibraryWeb.StatsLive.TopAlbums do
|
|||||||
def mount(socket) do
|
def mount(socket) do
|
||||||
{:ok,
|
{:ok,
|
||||||
socket
|
socket
|
||||||
|> assign(:period, :last_30_days)}
|
|> assign(:period, :last_7_days)}
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
|
|||||||
@@ -20,13 +20,21 @@ defmodule MusicLibraryWeb.StatsLive.TopArtists do
|
|||||||
</h1>
|
</h1>
|
||||||
<.tabs class="mt-4">
|
<.tabs class="mt-4">
|
||||||
<.tabs_list active_tab={name_from_period(@period)} variant="segmented" size="xs">
|
<.tabs_list active_tab={name_from_period(@period)} variant="segmented" size="xs">
|
||||||
|
<:tab
|
||||||
|
class="flex-1"
|
||||||
|
name="top_artists_last_7_days"
|
||||||
|
phx-click={JS.push("set_period", value: %{period: "last_7_days"})}
|
||||||
|
phx-target={@myself}
|
||||||
|
>
|
||||||
|
{gettext("7d")}
|
||||||
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
name="top_artists_last_30_days"
|
name="top_artists_last_30_days"
|
||||||
phx-click={JS.push("set_period", value: %{period: "last_30_days"})}
|
phx-click={JS.push("set_period", value: %{period: "last_30_days"})}
|
||||||
phx-target={@myself}
|
phx-target={@myself}
|
||||||
>
|
>
|
||||||
{gettext("30 days")}
|
{gettext("30d")}
|
||||||
</:tab>
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
@@ -34,7 +42,7 @@ defmodule MusicLibraryWeb.StatsLive.TopArtists do
|
|||||||
phx-click={JS.push("set_period", value: %{period: "last_90_days"})}
|
phx-click={JS.push("set_period", value: %{period: "last_90_days"})}
|
||||||
phx-target={@myself}
|
phx-target={@myself}
|
||||||
>
|
>
|
||||||
{gettext("90 days")}
|
{gettext("90d")}
|
||||||
</:tab>
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
@@ -42,7 +50,7 @@ defmodule MusicLibraryWeb.StatsLive.TopArtists do
|
|||||||
phx-click={JS.push("set_period", value: %{period: "last_365_days"})}
|
phx-click={JS.push("set_period", value: %{period: "last_365_days"})}
|
||||||
phx-target={@myself}
|
phx-target={@myself}
|
||||||
>
|
>
|
||||||
{gettext("Last year")}
|
{gettext("1y")}
|
||||||
</:tab>
|
</:tab>
|
||||||
<:tab
|
<:tab
|
||||||
class="flex-1"
|
class="flex-1"
|
||||||
@@ -72,7 +80,7 @@ defmodule MusicLibraryWeb.StatsLive.TopArtists do
|
|||||||
def mount(socket) do
|
def mount(socket) do
|
||||||
{:ok,
|
{:ok,
|
||||||
socket
|
socket
|
||||||
|> assign(:period, :last_30_days)}
|
|> assign(:period, :last_7_days)}
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
|
|||||||
+24
-18
@@ -887,12 +887,6 @@ msgstr ""
|
|||||||
msgid "Top Albums"
|
msgid "Top Albums"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/music_library_web/live/stats_live/top_albums.ex
|
|
||||||
#: lib/music_library_web/live/stats_live/top_artists.ex
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Last year"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/music_library_web/components/record_components.ex
|
#: lib/music_library_web/components/record_components.ex
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Wishlisted on"
|
msgid "Wishlisted on"
|
||||||
@@ -1268,18 +1262,6 @@ msgstr ""
|
|||||||
msgid "Data sourced from"
|
msgid "Data sourced from"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/music_library_web/live/stats_live/top_albums.ex
|
|
||||||
#: lib/music_library_web/live/stats_live/top_artists.ex
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "30 days"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/music_library_web/live/stats_live/top_albums.ex
|
|
||||||
#: lib/music_library_web/live/stats_live/top_artists.ex
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "90 days"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/music_library_web/components/record_form.ex
|
#: lib/music_library_web/components/record_form.ex
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rotate colors"
|
msgid "Rotate colors"
|
||||||
@@ -1393,3 +1375,27 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Read"
|
msgid "Read"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "1y"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "30d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "7d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "90d"
|
||||||
|
msgstr ""
|
||||||
|
|||||||
@@ -887,12 +887,6 @@ msgstr ""
|
|||||||
msgid "Top Albums"
|
msgid "Top Albums"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/music_library_web/live/stats_live/top_albums.ex
|
|
||||||
#: lib/music_library_web/live/stats_live/top_artists.ex
|
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
|
||||||
msgid "Last year"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/music_library_web/components/record_components.ex
|
#: lib/music_library_web/components/record_components.ex
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Wishlisted on"
|
msgid "Wishlisted on"
|
||||||
@@ -1268,18 +1262,6 @@ msgstr ""
|
|||||||
msgid "Data sourced from"
|
msgid "Data sourced from"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/music_library_web/live/stats_live/top_albums.ex
|
|
||||||
#: lib/music_library_web/live/stats_live/top_artists.ex
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "30 days"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/music_library_web/live/stats_live/top_albums.ex
|
|
||||||
#: lib/music_library_web/live/stats_live/top_artists.ex
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "90 days"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/music_library_web/components/record_form.ex
|
#: lib/music_library_web/components/record_form.ex
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Rotate colors"
|
msgid "Rotate colors"
|
||||||
@@ -1393,3 +1375,27 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Read"
|
msgid "Read"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "1y"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "30d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "7d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/live/stats_live/top_albums.ex
|
||||||
|
#: lib/music_library_web/live/stats_live/top_artists.ex
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "90d"
|
||||||
|
msgstr ""
|
||||||
|
|||||||
Reference in New Issue
Block a user