From ad8fdea4b034bea16917485237162e1cbffeaf51 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 22 May 2021 14:32:49 -0500 Subject: Cycles: Pleroma.User.avatar_url/2 --> Pleroma.User.Media.avatar_url/2 Reduces cycles in lib/pleroma/web/views/email_view.ex --- lib/pleroma/user.ex | 26 +++++--------------------- lib/pleroma/user/media.ex | 27 +++++++++++++++++++++++++++ lib/pleroma/web/views/email_view.ex | 2 +- 3 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 lib/pleroma/user/media.ex diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 5057bb3c3..a7c930dee 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -27,13 +27,13 @@ defmodule Pleroma.User do alias Pleroma.Repo alias Pleroma.User alias Pleroma.UserRelationship - alias Pleroma.Web alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils + alias Pleroma.Web.Endpoint alias Pleroma.Web.OAuth alias Pleroma.Web.RelMe alias Pleroma.Workers.BackgroundWorker @@ -352,27 +352,11 @@ defmodule Pleroma.User do def invisible?(%User{invisible: true}), do: true def invisible?(_), do: false - def avatar_url(user, options \\ []) do - case user.avatar do - %{"url" => [%{"href" => href} | _]} -> - href - - _ -> - unless options[:no_default] do - Config.get([:assets, :default_user_avatar], "#{Web.Endpoint.url()}/images/avi.png") - end - end - end - - def banner_url(user, options \\ []) do - case user.banner do - %{"url" => [%{"href" => href} | _]} -> href - _ -> !options[:no_default] && "#{Web.Endpoint.url()}/images/banner.png" - end - end + defdelegate avatar_url(user, options \\ []), to: User.Media + defdelegate banner_url(user, options \\ []), to: User.Media # Should probably be renamed or removed - def ap_id(%User{nickname: nickname}), do: "#{Web.Endpoint.url()}/users/#{nickname}" + def ap_id(%User{nickname: nickname}), do: "#{Endpoint.url()}/users/#{nickname}" def ap_followers(%User{follower_address: fa}) when is_binary(fa), do: fa def ap_followers(%User{} = user), do: "#{ap_id(user)}/followers" @@ -1162,7 +1146,7 @@ defmodule Pleroma.User do @spec get_by_nickname(String.t()) :: User.t() | nil def get_by_nickname(nickname) do Repo.get_by(User, nickname: nickname) || - if Regex.match?(~r(@#{Pleroma.Web.Endpoint.host()})i, nickname) do + if Regex.match?(~r(@#{Endpoint.host()})i, nickname) do Repo.get_by(User, nickname: local_nickname(nickname)) end end diff --git a/lib/pleroma/user/media.ex b/lib/pleroma/user/media.ex new file mode 100644 index 000000000..9e87f3cc5 --- /dev/null +++ b/lib/pleroma/user/media.ex @@ -0,0 +1,27 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.User.Media do + alias Pleroma.Config + alias Pleroma.Web.Endpoint + + def avatar_url(user, options \\ []) do + case user.avatar do + %{"url" => [%{"href" => href} | _]} -> + href + + _ -> + unless options[:no_default] do + Config.get([:assets, :default_user_avatar], "#{Endpoint.url()}/images/avi.png") + end + end + end + + def banner_url(user, options \\ []) do + case user.banner do + %{"url" => [%{"href" => href} | _]} -> href + _ -> !options[:no_default] && "#{Endpoint.url()}/images/banner.png" + end + end +end diff --git a/lib/pleroma/web/views/email_view.ex b/lib/pleroma/web/views/email_view.ex index f7659b994..0cb892a55 100644 --- a/lib/pleroma/web/views/email_view.ex +++ b/lib/pleroma/web/views/email_view.ex @@ -8,7 +8,7 @@ defmodule Pleroma.Web.EmailView do import Phoenix.HTML.Link def avatar_url(user) do - Pleroma.User.avatar_url(user) + Pleroma.User.Media.avatar_url(user) end def format_date(date) when is_binary(date) do -- cgit v1.2.3