Browse Source

removes duplicates from relay subscription list

tags/v1.1.4
Maksim Pechnikov 4 years ago
parent
commit
e652cef76b
2 changed files with 28 additions and 7 deletions
  1. +5
    -7
      lib/mix/tasks/pleroma/relay.ex
  2. +23
    -0
      test/tasks/relay_test.exs

+ 5
- 7
lib/mix/tasks/pleroma/relay.ex View File

@@ -53,13 +53,11 @@ defmodule Mix.Tasks.Pleroma.Relay do
def run(["list"]) do
start_pleroma()

with %User{} = user <- Relay.get_actor() do
user.following
|> Enum.each(fn entry ->
URI.parse(entry)
|> Map.get(:host)
|> shell_info()
end)
with %User{following: following} = _user <- Relay.get_actor() do
following
|> Enum.map(fn entry -> URI.parse(entry).host end)
|> Enum.uniq()
|> Enum.each(&shell_info(&1))
else
e -> shell_error("Error while fetching relay subscription list: #{inspect(e)}")
end


+ 23
- 0
test/tasks/relay_test.exs View File

@@ -69,4 +69,27 @@ defmodule Mix.Tasks.Pleroma.RelayTest do
assert undo_activity.data["object"] == cancelled_activity.data
end
end

describe "mix pleroma.relay list" do
test "Prints relay subscription list" do
:ok = Mix.Tasks.Pleroma.Relay.run(["list"])

refute_receive {:mix_shell, :info, _}

Pleroma.Web.ActivityPub.Relay.get_actor()
|> Ecto.Changeset.change(
following: [
"http://test-app.com/user/test1",
"http://test-app.com/user/test1",
"http://test-app-42.com/user/test1"
]
)
|> Pleroma.User.update_and_set_cache()

:ok = Mix.Tasks.Pleroma.Relay.run(["list"])

assert_receive {:mix_shell, :info, ["test-app.com"]}
assert_receive {:mix_shell, :info, ["test-app-42.com"]}
end
end
end

Loading…
Cancel
Save