diff --git a/config/config.exs b/config/config.exs index b3f54d13..04308869 100644 --- a/config/config.exs +++ b/config/config.exs @@ -15,7 +15,10 @@ config :music_library, ecto_repos: [MusicLibrary.Repo, MusicLibrary.ErrorRepo], generators: [timestamp_type: :utc_datetime, binary_id: true] -config :music_library, MusicLibraryWeb, login_password: "change me", api_token: "change me" +config :music_library, MusicLibraryWeb, + login_password: "change me", + api_token: "change me", + timezone: "Europe/London" # Configures the endpoint config :music_library, MusicLibraryWeb.Endpoint, diff --git a/config/runtime.exs b/config/runtime.exs index b27c6bba..f4a185c2 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -32,6 +32,10 @@ if openai_key = System.get_env("OPENAI_KEY") do config :music_library, OpenAI, api_key: openai_key end +if timezone = System.get_env("TIMEZONE") do + config :music_library, :timezone, timezone +end + config :music_library, MusicLibrary.Repo, load_extensions: [ MusicLibrary.Repo.extension_path("unicode") diff --git a/fly.toml b/fly.toml index 77b54344..e2ddb586 100644 --- a/fly.toml +++ b/fly.toml @@ -16,6 +16,7 @@ PHX_HOST = 'music-library.claudio-ortolina.org' PORT = '8080' LAST_FM_USER = 'cloud8421' POOL_SIZE = '5' +TIMEZONE = 'Europe/London' [[mounts]] source = 'music_library' diff --git a/lib/music_library_web/live/stats_live/index.ex b/lib/music_library_web/live/stats_live/index.ex index 6f1941b2..be3095b2 100644 --- a/lib/music_library_web/live/stats_live/index.ex +++ b/lib/music_library_web/live/stats_live/index.ex @@ -10,8 +10,6 @@ defmodule MusicLibraryWeb.StatsLive.Index do attr :title, :string, required: true attr :class, :string - @timezone "Europe/London" - defp album_preview(assigns) do ~H"""
assign(:timezone, resolve_timezone!()) |> stream_configure(:recent_tracks, dom_id: fn track -> "track-#{track.scrobbled_at_uts}" end ) @@ -173,7 +172,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do Enum.map(recent_tracks, fn t -> %{ t - | scrobbled_at_label: localize_scrobbled_at(t.scrobbled_at_uts, @timezone) + | scrobbled_at_label: localize_scrobbled_at(t.scrobbled_at_uts, socket.assigns.timezone) } end) @@ -272,4 +271,9 @@ defmodule MusicLibraryWeb.StatsLive.Index do JS.hide(to: "#actions-#{track_id}") |> JS.remove_class("pointer-events-none", to: "#scrobble-activity > li") end + + defp resolve_timezone! do + Application.get_env(:music_library, MusicLibraryWeb) + |> Keyword.fetch!(:timezone) + end end