Browse Source

passing adapter options directly without adapter key

underscore-world
Alexander Strizhakov 1 month ago
parent
commit
696bf09433
No known key found for this signature in database GPG Key ID: 22896A53AEF1381
11 changed files with 36 additions and 35 deletions
  1. +1
    -1
      config/test.exs
  2. +4
    -7
      lib/mix/tasks/pleroma/benchmark.ex
  3. +1
    -1
      lib/mix/tasks/pleroma/frontend.ex
  4. +1
    -1
      lib/pleroma/http/ex_aws.ex
  5. +1
    -1
      lib/pleroma/http/http.ex
  6. +2
    -2
      lib/pleroma/http/tzdata.ex
  7. +1
    -1
      lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex
  8. +1
    -1
      lib/pleroma/web/rel_me.ex
  9. +1
    -1
      lib/pleroma/web/rich_media/helpers.ex
  10. +2
    -0
      test/web/instances/instance_test.exs
  11. +21
    -19
      test/web/mastodon_api/views/account_view_test.exs

+ 1
- 1
config/test.exs View File

@@ -114,7 +114,7 @@ config :pleroma, Pleroma.Plugs.RemoteIp, enabled: false

config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: true

config :pleroma, :instances_favicons, enabled: true
config :pleroma, :instances_favicons, enabled: false

config :pleroma, Pleroma.Uploaders.S3,
bucket: nil,


+ 4
- 7
lib/mix/tasks/pleroma/benchmark.ex View File

@@ -91,20 +91,17 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
"Without conn and without pool" => fn ->
{:ok, %Tesla.Env{}} =
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [],
adapter: [pool: :no_pool, receive_conn: false]
pool: :no_pool,
receive_conn: false
)
end,
"Without conn and with pool" => fn ->
{:ok, %Tesla.Env{}} =
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [],
adapter: [receive_conn: false]
)
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [], receive_conn: false)
end,
"With reused conn and without pool" => fn ->
{:ok, %Tesla.Env{}} =
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [],
adapter: [pool: :no_pool]
)
Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500", [], pool: :no_pool)
end,
"With reused conn and with pool" => fn ->
{:ok, %Tesla.Env{}} = Pleroma.HTTP.get("https://httpbin.org/stream-bytes/1500")


+ 1
- 1
lib/mix/tasks/pleroma/frontend.ex View File

@@ -124,7 +124,7 @@ defmodule Mix.Tasks.Pleroma.Frontend do
url = String.replace(frontend_info["build_url"], "${ref}", frontend_info["ref"])

with {:ok, %{status: 200, body: zip_body}} <-
Pleroma.HTTP.get(url, [], adapter: [pool: :media, recv_timeout: 120_000]) do
Pleroma.HTTP.get(url, [], pool: :media, recv_timeout: 120_000) do
unzip(zip_body, dest)
else
e -> {:error, e}


+ 1
- 1
lib/pleroma/http/ex_aws.ex View File

@@ -11,7 +11,7 @@ defmodule Pleroma.HTTP.ExAws do

@impl true
def request(method, url, body \\ "", headers \\ [], http_opts \\ []) do
http_opts = Keyword.put_new(http_opts, :adapter, pool: :upload)
http_opts = Keyword.put_new(http_opts, :pool, :upload)

case HTTP.request(method, url, body, headers, http_opts) do
{:ok, env} ->


+ 1
- 1
lib/pleroma/http/http.ex View File

@@ -60,7 +60,7 @@ defmodule Pleroma.HTTP do
{:ok, Env.t()} | {:error, any()}
def request(method, url, body, headers, options) when is_binary(url) do
uri = URI.parse(url)
adapter_opts = AdapterHelper.options(uri, options[:adapter] || [])
adapter_opts = AdapterHelper.options(uri, options || [])

options = put_in(options[:adapter], adapter_opts)
params = options[:params] || []


+ 2
- 2
lib/pleroma/http/tzdata.ex View File

@@ -11,7 +11,7 @@ defmodule Pleroma.HTTP.Tzdata do

@impl true
def get(url, headers, options) do
options = Keyword.put_new(options, :adapter, pool: :default)
options = Keyword.put_new(options, :pool, :default)

