Use localized scrobbled_at label
This commit is contained in:
@@ -10,6 +10,8 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
attr :title, :string, required: true
|
||||
attr :class, :string
|
||||
|
||||
@timezone "Europe/London"
|
||||
|
||||
defp album_preview(assigns) do
|
||||
~H"""
|
||||
<div
|
||||
@@ -167,17 +169,25 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
end
|
||||
|
||||
defp assign_scrobble_activity(socket, recent_tracks) do
|
||||
recent_release_ids = recent_release_ids(recent_tracks)
|
||||
localized_recent_tracks =
|
||||
Enum.map(recent_tracks, fn t ->
|
||||
%{
|
||||
t
|
||||
| scrobbled_at_label: localize_scrobbled_at(t.scrobbled_at_uts, @timezone)
|
||||
}
|
||||
end)
|
||||
|
||||
recent_release_ids = recent_release_ids(localized_recent_tracks)
|
||||
|
||||
collected_releases = Collection.collected_releases(recent_release_ids)
|
||||
wishlisted_releases = Wishlist.wishlisted_releases(recent_release_ids)
|
||||
|
||||
all_artist_ids = Artists.get_all_artist_ids()
|
||||
recent_artist_ids = recent_artist_ids(recent_tracks)
|
||||
recent_artist_ids = recent_artist_ids(localized_recent_tracks)
|
||||
artist_ids = MapSet.intersection(all_artist_ids, recent_artist_ids)
|
||||
|
||||
recent_albums =
|
||||
recent_tracks
|
||||
localized_recent_tracks
|
||||
|> Enum.uniq_by(fn t -> t.album end)
|
||||
|> Enum.map(fn t ->
|
||||
%{
|
||||
@@ -190,7 +200,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
end)
|
||||
|
||||
socket
|
||||
|> stream(:recent_tracks, recent_tracks, reset: true)
|
||||
|> stream(:recent_tracks, localized_recent_tracks, reset: true)
|
||||
|> stream(:recent_albums, recent_albums, reset: true)
|
||||
|> assign(
|
||||
collected_releases: collected_releases,
|
||||
@@ -220,6 +230,15 @@ defmodule MusicLibraryWeb.StatsLive.Index do
|
||||
end)
|
||||
end
|
||||
|
||||
defp localize_scrobbled_at(uts, timezone) do
|
||||
ldt =
|
||||
uts
|
||||
|> DateTime.from_unix!()
|
||||
|> DateTime.shift_zone!(timezone)
|
||||
|
||||
"#{ldt.day}/#{ldt.month}/#{ldt.year} #{ldt.hour}:#{ldt.minute}"
|
||||
end
|
||||
|
||||
# The Tailwind build step requires all needed classes to be explicitly referenced
|
||||
# in the source code, and not dynamically generated. This implies that one cannot
|
||||
# (for example) interpolate a number in a class name.
|
||||
|
||||
Reference in New Issue
Block a user