aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/upload.ex9
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex8
-rw-r--r--lib/pleroma/web/web.ex19
3 files changed, 21 insertions, 15 deletions
diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex
index fdda2634e..158656e92 100644
--- a/lib/pleroma/upload.ex
+++ b/lib/pleroma/upload.ex
@@ -20,13 +20,6 @@ defmodule Pleroma.Upload do
end
defp url_for(file) do
- host =
- Application.get_env(:pleroma, Pleroma.Web.Endpoint)
- |> Keyword.fetch!(:url)
- |> Keyword.fetch!(:host)
-
- protocol = Application.get_env(:pleroma, Pleroma.Web.Endpoint) |> Keyword.fetch!(:protocol)
-
- "#{protocol}://#{host}/media/#{file}"
+ "#{Pleroma.Web.base_url()}/media/#{file}"
end
end
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index f7ba1bb37..6c8250de8 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -29,13 +29,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
end
def generate_id(type) do
- host =
- Application.get_env(:pleroma, Pleroma.Web.Endpoint)
- |> Keyword.fetch!(:url)
- |> Keyword.fetch!(:host)
-
- protocol = Application.get_env(:pleroma, Pleroma.Web.Endpoint) |> Keyword.fetch!(:protocol)
- "#{protocol}://#{host}/#{type}/#{Ecto.UUID.generate}"
+ "#{Pleroma.Web.base_url()}/#{type}/#{Ecto.UUID.generate}"
end
def fetch_public_activities(opts \\ %{}) do
diff --git a/lib/pleroma/web/web.ex b/lib/pleroma/web/web.ex
index f392af2ca..d03db2231 100644
--- a/lib/pleroma/web/web.ex
+++ b/lib/pleroma/web/web.ex
@@ -60,4 +60,23 @@ defmodule Pleroma.Web do
defmacro __using__(which) when is_atom(which) do
apply(__MODULE__, which, [])
end
+
+ def base_url do
+ settings = Application.get_env(:pleroma, Pleroma.Web.Endpoint)
+ host =
+ settings
+ |> Keyword.fetch!(:url)
+ |> Keyword.fetch!(:host)
+
+ protocol = settings |> Keyword.fetch!(:protocol)
+
+ port_fragment = with {:ok, protocol_info} <- settings |> Keyword.fetch(String.to_atom(protocol)),
+ {:ok, port} <- protocol_info |> Keyword.fetch(:port)
+ do
+ ":#{port}"
+ else _e ->
+ ""
+ end
+ "#{protocol}://#{host}#{port_fragment}"
+ end
end