with {:ok, %Tesla.Env{} = env} <- HTTP.get(url, headers, options) do
{:ok, {env.status, env.headers, env.body}}
@@ -20,7 +20,7 @@ defmodule Pleroma.HTTP.Tzdata do

@impl true
def head(url, headers, options) do
options = Keyword.put_new(options, :adapter, pool: :default)
options = Keyword.put_new(options, :pool, :default)

with {:ok, %Tesla.Env{} = env} <- HTTP.head(url, headers, options) do
{:ok, {env.status, env.headers}}


+ 1
- 1
lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex View File

@@ -22,7 +22,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy do

url
|> MediaProxy.url()
|> HTTP.get([], adapter: @options)
|> HTTP.get([], @options)
end

def perform(:preload, %{"object" => %{"attachment" => attachments}} = _message) do


+ 1
- 1
lib/pleroma/web/rel_me.ex View File

@@ -25,7 +25,7 @@ defmodule Pleroma.Web.RelMe do

defp parse_url(url) do
with {:ok, %Tesla.Env{body: html, status: status}} when status in 200..299 <-
Pleroma.HTTP.get(url, [], adapter: @options),
Pleroma.HTTP.get(url, [], @options),
{:ok, html_tree} <- Floki.parse_document(html),
data <-
Floki.attribute(html_tree, "link[rel~=me]", "href") ++


+ 1
- 1
lib/pleroma/web/rich_media/helpers.ex View File

@@ -87,6 +87,6 @@ defmodule Pleroma.Web.RichMedia.Helpers do
def rich_media_get(url) do
headers = [{"user-agent", Pleroma.Application.user_agent() <> "; Bot"}]

Pleroma.HTTP.get(url, headers, adapter: @options)
Pleroma.HTTP.get(url, headers, @options)
end
end

+ 2
- 0
test/web/instances/instance_test.exs View File

@@ -112,6 +112,8 @@ defmodule Pleroma.Instances.InstanceTest do
end

test "Returns nil on too long favicon URLs" do
clear_config([:instances_favicons, :enabled], true)

long_favicon_url =
"https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png"



+ 21
- 19
test/web/mastodon_api/views/account_view_test.exs View File

@@ -5,7 +5,6 @@
defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
use Pleroma.DataCase

alias Pleroma.Config
alias Pleroma.User
alias Pleroma.UserRelationship
alias Pleroma.Web.CommonAPI
@@ -19,8 +18,6 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
:ok
end

setup do: clear_config([:instances_favicons, :enabled])

test "Represent a user account" do
background_image = %{
"url" => [%{"href" => "https://example.com/images/asuka_hospital.png"}]
@@ -78,8 +75,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
pleroma: %{
ap_id: user.ap_id,
background_image: "https://example.com/images/asuka_hospital.png",
favicon:
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png",
favicon: nil,
confirmation_pending: false,
tags: [],
is_admin: false,
@@ -98,22 +94,29 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
assert expected == AccountView.render("show.json", %{user: user, skip_visibility_check: true})
end

test "Favicon is nil when :instances_favicons is disabled" do
user = insert(:user)
describe "favicon" do
setup do
[user: insert(:user)]
end

Config.put([:instances_favicons, :enabled], true)
test "is parsed when :instance_favicons is enabled", %{user: user} do
clear_config([:instances_favicons, :enabled], true)

assert %{
pleroma: %{
favicon:
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png"
}
} = AccountView.render("show.json", %{user: user, skip_visibility_check: true})
assert %{
pleroma: %{
favicon:
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png"
}
} = AccountView.render("show.json", %{user: user, skip_visibility_check: true})
end

Config.put([:instances_favicons, :enabled], false)
test "is nil when :instances_favicons is disabled", %{user: user} do
assert %{pleroma: %{favicon: nil}} =
AccountView.render("show.json", %{user: user, skip_visibility_check: true})
end
end

assert %{pleroma: %{favicon: nil}} =
AccountView.render("show.json", %{user: user, skip_visibility_check: true})
test "Favicon when :instance_favicons is enabled" do
end

test "Represent the user account for the account owner" do
@@ -173,8 +176,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
pleroma: %{
ap_id: user.ap_id,
background_image: nil,
favicon:
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png",
favicon: nil,
confirmation_pending: false,
tags: [],
is_admin: false,


Loading…
Cancel
Save