@@ -186,7 +186,6 @@ config :mime, :types, %{ | |||||
config :pleroma, :websub, Pleroma.Web.Websub | config :pleroma, :websub, Pleroma.Web.Websub | ||||
config :pleroma, :ostatus, Pleroma.Web.OStatus | config :pleroma, :ostatus, Pleroma.Web.OStatus | ||||
config :pleroma, :httpoison, Pleroma.HTTP | |||||
config :tesla, adapter: Tesla.Adapter.Hackney | config :tesla, adapter: Tesla.Adapter.Hackney | ||||
# Configures http settings, upstream proxy etc. | # Configures http settings, upstream proxy etc. | ||||
@@ -1,4 +1,5 @@ | |||||
defmodule Pleroma.Object.Fetcher do | defmodule Pleroma.Object.Fetcher do | ||||
alias Pleroma.HTTP | |||||
alias Pleroma.Object | alias Pleroma.Object | ||||
alias Pleroma.Object.Containment | alias Pleroma.Object.Containment | ||||
alias Pleroma.Web.ActivityPub.Transmogrifier | alias Pleroma.Web.ActivityPub.Transmogrifier | ||||
@@ -6,8 +7,6 @@ defmodule Pleroma.Object.Fetcher do | |||||
require Logger | require Logger | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
defp reinject_object(data) do | defp reinject_object(data) do | ||||
Logger.debug("Reinjecting object #{data["id"]}") | Logger.debug("Reinjecting object #{data["id"]}") | ||||
@@ -78,7 +77,7 @@ defmodule Pleroma.Object.Fetcher do | |||||
with true <- String.starts_with?(id, "http"), | with true <- String.starts_with?(id, "http"), | ||||
{:ok, %{body: body, status: code}} when code in 200..299 <- | {:ok, %{body: body, status: code}} when code in 200..299 <- | ||||
@httpoison.get( | |||||
HTTP.get( | |||||
id, | id, | ||||
[{:Accept, "application/activity+json"}] | [{:Accept, "application/activity+json"}] | ||||
), | ), | ||||
@@ -3,6 +3,8 @@ | |||||
# SPDX-License-Identifier: AGPL-3.0-only | # SPDX-License-Identifier: AGPL-3.0-only | ||||
defmodule Pleroma.ReverseProxy do | defmodule Pleroma.ReverseProxy do | ||||
alias Pleroma.HTTP | |||||
@keep_req_headers ~w(accept user-agent accept-encoding cache-control if-modified-since) ++ | @keep_req_headers ~w(accept user-agent accept-encoding cache-control if-modified-since) ++ | ||||
~w(if-unmodified-since if-none-match if-range range) | ~w(if-unmodified-since if-none-match if-range range) | ||||
@resp_cache_headers ~w(etag date last-modified cache-control) | @resp_cache_headers ~w(etag date last-modified cache-control) | ||||
@@ -60,7 +62,6 @@ defmodule Pleroma.ReverseProxy do | |||||
""" | """ | ||||
@hackney Application.get_env(:pleroma, :hackney, :hackney) | @hackney Application.get_env(:pleroma, :hackney, :hackney) | ||||
@httpoison Application.get_env(:pleroma, :httpoison, HTTPoison) | |||||
@default_hackney_options [] | @default_hackney_options [] | ||||
@@ -97,7 +98,7 @@ defmodule Pleroma.ReverseProxy do | |||||
hackney_opts = | hackney_opts = | ||||
@default_hackney_options | @default_hackney_options | ||||
|> Keyword.merge(Keyword.get(opts, :http, [])) | |> Keyword.merge(Keyword.get(opts, :http, [])) | ||||
|> @httpoison.process_request_options() | |||||
|> HTTP.process_request_options() | |||||
req_headers = build_req_headers(conn.req_headers, opts) | req_headers = build_req_headers(conn.req_headers, opts) | ||||
@@ -4,11 +4,10 @@ | |||||
defmodule Pleroma.Uploaders.MDII do | defmodule Pleroma.Uploaders.MDII do | ||||
alias Pleroma.Config | alias Pleroma.Config | ||||
alias Pleroma.HTTP | |||||
@behaviour Pleroma.Uploaders.Uploader | @behaviour Pleroma.Uploaders.Uploader | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
# MDII-hosted images are never passed through the MediaPlug; only local media. | # MDII-hosted images are never passed through the MediaPlug; only local media. | ||||
# Delegate to Pleroma.Uploaders.Local | # Delegate to Pleroma.Uploaders.Local | ||||
def get_file(file) do | def get_file(file) do | ||||
@@ -25,7 +24,7 @@ defmodule Pleroma.Uploaders.MDII do | |||||
query = "#{cgi}?#{extension}" | query = "#{cgi}?#{extension}" | ||||
with {:ok, %{status: 200, body: body}} <- | with {:ok, %{status: 200, body: body}} <- | ||||
@httpoison.post(query, file_data, [], adapter: [pool: :default]) do | |||||
HTTP.post(query, file_data, [], adapter: [pool: :default]) do | |||||
remote_file_name = String.split(body) |> List.first() | remote_file_name = String.split(body) |> List.first() | ||||
public_url = "#{files}/#{remote_file_name}.#{extension}" | public_url = "#{files}/#{remote_file_name}.#{extension}" | ||||
{:ok, {:url, public_url}} | {:ok, {:url, public_url}} | ||||
@@ -5,6 +5,7 @@ | |||||
defmodule Pleroma.Web.ActivityPub.Publisher do | defmodule Pleroma.Web.ActivityPub.Publisher do | ||||
alias Pleroma.Activity | alias Pleroma.Activity | ||||
alias Pleroma.Config | alias Pleroma.Config | ||||
alias Pleroma.HTTP | |||||
alias Pleroma.Instances | alias Pleroma.Instances | ||||
alias Pleroma.User | alias Pleroma.User | ||||
alias Pleroma.Web.ActivityPub.Relay | alias Pleroma.Web.ActivityPub.Relay | ||||
@@ -16,8 +17,6 @@ defmodule Pleroma.Web.ActivityPub.Publisher do | |||||
require Logger | require Logger | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
@moduledoc """ | @moduledoc """ | ||||
ActivityPub outgoing federation module. | ActivityPub outgoing federation module. | ||||
""" | """ | ||||
@@ -63,7 +62,7 @@ defmodule Pleroma.Web.ActivityPub.Publisher do | |||||
with {:ok, %{status: code}} when code in 200..299 <- | with {:ok, %{status: code}} when code in 200..299 <- | ||||
result = | result = | ||||
@httpoison.post( | |||||
HTTP.post( | |||||
inbox, | inbox, | ||||
json, | json, | ||||
[ | [ | ||||
@@ -11,6 +11,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do | |||||
alias Pleroma.Conversation.Participation | alias Pleroma.Conversation.Participation | ||||
alias Pleroma.Filter | alias Pleroma.Filter | ||||
alias Pleroma.Formatter | alias Pleroma.Formatter | ||||
alias Pleroma.HTTP | |||||
alias Pleroma.Notification | alias Pleroma.Notification | ||||
alias Pleroma.Object | alias Pleroma.Object | ||||
alias Pleroma.Object.Fetcher | alias Pleroma.Object.Fetcher | ||||
@@ -55,7 +56,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do | |||||
when action in [:account_register] | when action in [:account_register] | ||||
) | ) | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
@local_mastodon_name "Mastodon-Local" | @local_mastodon_name "Mastodon-Local" | ||||
action_fallback(:errors) | action_fallback(:errors) | ||||
@@ -1691,7 +1691,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do | |||||
|> String.replace("{{user}}", user) | |> String.replace("{{user}}", user) | ||||
with {:ok, %{status: 200, body: body}} <- | with {:ok, %{status: 200, body: body}} <- | ||||
@httpoison.get( | |||||
HTTP.get( | |||||
url, | url, | ||||
[], | [], | ||||
adapter: [ | adapter: [ | ||||
@@ -3,13 +3,12 @@ | |||||
# SPDX-License-Identifier: AGPL-3.0-only | # SPDX-License-Identifier: AGPL-3.0-only | ||||
defmodule Pleroma.Web.OStatus do | defmodule Pleroma.Web.OStatus do | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
import Ecto.Query | import Ecto.Query | ||||
import Pleroma.Web.XML | import Pleroma.Web.XML | ||||
require Logger | require Logger | ||||
alias Pleroma.Activity | alias Pleroma.Activity | ||||
alias Pleroma.HTTP | |||||
alias Pleroma.Object | alias Pleroma.Object | ||||
alias Pleroma.Repo | alias Pleroma.Repo | ||||
alias Pleroma.User | alias Pleroma.User | ||||
@@ -363,7 +362,7 @@ defmodule Pleroma.Web.OStatus do | |||||
def fetch_activity_from_atom_url(url) do | def fetch_activity_from_atom_url(url) do | ||||
with true <- String.starts_with?(url, "http"), | with true <- String.starts_with?(url, "http"), | ||||
{:ok, %{body: body, status: code}} when code in 200..299 <- | {:ok, %{body: body, status: code}} when code in 200..299 <- | ||||
@httpoison.get( | |||||
HTTP.get( | |||||
url, | url, | ||||
[{:Accept, "application/atom+xml"}] | [{:Accept, "application/atom+xml"}] | ||||
) do | ) do | ||||
@@ -380,7 +379,7 @@ defmodule Pleroma.Web.OStatus do | |||||
Logger.debug("Trying to fetch #{url}") | Logger.debug("Trying to fetch #{url}") | ||||
with true <- String.starts_with?(url, "http"), | with true <- String.starts_with?(url, "http"), | ||||
{:ok, %{body: body}} <- @httpoison.get(url, []), | |||||
{:ok, %{body: body}} <- HTTP.get(url, []), | |||||
{:ok, atom_url} <- get_atom_url(body) do | {:ok, atom_url} <- get_atom_url(body) do | ||||
fetch_activity_from_atom_url(atom_url) | fetch_activity_from_atom_url(atom_url) | ||||
else | else | ||||
@@ -5,11 +5,10 @@ | |||||
defmodule Pleroma.Web.Salmon do | defmodule Pleroma.Web.Salmon do | ||||
@behaviour Pleroma.Web.Federator.Publisher | @behaviour Pleroma.Web.Federator.Publisher | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
use Bitwise | use Bitwise | ||||
alias Pleroma.Activity | alias Pleroma.Activity | ||||
alias Pleroma.HTTP | |||||
alias Pleroma.Instances | alias Pleroma.Instances | ||||
alias Pleroma.Keys | alias Pleroma.Keys | ||||
alias Pleroma.User | alias Pleroma.User | ||||
@@ -138,7 +137,7 @@ defmodule Pleroma.Web.Salmon do | |||||
def publish_one(%{recipient: url, feed: feed} = params) when is_binary(url) do | def publish_one(%{recipient: url, feed: feed} = params) when is_binary(url) do | ||||
with {:ok, %{status: code}} when code in 200..299 <- | with {:ok, %{status: code}} when code in 200..299 <- | ||||
@httpoison.post( | |||||
HTTP.post( | |||||
url, | url, | ||||
feed, | feed, | ||||
[{"Content-Type", "application/magic-envelope+xml"}] | [{"Content-Type", "application/magic-envelope+xml"}] | ||||
@@ -3,8 +3,7 @@ | |||||
# SPDX-License-Identifier: AGPL-3.0-only | # SPDX-License-Identifier: AGPL-3.0-only | ||||
defmodule Pleroma.Web.WebFinger do | defmodule Pleroma.Web.WebFinger do | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
alias Pleroma.HTTP | |||||
alias Pleroma.User | alias Pleroma.User | ||||
alias Pleroma.Web | alias Pleroma.Web | ||||
alias Pleroma.Web.Federator.Publisher | alias Pleroma.Web.Federator.Publisher | ||||
@@ -176,11 +175,11 @@ defmodule Pleroma.Web.WebFinger do | |||||
def find_lrdd_template(domain) do | def find_lrdd_template(domain) do | ||||
with {:ok, %{status: status, body: body}} when status in 200..299 <- | with {:ok, %{status: status, body: body}} when status in 200..299 <- | ||||
@httpoison.get("http://#{domain}/.well-known/host-meta", []) do | |||||
HTTP.get("http://#{domain}/.well-known/host-meta", []) do | |||||
get_template_from_xml(body) | get_template_from_xml(body) | ||||
else | else | ||||
_ -> | _ -> | ||||
with {:ok, %{body: body}} <- @httpoison.get("https://#{domain}/.well-known/host-meta", []) do | |||||
with {:ok, %{body: body}} <- HTTP.get("https://#{domain}/.well-known/host-meta", []) do | |||||
get_template_from_xml(body) | get_template_from_xml(body) | ||||
else | else | ||||
e -> {:error, "Can't find LRDD template: #{inspect(e)}"} | e -> {:error, "Can't find LRDD template: #{inspect(e)}"} | ||||
@@ -209,7 +208,7 @@ defmodule Pleroma.Web.WebFinger do | |||||
end | end | ||||
with response <- | with response <- | ||||
@httpoison.get( | |||||
HTTP.get( | |||||
address, | address, | ||||
Accept: "application/xrd+xml,application/jrd+json" | Accept: "application/xrd+xml,application/jrd+json" | ||||
), | ), | ||||
@@ -5,6 +5,7 @@ | |||||
defmodule Pleroma.Web.Websub do | defmodule Pleroma.Web.Websub do | ||||
alias Ecto.Changeset | alias Ecto.Changeset | ||||
alias Pleroma.Activity | alias Pleroma.Activity | ||||
alias Pleroma.HTTP | |||||
alias Pleroma.Instances | alias Pleroma.Instances | ||||
alias Pleroma.Repo | alias Pleroma.Repo | ||||
alias Pleroma.User | alias Pleroma.User | ||||
@@ -24,9 +25,7 @@ defmodule Pleroma.Web.Websub do | |||||
@behaviour Pleroma.Web.Federator.Publisher | @behaviour Pleroma.Web.Federator.Publisher | ||||
@httpoison Application.get_env(:pleroma, :httpoison) | |||||
def verify(subscription, getter \\ &@httpoison.get/3) do | |||||
def verify(subscription, getter \\ &HTTP.get/3) do | |||||
challenge = Base.encode16(:crypto.strong_rand_bytes(8)) | challenge = Base.encode16(:crypto.strong_rand_bytes(8)) | ||||
lease_seconds = NaiveDateTime.diff(subscription.valid_until, subscription.updated_at) | lease_seconds = NaiveDateTime.diff(subscription.valid_until, subscription.updated_at) | ||||
lease_seconds = lease_seconds |> to_string | lease_seconds = lease_seconds |> to_string | ||||
@@ -207,7 +206,7 @@ defmodule Pleroma.Web.Websub do | |||||
requester.(subscription) | requester.(subscription) | ||||
end | end | ||||
def gather_feed_data(topic, getter \\ &@httpoison.get/1) do | |||||
def gather_feed_data(topic, getter \\ &HTTP.get/1) do | |||||
with {:ok, response} <- getter.(topic), | with {:ok, response} <- getter.(topic), | ||||
status when status in 200..299 <- response.status, | status when status in 200..299 <- response.status, | ||||
body <- response.body, | body <- response.body, | ||||
@@ -236,7 +235,7 @@ defmodule Pleroma.Web.Websub do | |||||
end | end | ||||
end | end | ||||
def request_subscription(websub, poster \\ &@httpoison.post/3, timeout \\ 10_000) do | |||||
def request_subscription(websub, poster \\ &HTTP.post/3, timeout \\ 10_000) do | |||||
data = [ | data = [ | ||||
"hub.mode": "subscribe", | "hub.mode": "subscribe", | ||||
"hub.topic": websub.topic, | "hub.topic": websub.topic, | ||||
@@ -294,7 +293,7 @@ defmodule Pleroma.Web.Websub do | |||||
Logger.info(fn -> "Pushing #{topic} to #{callback}" end) | Logger.info(fn -> "Pushing #{topic} to #{callback}" end) | ||||
with {:ok, %{status: code}} when code in 200..299 <- | with {:ok, %{status: code}} when code in 200..299 <- | ||||
@httpoison.post( | |||||
HTTP.post( | |||||
callback, | callback, | ||||
xml, | xml, | ||||
[ | [ | ||||